Ok...ajde ovako...
1. Pre pisanja operativnog sistema, moras upoznati hardver na kome se pise.
Ukoliko pises "od nule" odmah ustanovi na kom racunaru ces da pises i koriscenjem kog programskog jezika i compiler-a. Preporuka je da sve hardware/compiler dependant stvari stavljas u jedan fajl (*.h, ako je u pitanju C ili C++, koje toplo preporucujem, cak insistiram) kako bi samo taj menjao dok bi ti ostatak bio u tvojim fajlovima koji ne zavise od masine na kojoj se vrti sam OS. Specifikacije o kojima pricas mozes izguglati (prim.prev.), ono sto bih ti preporuci da pre svega pogledas jeste:
1) tabela prekidnih rutina (IVT, Interrupt Vector Table)
2) koriscenje dos.h i ostalih standardnog c/c++ kompajlera, f-je:
2.1) setvect(), getvect()
2.2) setjmp(), longjmp()
3) mehanizam prekida doticnog racunara
3.1) sta se odvija na hardverskom, a sta na softverskom nivou
3.2) koje registre racunar koristi pri prekidima
4) Detalje DMA kontrolera periferija, nacini funkcionisanja, kontrola...
2. Procitaj o gore navedenim temama u sledecim knjigama:
1) Operating System Concepts - Abraham Silberschatz, Peter Baer Galvin i Greg Gagne, po mogucstvu sedmo izdanje
2) Modern Operating Systems Second Edition - Andrew Tanenbaum
3. Nevolje
Budi spreman na mnoge "otkaze" sistema, pogotovo ako ne radis u Windows-u. M$ Windows emulira kompletan set programski dostuopnih registara i na taj nacin ti ne radis ono sto bi zeleo, tj. ne ides dovoljno "nisko", blizu hardveru...
Radi u Linuxu ili DOS-u, bolje u Lindzi pre svega jer imas odgovarajuce IDE i syntax highlightning alate za lakse pisanje koda...
4. Pitaj one koji su vec radili
Guglaj, trazi na netu iskustva i savete, mnogo ces vremena ustedeti i lakse savladati decje bolesti pa ako ti se budzi kasnije tvoj novi OS, lako ces sa naucenim.