Hallo,

ich probiere gerade ein wenig in Assembler rum. Dazu habe ich u.a. folgende Quellen:



Eine relativ einfache Einführung scheinbar. Habe bislang aber nur den ersten Link halb durchgearbeitet. Was ich aber weiß ist, dass eine Art "Kernel" zwar im MBR vorliegen
kann, der kann aber bloß 512 Bytes lang sein. Was ich jetzt vermute ist, dass ich (z.B. von der Festplatte, adressierbar wohl per CHS(?)) einen "eigentlichen" Kernel laden
sollte, an eine höhere, freie Speicheradresse, wo ich dann nur noch hinspringen müsste, wenn es sich um Bytecode handelt (`jmp`?) - ist das so weit richtig? Was ich dann
weiter denke wären diverse Schutzmechanismen, wenn ich z.B. Speicheradressen als NON-Executable markierte oder auch eigenen Benutzer-IDs zuweisen würde, damit
nur der eigentliche Besitzer auf diesen Speicher Zugriff erhält. Oder eine Art "LinkedList" diverser "randomized" Speicheradressen, die so virtuell zu einem großen Bereich
würden? Ist das so weit korrekt gedacht?

Mein nächstes Problem ist, dass ich zwar Festplatten-Zugriffe gefunden habe, aber bislang nichts über Ethernet bzw. NICs. Gibt es da auch BIOS-Routinen - oder wie kann
ich mein kleines OS um Netzwerk-Zugriffe erweitern? Klar, alles sind im Prinzip Speicher-Mappings - kann man doch wohl so sagen - aber es müsste ein Hardware-Interrupt
für NICs her?

Dritte und letzte Frage: Segmentierung. Wohl dazu da, größere Speicherbereiche adressieren zu können, ohne die Bit-Breite erhöhen zu müssen. So ähnlich wie bei CHS!?
Wenn ich aber später den 32- oder 64-Bit-Modus anschalte, wird Segmentierung dann überflüssig oder fahre ich gut, diese *immer* mit zu verwenden (weil's effizient ist oder
so?).

DANKE für eure Hilfe. Wer weitere gute Links hat, auch immer her damit. Der Kuchen.