My journey in the land of Operating Systems
A small lore:The legend has it that a Creature was wandering in a dark deep forest. One day, he was commanded by the Great Master to write a bootup code for a dummy kernel. Confused what it was and how to write it, he started reading up old scrolls and searching for ways to complete the task. His research made him realise that he needed to write something called a 'boot sector'. He came across many guides and books on Operating Systems, but they all started with the kernel using some other boot loader. Then he came across a magic scroll which showed him the right path, enlightening him on his way. Then he successfully finished the task.
That night when he was grazing the stars, he recalled that a long time back he had wandered onto a path that lead him to develop a small kernel. He remembered that he had to abandon the path because he took a wrong turn somewhere and was not able to find anyway ahead. Now having written a bootloader, he could now vaguely see the mistakes he made and he somehow felt some confidence on walking on the path again. This time, during his search, he had come across another scroll that showed a similar pathway and thought of following that. Although the scroll was short but was a good starter code. With the knowledge of the failed attempt and the new enlightenment (from the boot loader), he started down the path. The deeper he went, the exciting things became and he successfully completed all the tasks listed in the scroll.
Then in search of more guide, he moved back to [the source] of the first path and followed some small scrolls and kept adding small features.
Then he realised that every year the Computer Science students do the same thing, yet nobody cared to write a proper guide (or because he could not find it) he decided to write a new scroll and leave it for others to follow and fulfill their destiny. So he fired up GitHub, created a new repo and put down his work for others to follow. He also decided to add a wiki describing all the scrolls he followed and decisions made in details, in case some other curious creatures wants to know how something was done or why it was done.
The story ends...
Now lets get a bit seriousWhat I wanted to say is that I have pursued my OS project to develop a bootloader a bit further and have set up a pretty good ground for a small kernel. I am planning to pursue that as a side work and try adding new (to this OS, but way old as per their age). I dream of applying the concepts I learn in my CS courses (I am pursuing an undergraduate course at IIT Roorkee) to it. Although I don't have much hope in that direction, yet we all aim a bit higher, right. I guess, the first step will be to get a User Space (yes, it still doesn't have one :P ).
As far as developing an Operating System is concerned, I don't claim that I understand all the aspects of modern operating systems. I just followed different guides for the concepts trying to implement them myself. Although I can fairly say that the features, I have coded, I tried to understand them in as much depth as possible.
I think that if I document my work this may guide some other guy who is looking to develop on for himself will have a step by step guide to follow. I don't plan to include the details of all the concepts, but I will link the resources from which I have learned.