I got interested in OS development long long time ago, in the days when win3.11 was new and there was no preemptive multitasking on PC at all. I saw an Amiga with exec, I was amazed and I started to study the subject. I've learned intel assembly (with good old TASM) and C (Borland C and Microsoft C) and I had some really interesting projects
One was to hide the data on the disk if it wasn't booted from. For that I messed up the partitioning table, and wrote a special MBR code that hooked on Int 13/AH=02h and reported the correct partitions when it's TSR was active. I've also implemented a user authentication system with 16 groups (a bitfield in fat16 directory entries unused bytes, there was no fat32 back then) and hooked on Int 21. That was totally transparent to the applications, and hide files according to the user's group.My first windowing system
was a .com on top of DOS with extremely small footprint written entirely in assembly. I was developing it till 1998. It could execute only one task at a time, and when it finished, returned the control to the executor, the graphical environment. I remember when VESA was something new, and I had to write bank switching drivers for the video cards. There was no documentation on that, so I had to figure it out on my own. Luckily I had a good image viewer that I reverse engineered. It was the first time when I studied preemption. The lack of paging and how DOS stacked apps on each other made it very difficult to switch tasks. So I decided to learn protected mode which was quite difficult without internet resources. I remember how happy I was when I finally got the intel manual 80386/80486 which was quite a big deal in the eastern block. A few years later I learned about Linux and liked it very much. Finally a system that I could study, and a guy who has the same hobby as me! Of course it was not that bloated monster
as it is now. When I first installed Linux I had only 80 Mb disk
I was a first year student at the university when AltaVista gave me an interesting search result: Mega-Tokyo site opened. There are no words to describe how I felt! That was the time when I wrote my first real OS (not just an extender). It was called OS/42 (a salute to Adams). Of course it suffered a lot of bad design concepts, but hey, it was working with my own filesystem and my own executable format! I've learned a lot, and studied Tanenbaum's book and Minix to overcome those bad designs. Unfortunately after that a big gap followed as I had to earn money and I fall in love (which is very bad for any kind of hobby).
Later when the first x86_64 processors arrived and finally I found flatassembler which could assemble long mode instructions a picked up my good old hobby again, and wrote another OS from scratch. Sadly by then Mega-Tokyo was closed, but I've found this excellent site, OSDev. The new one was much better than my first OS, mostly because of the theoretical knowledge I gathered in the meantime. It had only a text mode interface, but not the one you'd expect, it was more than that
. But it wasn't enough, I wanted a gui. So I refactored it's interface, and had some good results
, but never finished it as life had other plans with me, so another couple years of gap followed.
But I couldn't forget my hobby, so I've picked it up again after the hiatus. Unfortunately I forgot my OSDev password, so I've had to create a new account, but here I am, writing an OS again which is one of dearest thing to me