First things first – don’t be scared, OS development isn’t rocket science, it’s just a lot of work – reading technical specifications, standards and writing code. The details you put into the process are up to you and you can write a simple single process text based software running directly on your PC hardware or a fully blown general purpose OS with multi-tasking and fancy 3D GUI.

Second of all – you need to plan out some steps of what you do before you do, also I’m not going to ask you to go and read gazillion books in advance – I prefer to go with “learning by doing”.

Third. These tutorials will be targeting PC architecture with Intel x86_64 CPU architecture. So this might come as the first things first part, as you have to understand the PC architecture to begin with.

So here’s the plan:

  1. Understand the architecture!
  2. Choose your boot process. You might go with multi-boot methods, like UEFI, GRUB, etc. In these tutorials I’ve chosen the hardest way – start from good’ol BIOS and boot everything up from there. This will build a cleaner picture of this whole architecture
  3. Choose your storage. Either you write an OS that boots from Floppy disk (I ain’t going there – too 80ties!), USB stick, CD/DVD/BD (not going there either), Harddisk drive or Network (nope, too hard :)), you have to plan ahead (or simply know and accept) how the data will be laid out so that you can proceed with bootstrapping.
  4. Choose your target architecture and operating mode. As I’ve already pointed out, this tutorial will target x86_64 thus it’s Long mode (a.k.a. AMD64, Intel64, 64-bit mode).
  5. Write a lot of bootstrap code, because you’ll need to get from Assembly to C.
  6. Write a lot of drivers, managers and schedulers.


Leave a Reply

Your email address will not be published. Required fields are marked *