Ich schreibe atm an einem Buch (naja riesen tut trifft es evtl besser) zum thema bootloader mit fat 12. hab allerdings atm probleme mit dem grafiktreiber unter linux und kann deshalb nicht weiterschreiben (sysdev unter windows ist zum kotzen). ich werde das mal demnächst in ordnung bringen und die erste version fertig stellen. Das ganze wird dann auch nicht mehr blos das thema fat 12 behandeln sondern eher noch auf die sysdev themen eingehen und fat 12 nur als filesystem beispiel nehmen, weil es schön einfach ist ;-) Vorab kann ich dir folgendes raten:
0) Assembler ist eine Kernqualifikation. zwar brauchst du es wenn du es "richtig" machst, nur ganz am anfang und kannst diese zeilen auch irgendwo abschauen aber für was halbwegs ernsthaftes wirst du nicht drum rum kommen. es ist sowieso generell praktisch, wenn man noch weiß, wie die hardware arbeitet, auch wenn du später dann mit c bzw. c++ weitermachst. Als Assembler würde ich dann nasm empfehlen.
1) Du brauchst Linux. es ist einfach praktischer (mount, mk*fs, dd, um nur mal ein paar stichworte zu nennen). Es geht auch mit Windows, aber tu dir einen gefallen und tu dir das nicht an (ich habs ausprobiert und bin aus freien stücken zu linux convertiert ;-)).
2) Ein Emulator muss her, es sei denn du willst ständig rebooten. Außerdem kannst du mit nem passenden debugger auch noch die register, den speicher etc etc überwachen. Ich empfehle qemu und gdb.
3) Joa was noch... lowlevel sei dir ans herz gelegt, zusätzlich google, viele nerven, viel geduld und eine menge begeisterung!
Als Editor verwende ich übrigens für meine asm codes gedit, bietet afaik leider kein syntax highlighting für asm :-(
Hab mal einen bootloader geschrieben, afaik unter zlib license:
http://www.ursschulz.de/Stuff/loader.tar.gz
Das "besondere": Ein teilweise modularer aufbau, das ganze kann das fat 12 dateisystem von diskette lesen. mit etwas erweiterung an den buildscripts könnte man das denke ich recht leicht ändern.
Socke