Autor Thema: Was gibt es alles im LongMode nicht mehr?  (Gelesen 7777 mal)

Hauke

  • Beiträge: 113
    • Profil anzeigen
Gespeichert
« 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?

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #1 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.
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

Hauke

  • Beiträge: 113
    • Profil anzeigen
Gespeichert
« Antwort #2 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)

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #3 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.
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

Hauke

  • Beiträge: 113
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 05. October 2008, 16:39 »
OK. Das ist dann soweit klar.
Danke  :-)

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #5 am: 05. October 2008, 22:09 »
pusha und popa gibt es net mehr  :wink:
In the Future everyone will need OS-64!!!

ChristianF

  • Beiträge: 296
    • Profil anzeigen
    • DeutschOS - Betriebssystem Projekt
Gespeichert
« Antwort #6 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
« Letzte Änderung: 07. October 2008, 15:02 von ChristianF »

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #7 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:
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

ChristianF

  • Beiträge: 296
    • Profil anzeigen
    • DeutschOS - Betriebssystem Projekt
Gespeichert
« Antwort #8 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?
« Letzte Änderung: 13. October 2008, 21:31 von ChristianF »

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #9 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.
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

ChristianF

  • Beiträge: 296
    • Profil anzeigen
    • DeutschOS - Betriebssystem Projekt
Gespeichert
« Antwort #10 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

 

Einloggen