GDT
-
Hallo zusammen,
habe angefangen ein kleines OS zu schreiben. Dieses soll im Prinzip nichts können, es dient nur dem Lernzweck. Dabei habe ich mich einigermaßen am PrettyOS hier im Forum orientiert.
Bootloader, Kernel, kein Problem, nun möchte ich in den Protected-Mode schalten (später in den Long-Mode). Nun stellt diese Sache programmiertechnisch auch kein Problem da, aber ich möchte verstehen was ich da mache.
Und beim Thema GlobalDescriptorTable ist bei mir, obwohl ich mich ausführlich im Internet informiert habe, noch nicht der Groschen gefallen...Ich habe verstanden, dass er hauptsächlich der Zugriffsberechtigung für Code und Daten dient. Aber inwiefern sich das auswirkt, etc. ist mir noch ein Rätsel...
Vielleicht könnte mir das jemand, wenn er gerade Zeit hat, noch einmal ausführlich erklären, wäre wirklich klasse!
-
Vielleicht solltest du erstmal versuchen, den auch nicht so einfach zu verstehenden Real Mode zu verstehen, Interruptvektoren und so Sachen. Bevor das nicht wirklich sitzt, sollte man besser noch nicht mit Protected Mode anfangen, denn das ganze protected baut ja letztlich darauf auf.
Was der Prozessor "braucht", ist u.a. richtige Addresseneinrichtungen und Initialisierungen. Das bekommt man aber mit Halbwissen nicht wirklich gut hin....oder vielleicht doch...was wäre eigentlich halb-protected
-
Hm gut, das Problem ist nur, dass ich keine Ahnung habe, woher ich das "Voll"-Wissen nehmen soll
Ich versuche erst einmal rein zu rennen und dann guck ich, was ich um mich herum nicht verstehe
-
http://www.lowlevel.eu/wiki/GDT
http://wiki.osdev.org/GDTUnd wie für alle CPU nahen Themen:
http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html
Die Intel Manuals, wobei zu dem Thema passend speziall den "System Programming Guide"
-
"System Programming Guide" hört sich schonmal klasse an
Die Guide finde ich einmal unter
"3 Volume Set of Intel64 and IA-32 Architectures Software Developer’s Manuals"
und einmal unter
"7 Volume Set of Intel64 and IA-32 Architectures Software Developer’s Manuals".
Ist letzteres eine überarbeitete Version oder nur ein Zusatz?
-
Das sind unterschiedliche "Verpackungen", einmal in 7 PDFs aufgeteilt und einmal in 3
EDIT: Oh, und da das hier in "Assembler" steht sind vllt auch die lgdt und sgdt Abschnitte im Instruction Set Reference Manual interessant
-
Werde ich auf jedenfall tun!
Danke