PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RAM - Wo ist was? bzw. Protected Mode


Korexio
14.04.2004, 12:30
Hallo!

Ich schreib grad zum Spaß ein kleines OS. Das ganze wechselt sofort nach dem Boot in den Protected Mode. Da muss ich dan ja auch die div. Tabellen (GDT, LDT und IDT) anlegen. Dass ich sie anlegen kann wo ich will weiß ich, allerdings würde mich interressiern wie weit der Arbeitsspeicher bereits vom BIOS vorbelgt ist? (O.K. BIOS wird gar nichts im Arbeitsspeicher machen, aber ist der vollkommen leer?) Also welche Address-Bereiche kann ich verwenden?

Ein Tabelle kann ja max. 8192 Einträge aufnehmen (je 8 byte groß). Also muss ich diese Bereiche ja von vornherein reservieren. Wie groß sollte ich sie dann wählen? maximale größe geht ja nicht, dann bräuchte ich ja 192mb arbeitsspeicher... also dynamisch? man kann aber keine Sprünge in der Tabelle machen oder?

hoffe mir kann jemand helfen.

mfg korexio


Felix Kaiser
18.04.2004, 23:37
Du kannst die unteren 640kb verwenden, ansonsten alles oberhalb des 1.MB bis zur RAM Grenze. Danach folgt nochmals Speicher von diverser Hardware, z.B. Speicherbereiche von Grafikkarte, Netzwerkkarten, Soundkarten, etc.
Ich würde für die GDT 64k reservieren, für die IDT die maximale Größe (weiß ausm Kopf jetzt nicht wieviel kb) und das LDT Zeug nach Bedarf. Ich hab mich damit nur damals als ich mit Menuet OS zu tun hatte befasst. Und da tat diese Variante prima und dürfte noch tun. :)

Korexio
20.04.2004, 13:05
Danach folgt nochmals Speicher von diverser Hardware, z.B. Speicherbereiche von Grafikkarte, Netzwerkkarten, Soundkarten, etc.

Heißt das diese Speicherbereiche werden genauso angesprochen wie der RAM, kein unterschied? dann wird mir so einiges klar... (Videospeicher beschreiben und so weiter)
Hat wer eine Tabelle wo steht welcher Speicher welchem Hardwaregerät entspricht?

Hab kein Assambler in der schule (nur Visual Basic :-) und im internet find ich nichts wirklich brauchbares...

Felix Kaiser
20.04.2004, 18:16
Welche Hardware welchen Speicherbereich benötigt musst du abfragen. Was ISA Geräte betrifft geht über das PnP BIOS, der Rest geht über den PCI Bus. Du musst alle Geräte ausfindig machen, sowie deren Konfiguration. Genau so bei ISA Geräten. Dann weißt du, welche E/A Ports, welche Interrupts, welche Speicherbereiche verwendet werden. Craig Hart hat dazu mit Pascal Tools geschrieben, an denen man gut erlernen kann, wie das ganze funktioniert.