First public appearance of RTOS Systemicus + video


Good night, habr!

I think that the time has come to post the first video and the first information about your operating system, written entirely in flat assembler. I know that much has already been written and done similar, but I think that this topic will be a little interesting for fans of this topic.

So, I'm testing this whole thing on QEMU with 48 megabytes of RAM, but the whole system works successfully on 8 megabytes (including the graphical shell). The requirements for the hard drive are also small - the kernel itself occupies 64 kilobytes (in fact, 20-24 kilobytes, but due to the specifics of my file system I clog the rest of the space with zeros up to 64 kb.).
The necessary files also include 4 libraries, such as user32.dll, kernel32.dll and omfs3.dll (there is also network.dll, but so far I have abandoned the network ...). Also, the presence of two fonts is required - for the terminal and graphics. + terminal program and graphical environment program.

I will make a reservation right away. All programs are compiled into the Windows PE GUI and PE console formats. Those. they can also be run on Windows, the only catch is that my dll format is not compatible with the Windows DLL format. It follows that it is possible to add similar libraries under Windows (with the same functions) and all programs can be ported to Windows. Similarly, if you write libraries (or rather rewrite) under Systemicus, then Windows programs can run on my OS. By the way, the samples were mainly with MessageBox and other little things. But that is not the point.

The next point is the use of its FS - OMFS-3. Its distinguishing feature is its built-in end-to-end encryption system (GOST + RC6 in conjunction with GOST 34.11-2012 Stribog. Everything is also on assembler). Moreover, when creating a boot image, the system files are not encrypted, but after any operation (for example, copying a file), the final file is already encrypted. This is not a limitation of the FS, it’s just that when compiling the boot image, even on the fasm macro, it will be very difficult to encrypt this data during compilation. Because Since all the logic and functionality are crammed into omfs3.dll, I plan to do something later like LeanfsGUI, but for OMFS3.

Of the most necessary things that I intend to do in the near future - this is RealMode Int, optimizing the desktop (as long as there are problems with speed, I have not optimized its code since I finished it just yesterday), porting fasm to Systemicus (+ several other applications), support for int 0x21 (minimum - to run some kind of file manager and several games under DOS). In the future, I still want to add support for the minimal WinAPI functions to my DLLs, not so much for compatibility with Windows as for reasons of economy - so as not to rewrite the code of some applications. Thank God, there are achievements, I already launched a couple of simple Windows console applications on Systemicus.

Here. If this is interesting to someone, I will write further about progress in development + I will post the most interesting past difficulties in the implementation of some things. For example, the implementation of PE + DLL support really helped me understand the working principles of this bundle in Windows, which helped me to write a good PE-wrapper for it ;-)

Finally, a screencast of the work ...

Only registered users can participate in the survey. Please come in.

Continue to publish information about this OS?

  • 84.1% yes, read at leisure 730
  • 15.8% no, not interesting 137

Also popular now: