Lowlevel

Lowlevel => OS-Design => Thema gestartet von: Hauke am 05. October 2008, 15:05

Titel: Was gibt es alles im LongMode nicht mehr?
Beitrag von: Hauke am 05. October 2008, 15:05
Ich weis, dass es Hardware Multitasking nicht mehr gibt, auch den Virtual 8086 Mode soll es nicht mehr geben, können jetzt BIOS Funktionen noch irgendwie benutzt werden?
Und welche Sachen gibt es außerdem nicht mehr?
Titel: Re: Was gibt es alles im LongMode nicht mehr?
Beitrag von: bluecode am 05. October 2008, 15:30
Hardware Multitasking wird schon seit Ewigkeiten nicht mehr verwendet, insofern wurde es wie du richtig sagst einfach weggelassen. Virtual 8086 Mode ist sowieso nur ein Untermodus des Protected-Mode und insofern natürlich nicht Teil des Long-Modes. Du willst für die meisten Sachen nach dem Bootloader sowieso keine BIOS-Funktionen verwenden (schon im Protected-Mode nicht). Als einzige Ausnahme lasse ich mal die VESA BIOS Extensions gelten. Ansonsten ist Segmentierung fast komplett weggefallen: Man kann nur noch die Basisadresse von iirc fs und gs über Machine Specific Registers ändern.
Ansonsten sieht natürlich das Paging anders aus, da der virtuelle und der physische Adressraum vergrößert wurde.

Mehr fällt mir momentan nicht ein.
Titel: Re: Was gibt es alles im LongMode nicht mehr?
Beitrag von: Hauke am 05. October 2008, 16:03
Zitat
Als einzige Ausnahme lasse ich mal die VESA BIOS Extensions gelten.
Genau die meine ich, ich hätte mich wohl besser ausdrücken sollen, also kann man das noch benutzen? (ist mir jetzt noch immer nicht so klar)
Titel: Re: Was gibt es alles im LongMode nicht mehr?
Beitrag von: bluecode am 05. October 2008, 16:17
Nein, nicht direkt aus dem Long-Mode. Entweder indem du in den Protected-Mode (mit Virtual-8086-Mode) oder direkt in den Real-Mode zurückwechselst. Ansonsten bleibt nur virtualisieren/emulieren oder einmalig den Code des BIOS-Interrupthandlers auslesen und in einen Treiber mit Long-Mode Code übersetzen (das kann man entweder von Hand für jedes BIOS machen oder wahrscheinlich auch automatisieren), wobei wahrscheinlich beides zu viel Aufwand bereitet.
Oder eben während des Bootvorgangs in den Grafikmodus wechseln. Das halte ich fast für die sinnvollste Alternative auch wenn es unelegant ist. Aber wenn man ehrlich ist: Man wechselt selten die Auflösung und viel mehr kann man mit VBE sowieso nicht machen.

Als komplette Alternative gibt es natürlich noch X mit seinen open-source Treibern oder der Eigenbau von Treibern aus der Dokumentation von ATI/AMD und Intel.
Titel: Re: Was gibt es alles im LongMode nicht mehr?
Beitrag von: Hauke am 05. October 2008, 16:39
OK. Das ist dann soweit klar.
Danke  :-)
Titel: Re: Was gibt es alles im LongMode nicht mehr?
Beitrag von: bitmaster am 05. October 2008, 22:09
pusha und popa gibt es net mehr  :wink:
Titel: Re: Was gibt es alles im LongMode nicht mehr?
Beitrag von: ChristianF am 07. October 2008, 14:58
Oder eben während des Bootvorgangs in den Grafikmodus wechseln. Das halte ich fast für die sinnvollste Alternative auch wenn es unelegant ist. Aber wenn man ehrlich ist: Man wechselt selten die Auflösung und viel mehr kann man mit VBE sowieso nicht machen.
Nun das ist allerdings bei einem Microkernel nicht unbedingt sehr schön, da der Grafiktreiber doch meist ausgelagert ist.
Des Weiteren gibt es glaube ich eine Art Standard für 2D Hardwarebeschleunigung. Ich bin mir allerdings nicht ganz sicher und finde den Link nicht mehr...
 
EDIT:
Ich habe ihn gefunden. Und zwar nennt der sich VBE/AF.
Hier ein Link zum PDF-Dokument: http://www.vesa.org/public/VBE/VBE-AF07.pdf
Titel: Re: Was gibt es alles im LongMode nicht mehr?
Beitrag von: bluecode am 09. October 2008, 19:31
IIRC ist das ein Standard für einen 2D-Grafiktreiber. Das Problem ist, dass du zu diesem Standard halt keine Treiber findest, die du in dein OS einbauen könntest. Insofern bringt der Standard garnischt.

Zitat
Nun das ist allerdings bei einem Microkernel nicht unbedingt sehr schön, da der Grafiktreiber doch meist ausgelagert ist.
Und wie bringt uns das einer praktischen Lösung näher? :wink:
Titel: Re: Was gibt es alles im LongMode nicht mehr?
Beitrag von: ChristianF am 13. October 2008, 11:46
IIRC ist das ein Standard für einen 2D-Grafiktreiber. Das Problem ist, dass du zu diesem Standard halt keine Treiber findest, die du in dein OS einbauen könntest. Insofern bringt der Standard garnischt.

Zitat
Nun das ist allerdings bei einem Microkernel nicht unbedingt sehr schön, da der Grafiktreiber doch meist ausgelagert ist.
Und wie bringt uns das einer praktischen Lösung näher? :wink:
Nun es gab mal ein solches Projekt, das hies FreeBE/AF. Hier ist ein Link: http://www.talula.demon.co.uk/freebe/
Allerdings sind die letzten News leider vom 27. Juni 1999!  :cry:

*EDIT*
IIRC ist das ein Standard für einen 2D-Grafiktreiber. Das Problem ist, dass du zu diesem Standard halt keine Treiber findest, die du in dein OS einbauen könntest. Insofern bringt der Standard garnischt.
Das würde dann wieder heißen, dass man für jede Karte einen extra Treiber schreiben muss oder wie?
Titel: Re: Was gibt es alles im LongMode nicht mehr?
Beitrag von: bluecode am 14. October 2008, 16:00
IIRC war die Theorie dahinter, dass der Grafikkartenhersteller einen Treiber dem Standard entsprechend erstellt und dieser auf allen Betriebssystemen die Treiber mit diesem Standard unterstützen läuft. Naja, wie sonst auch immer fehlen halt die Treiber die diesem Standard genügen.
Titel: Re: Was gibt es alles im LongMode nicht mehr?
Beitrag von: ChristianF am 15. October 2008, 14:19
IIRC war die Theorie dahinter, dass der Grafikkartenhersteller einen Treiber dem Standard entsprechend erstellt und dieser auf allen Betriebssystemen die Treiber mit diesem Standard unterstützen läuft. Naja, wie sonst auch immer fehlen halt die Treiber die diesem Standard genügen.
Du hast es erfasst. Es fehlen die Treiber.
Der Standard definiert einen minimalen Funktionssatz, den die Treiber beinhalten müssen, damit jedes OS diese benutzen kann.
Das heißt, dass irgendjemand die Treiber mal schreiben muss, bzw. damit anfangen muss diese zu schreiben. Der Rest kommt dann von selbst. ;)
Wofür gibt es denn Open Source...  :-D