⬆️ ⬇️

Operating system from scratch (almost)

Hello, reader! My name is Nikita, today I will show you and tell you about my project. This is an operating system written from scratch. I say “practically” because I copied some code files from somewhere, but I wrote in the comments that the code is not mine.



What is this project?



His name is U365. I am not writing it alone, I have a small team. Development comes from December 2015. For almost a year, we were able to make a working and functional OS. Let's look at our capabilities!



Opportunities



This OS can pretty much for a hobby OS. We have a graphics engine that is used for all the rendering in the system. U365 is written in C and assembly language. Let's see the screenshots:

')

image



Immediately after launch, which lasts about three seconds on VirtualBox.



image



After entering the help command, a list of commands is displayed.



image



The font-viewer command works as a TrueType font viewer and does it perfectly.



image



Logs of the system core.



As you saw in the last screenshot, there are quite a lot of unused functions in the system: PCI, hard disk drivers, network drivers.



History and what we had to overcome





When I started development, I already had one failed project, OS365. Those who followed us will understand. I decided to do at least something better than her. I abandoned all the code from OS365 and wanted to write a UNIX-compatible OS. I did not change the bootloader and used GRUB. At the very beginning I made a text output, but then I had some strange, crooked and self-made pixel font, which I replaced in the future with a standard VGA-mode font 80x25. At first, the system received a small command interpreter, ish, which is already outdated and replaced by ish2. The screenshots show only ish2. As you can see, his prompt is very similar to the bash prompt that I used. To create it, I wrote the PS1 parser, which displays the invitation.

And now let's go back to the initial stages of development. Dmitry wrote me a file system that worked with grief in half. It’s time to rewrite ...

In May, I started writing support for the ELF executable format, but I didn’t add it: the files were run, but they often fell. Until September, I was without the Internet and during rare attacks on the network I poured edits into the Git repository. It was then that I wrote the hard disk driver and began developing the Ext2 driver.

In October, I found wonderful libraries that are easy to port. One of them was designed to render TrueType fonts. It was wonderful! Then I found another library, this time for displaying images in various formats. At the moment, plans to finish the network driver and write a clone NFS Most Wanted 2005 in 2D.



We need help



There is a problem with the OS. This is a drawing, namely its inhibition. There is a recruitment team, requires knowledge of C and the desire to work, and not to look at the work, as many do.



Links



Source code: gitlab.com/bps-projs/U365/tree/testing

Source: https://habr.com/ru/post/316112/



All Articles