

Writing your own Toy OS - smanek
http://linuxgazette.net/issue77/krishnakumar.html

======
a-priori
While writing your own boot loader may be fun, I think it's a waste of time.
If you are interested in operating systems programming, I recommend you skip
the boot loader stage and use GRUB to boot your kernel.

It's actually pretty simple to get a "hello world" kernel booting using GRUB.
After that, you have real, actual operating systems programming like
implementing paging, multitasking, interrupts, and so on.

~~~
aggieben
_Writing_ one is not a waste of time, because you learn what's really going on
just after POST. But trying to actually use your own and maintain it is pretty
much a waste. Write one to learn how it works, then throw it away and use
Grub.

~~~
a-priori
If you consider that valuable knowledge, then I agree with you there. There
may be some merit to writing (and understanding) a minimal bootloader that
enables A20, switches to protected mode, and loads a kernel from a floppy
disc. Just getting that far will teach you quite a bit about writing and
debugging low-level assembly code. However, if you go this route then, as you
say, you should definitely consider it throwaway code.

But, I don't think that knowledge is important. You'll gain much of the same
knowledge from implementing virtual memory and multitasking. Besides, the
bootloading process is highly architecture-specific. Switch to an ARM or PPC
chip, and it's a completely different process.

~~~
aggieben

      Switch to an ARM or PPC chip, and it's a completely
      different process.
    

Yup. That's why you should do it for learning purposes - getting your head
around how a machine bootstraps itself is, to my mind, one of the harder
things to understand about a computing system. Part of that is because someone
who doesn't know how it works might look at booting mechanisms as a sort of
"black box", or just magic. Once you peer into the black box and understand
some of it, suddenly, none of it seems all that mysterious anymore, even if
you've only learned the particulars for one specific machine.

------
0x44
Parts two and three:

<http://linuxgazette.net/issue79/krishnakumar.html>
<http://lg.paracoda.com/issue82/raghu.html>

------
mcormier
What's a floppy?

~~~
a-priori
A USB drive, hard drive, or CD ROM all work just fine. Floppies are just a
simple and conventional way to get a kernel booting. Personally, I like
netbooting the best.

