Doing your own toy operating system is a great learning experience and I can recommend it to anyone who has the right hacker attitude and a little bit of prerequisite knowledge.<p>OSdev is a pretty good starting point for basic resources. You'll need to build your own GNU toolchain (gcc + binutils + gdb) for cross compiling (don't try to use the one that ships with your OS, it will subtly fail when you don't expect it to), get an emulator (e.g. qemu or bochs) and a bootloader to get started. Do <i>not</i> write your own bootloader code or try to stick to pure asm, you'll get nowhere fast. Use the multiboot protocol so you can easily get booted on emulators and real iron using GRUB2. Note: I assumed you want to work on x86.<p>In addition to OSdev, the Intel manuals are an excellent resource. They are a pretty nice thing to read even if you don't intend to write an OS. Although reading through them will probably get your OS hacking itch going and you can't stop yourself. That happened to me. The Intel manuals are here: <a href="http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html/" rel="nofollow">http://www.intel.com/content/www/us/en/processors/architectu...</a> . Volumes 1 and 3a are the most important.<p>And here are the humble beginnings of my hobby operating system:
<a href="https://github.com/rikusalminen/danjeros" rel="nofollow">https://github.com/rikusalminen/danjeros</a>
this and geezer's site are the OGs of OS dev. Both offshoots of alt.os.dev, iirc, and have been around for more than a decade.<p>if I were messing with OS dev today I would probably study the <i>algorithms</i> in a friendly HLL, there are some texts that use Java. these sites are more helpful to actual implementors, specially driver developers.<p>x86 architecture is terrible for pedagogy in many ways, and it's probably harder today than it was 10 years ago, with real-mode now finally gone, except for the first few nanos after machine boots.
I bought a Raspberry Pi with a view to developing a hobby OS. Turns out that the graphics chip spec is closed and will only work with a Linux binary blob provided by the manufacturer.
Interesting, but very Intel-centric, the name of the site should probably reflect that. Anyone doing this stuff for fun would probably have a lot more fun on a 68k or MIPS or ARM.
The list of reference books [1] on the site is quite formidable. Each book in that list deserves a lot of time to do justice to the content they have in them and the hard work/experience authors have put in.<p>Anyway, even if you start developing your own OS, you may not end up writing the whole of it all by yourself. Most people get a lot of help from outside and that is not at all bad, infact it has already proved itself to be the way to go by the open source Operating systems that are around today.<p>[1] <a href="http://wiki.osdev.org/Books" rel="nofollow">http://wiki.osdev.org/Books</a>
Been dabbling with OS stuff for a while now, looking at xv6 sources and using Tanenbaum's Minix book.<p>Have got to say I'm very excited about this site, it looks incredibly useful.
My friend created a toy OS several years ago (he wrote it in C, then "manually" translated it to binary). He said to me <a href="http://www.osdever.net/tutorials/index" rel="nofollow">http://www.osdever.net/tutorials/index</a> is a good site. I don't know about it, but if you're interested, chick this site out too.
This site is great and contains so much information. Unfortunately it's hardly meaningful part of knowledge you need to write any modern OS. Unfortunately, because it's realy good fun to do stuff like that. It's quite hard to enjoy for a long time creating stuff that even you would not use.
I really recommend the irc channel #osdev (freenode). When I was making my os, I get stuck many times and debugging an OS is pure pain (I used bochs) but some people on #osdev help me to find the bugs and learn in the process.