You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Carlos Fenollosa 0d537e1604
simple boot sector
10 years ago
00-environment simple boot sector 10 years ago
01-boot-sector simple boot sector 10 years ago
README.md First commit 10 years ago

README.md

os-tutorial

How to create an OS from scratch

I have always wanted to learn how to make an OS from scratch. In college they taught us how to implement advanced features (pagination, semaphores, memory management, etc) but:

  • I never got to start from my own boot sector
  • College is hard so I don't remember most of it.

Inspired by this document and the OSDev wiki, I'll try to make short step-by-step READMEs and code samples for anybody to follow.

I will not explain the theory. Google is your friend. Learn what assembler is, pagination, interrupts, segmentation, etc. That is already covered by thousands of PDFs from Universities. This course is a tutorial, a hands-on, not a real CS lecture.

How to use this tutorial

First, go through every folder in order. They build on previous code, so if you jump right to folder 08, you may find a lot of stuff which is not related to what folder 08 is about.

To see the increments between "lessons", do a diff between folders.

Second, for each folder, read the README. It is very concise. There is no theory. Then, look at the code examples. You can try to write them by yourself on a different folder, modify them slightly and play a bit with the code.

Finally, the code files provided in each folder are the final result. If you want to learn quickly (though not as thoroughly), just read the provided code files.

TL;DR: First read the README on each folder, then decide if you will implement it yourself or just read the provided code files.

Contributing

I'm still learning this. For the moment, please restrict your contributions to fixing possible bugs or improving existing documents. I'm not yet ready to accept enhancements.