I've done a little OS development for fun and learning purposes. It's far from easy - the learning curve is very steep - but it's incredibly rewarding.
This wiki will help you get started:
http://wiki.osdev.org/Expanded_Main_Page
There is also this tutorial:
http://jamesmolloy.co.uk/tutorial_html/index.html
And this one:
http://www.osdever.net/bkerndev/Docs/title.htm
And the one that PiMaster posted. The first one is the one I used (although I like to take some code from the wiki and mix it up with my own and the code given in the tutorial, because some of the code on the wiki seems better to me).
There are more tutorials on osdever.net as well.
Necessary reading:
http://wiki.osdev.org/Introduction http://wiki.osdev.org/Beginner_Mistakes http://wiki.osdev.org/Getting_Started
PiMaster wrote: |
---|
There's a ton of ASM |
Not so! I have at most about 5 functions in ASM so far; most of the ASM is for things like interrupt handling and, of course, booting. There will be more
A very, VERY important thing to remember is to ALWAYS use a virtual computer. Otherwise, if you mess up, you could very easily destroy your hard drive, among other things. |
I disagree. Certain things, like displaying pixels on a screen, have absolutely no chance of causing damage. It depends on what you're testing. However, I would recommend you make sure everything you've written so far actually works on a VM. Once it works and you can't see any damage to your virtual computer,
then test on the real hardware. No emulator is as good as the real thing, although QEMU and VMWare are quite close.