Herstellerangaben x86



  • Hallo,
    gibt es Herstellerangaben über den Bootvorgang des x86 (Die IA-32 Architecture Manuals schweigen sich diesbezüglich aus)?
    Damit meine ich bspw. mit welchen Werten die Register vorgeladen werden, wo der Bootloader hingeladen wird, wie GDT / LDT aufgebaut werden müssen, welche Ports wohin führen, etc. D.h. Details über die Programmierrelevanten Vorgänge.
    Mir ist klar, wo ich die Informationen herkriege (Erhard, osdev.org, lowlevel.brainsware.org etc.), nur mich würden eben die offiziellen "Quellen" interessieren.

    Danke im Voraus 🙂



  • Das sind eigentlich alles Fragen, die von der Konfiguration der Peripherie, bzw. des PC abhängen und nichts direkt mit dem x86, also dieser in die Tage gekommenen CPU-Architektur, zu tun haben.

    Bei Intel muesste sich eine Stelle finden lassen, die den Zustand des x86 nach einem Reset beschreibt. Aber sofern du kein BIOS schreiben willst, ist das ziemlich uninteressant (AFAIR RM, alle Allgemein-Register 0, CS:IP=F000:FFF0).

    Wo der Bootloader hingepackt wird, bestimmt allein das BIOS. Den nach 7C00 zu packen ist einfach ein von IBM festgelegter PC-Standard (nicht zu verwechseln mit x86-Standard).

    Wie der Protected Mode (und damit GDT und LDT) funktioniert, steht dagegen ganz sicher irgendwo in den Intel Manuals. Was du damit dann letztendlich anfaengst, ist dagegen allein dir als OS-Entwickler ueberlassen.

    Die Zuordnung von Adress- und Portbereichen haengt mit Ausnahme der Vorgabe, dass beim Power-On an Adresse FFFF0 ausfuehrbarer Code liegen sollte, im Prinzip allein vom PC-Design ab. IBMs Konfuguration in ihren ersten PCs hat sich ueber die Jahre dabei zu einer Art Quasi-Standard entwickelt. Der x86 an sich koennte aber in einem nicht PC-kompatiblen System, mit beliebigen Port- und Adresszuweisungen im Grunde genau so gut werkeln.

    Hoffe die Unterschiede zwischen CPU und PC (allgemein dem System um die CPU) sind da etwas klar geworden. Alles, was du ueber die x86-Hardware wissen musst, laesst sich auch irgendwo in den Intel manuals finden. Alles andere ueber die Hardware drum herum im PC und weitere PC-Standards hat urspruenglich IBM festgelegt.

    Ist allerdings vor allem heutzutage schwer zu unterscheiden, da der Trend in Richtung SOC geht. Dh. es wird immer mehr eigentlich PC-spezifische Hardware mit auf dem DIE der CPU integriert.
    Zudem wurden viele Standards von anderen (BIOS-/Chipset-/Mainboard-)Herstellern ergaenzt.



  • Ah, okay. Ich denke der Unterschied ist klar geworden, danke.
    Dann werde ich mich mal genauer mit dem BIOS auseinandersetzen (rein interessehalber, man wundert sich nur, wo die Tutorials ihre Infos herkriegen...)
    Ich denke, LinuxBIOS / coreboot sollte ganz dienlich sein.

    Danke für die Hilfe, Nobuo 🙂



  • Ich weiss nicht, ob du die seite schon kennst (weil du IDT und GDT erwaehnt hast, welche definitiv erlaeutert werden, moeglicherweise nicht):
    http://www.intel.com/products/processor/manuals/

    Ist stellenweise einfach wirklich besser, sich die original Manuals durchzulesen, als dieses von zehn Stellen Zusammenkopierte diverser Tutorials, wo man teilweise das Gefühl hat, der Autor hat es selbst nicht kapiert, was er da eigentlich schreibt.



  • http://www.phoenix.com/docs/specsbbs101.pdf
    Das ist genau das, was ich gesucht habe. Gar nicht so schwer zu finden, in Anbetracht dessen, dass es am Ende des Wiki-Artikel zu BIOS verlinkt ist .


Log in to reply