alexfru wrote:
I haven't written a line of OS/kernel code in years. I might or might not get back to it. It's a big project. Instead I've been working on a smaller project, a
C compiler. It has some relation to OS dev, however. It can be used to write a boot loader for both legacy BIOS (using real or unreal mode) and UEFI (in 32-bit protected mode). The compiler is small, simple and is self-hosting on DOS, Windows and Linux (also running in 96KB on BSD 2.11 ported to a PIC32 MIPS microcontroller). You can make it self-hosting on your OS. In principle, you can even develop all of your OS with it (if you don't go 64-bit and don't mind a few language limitations).
I'm working in adding all classic PC code to my system as kernel test code, formal API and external test programs to mature additional kernel functionality once those programs become good enough as to be archived along with the current kernel.
I'm learning from them and converting them all to portable x86 assembly, with which I can reuse the same application-level code to 16, 32 and 64-bit modes.
Sometimes I think that ironically the code from major OSes since early 90's really was added from the public code archives I'm pointing out and other similar ones (which I hope are at the Archive.org Wayback Machine), so if that's the case, the huge critical majority of the code base of DOS, Windows 9x and Linux has always somehow been in an understandable format and this worldwide public domain source code archive. If that's the case, adding all of that code to a test OS like mine will demonstrate how much it can achieve as an OS when being cleaned up in one same place.
So I think that my OS will be based on turning the whole code base from Programmer's Heaven, FTP archives, easy to understand programs with and without sources, Chris Giese, Craig Hart, Alexei Frounze, Singlix.com, OSDever.net, OSDev.org, and many other similar websites with code and explanations/documents, as the resources that will power my code creation. Also good books old and new, digital and on physical, existing OSes like Linux/ReactOS/Menuet/VisOpSys/Toaru/Pony/SGOS, and finally my own creativity without external help as the main resource to create things first in my mind to make them fully understandable.
I think I'm finding ways to stay at the OS development level no matter what I do as I will need it for being able to add all my solved needs to my system.
An OS reaches the whole programming spectrum, it has no limit, everything is included, so whatever I do, I just need to fit it to my OS and make the code portable to any OS system environment and language, and never stop writing code that will improve and will be reusable anywhere.