So You Wanna Create Your Own x86 Operating System?

1. Introduction

One of the great difficulties a hobbyist programmer faces when trying
to start the development of his own OS is finding out where to
start. Many books describe in-depth theoretical OS concepts, yet noone
seems to take a hobyist programmer by the hand and bring him face to
face with these concepts. This is precisely what this article aims at
doing.

Several articles related to this topic appeared in the last few issues
of the Linux Gazette. I plan to approach it in a much less programming
oriented manner, only presenting to the reader the tools and tips he
will need to begin the development of his own OS. Once done with this
article, the interested reader should be all set to start browsing the
resources available to him and start designing and coding.

You might not be aware of it, but operating system development doesn't
start at the beginning. (!!) Writing a solid bootloader is a whole
project in itself, and I would not advise one to begin an OS
development project by writing a bootloader. Many reliable ones are
available for free (Grub, lilo, ppcboot, etc...). If you plan on
writing your own, I suggest you delay this task to a later stage of
the project. In this article, I will be using GNU Grub, the Grand
Unified Bootloader.