Incomincia da qui:
http://www.osdever.net/bkerndev/Docs/intro.htm

avrai un'idea di cosa fare.
Per il resto pallinopinco ha ragione, ma puoi già cominciare a sperimentare.
Non pensare di potere scriverti un sistema "completo", cioè con multitask, scheduler, ecc...
Però potresti "accontentarti di una shell che leggi input, e produce output.

Forum sull'argomento: http://www.osdev.org/

Leggiti qualche kernel tipo ItalOS o WizardOS; linux è troppo grande, non ci capisci una mazza.
Dai anche un'occhiatona al kernel di Minix.

Consiglio il libro "Understanding Linux Kernel"; il libro di Tanenbaum su Minix, il mitico Minix Book.
In generale tutti i libri di Tanenbaum sui sistemi operativi sono buoni.

Comincia con l'ordinare i libri, intanto puoi cominciare a sperimentare, scriviti un programma che stampi "Hello, Boot !" all'avvio del computer. Per il boot lo metti tranquillamente su floppy, ma ti consiglio bochs, ottimo emulatore, con tanto di debugger.
Una guida:
http://unsecure.altervista.org/doku/...ot:boot_sector

Programmare OS è fantastico, te lo assicuro, ma è anche dannatamente complicato, soprattuto il debugging.