Diskussion:VESA BIOS Extension

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Abwärtskompatibilität VBE 3.0[Quelltext bearbeiten]

Hallo,

also ich bin mir da fast 100% sicher, das VBE 3.0 zu 2.0 abwärtskompatibel ist ... --80.128.113.241 18:03, 22. Jun. 2007 (CEST)[Beantworten]

Bestreitet das jemand?
Im Text heißt es nur, dass mit VBE 2.0 bereits alle Wünsche erfüllt werden. Die wesentliche Neuerung von VBE 3.0 ist ja der Protected Mode Entry Point, der aber in modernen Systemen aus designtechnischen Gründen (es müsste Wechsel in 20 Bit Protected Mode stattfinden) nicht genutzt wird.

Ja, das habe ich dann wohl falsch verstanden. Habe das mal etwas unmissverständlicher formuliert.

-----------

Designtechnische Gründe: Ab dem 80386 kann ebenfalls auch im 16 Bit Protected Mode Segmentgrößen von bis zu 4 GiB verwendet werden, womit auch der LFB(im 4.GiB) adressiert und verwendet werden kann. Der Unterschied zum 32 Bit Protected Mode besteht lediglich nur darin, dass man für Befehle mit 32 Bit-Operanden/Adressen keine Operandsize/Adresssize-Prefixe verwenden darf, aber für Befehle mit 16 Bit-Operanden/Adressen diese Prefixe braucht und sich damit die Anzahl der Bytes im Codesegment ggf. veringert, wenn man überwiegend nur 32 Bit-Operanden/Adressen verwendet. Im 16 Bit Adressmode muss man für Befehle mit 32 Bit-Operanden/Adressen die Operandsize/Adresssize-Prefixe verwenden, aber nicht für 16 Bit-Operanden/Adressen.

Das die VBE-Modi mit 16 Bit Farbtiefe erst mit VBE 2.0 hinzukamen ist falsch. In der alten VBE 1.x-Mode-Liste gab es bereits auch schon vorher verschiedene VBE-Modi mit 16 Bit (5:5:5 und 5:6:5) und auch 24 Bit(8:8:8) Farbtiefe.
10Dh - 320x200 32K (1:5:5:5)
10Eh - 320x200 64K (5:6:5)
10Fh - 320x200 16.8M (8:8:8)
110h - 640x480 32K (1:5:5:5)
111h - 640x480 64K (5:6:5)
112h - 640x480 16.8M (8:8:8)
113h - 800x600 32K (1:5:5:5)
114h - 800x600 64K (5:6:5)
115h - 800x600 16.8M (8:8:8)
116h - 1024x768 32K (1:5:5:5)
117h - 1024x768 64K (5:6:5)
118h - 1024x768 16.8M (8:8:8)
119h - 1280x1024 32K (1:5:5:5)
11Ah - 1280x1024 64K (5:6:5)
11Bh - 1280x1024 16.8M (8:8:8)

Die im Beitrag verwendete "Liste der Modi" für VBE bis 1.x ist ab VBE 2.0 eigentlich gar nicht mehr gültig, bzw. die Hersteller können davon abweichende, eigene Modenummern verwenden, womit ggf. die selben Auflösungen zur Verfügung gestellt werden können, nur halt mit jeweils einer anderen Mode-Nummer. Ab VBE 2.0 kann man sich also nicht mehr darauf verlassen, dass diese alte Liste der VBE 1.x-Modenummern noch die gewünschte Auflösung zur Anzeige bringen. So ist es ab VBE 2.0 erforderlich die Modeliste, die vom Bios selber mitgebracht wird, zu verwenden und diese Liste Modenummer für Modenummer zu überprüfen, welche modespezifischen Eigenschaften damit jeweils vorhanden sind.

Immer noch unerfüllte Wünsche: Die Unterstützung von "secondary" display devices bei modernen GraKas mit 2 Monitor-Anschlüssen, womit man auch den Inhalt vom 2.LFB auf dem 2.Monitor ggf. auch in einer anderen Auflösung angezeigt bekommt. So fehlt auch noch DDC-Read EDID für den zweiten Monitor.

-----------

Die wesentlichen Neuerungen von VBE 3.0 (gemäß des kostenlos erhältlichen public documents "vbe3.pdf" von vesa.org) sind:

- VBE-Modi mit eigenen CRTC-Parameter, womit eine höhere Refreshrate (als nur die üblichen 60hz) eingestellt werden kann; (Zweckmässig ist eine vorherige Überprüfung der maximalen Kapazität des verwendeten Monitors über DDC/Read EDID-Funktion(int10h/AX=4F15h)); Zur Berechnung der "CRTC-Parameter" kann man das "VBEHz"-Tool verwenden;

- hardware triple buffering(mit Vsync), wofür 3 verschiedene Adressbereiche als Buffer im Wechsel zur Anzeige gebracht werden;

- die Unterstützung von stereoskopischen Shutterglasses, wofür je ein Speicherbereich zur Anzeige für das rechte und für das linke Auge verwendet wird;

- Protected Mode Entry Point, wofür in den Protected Mode geschaltet werden muss Diese Schnittstelle enthält nur sehr wenige Funktionen (damit ist z.B. kein VBE-Modewechsel möglich); Im 16 bit Adressmode kann schon (ab 80386+ mit 32 Bit Adressregister) der gesamte 4GB-Adressraum (so auch der LFB im 4.GB) vollumfänglich adressiert werden; ... Entgegen den früheren Vermutungen eines bekannten deutschen Computer-Magazins unterstützen auch heute immer noch moderne Grafikkarten wie z.B. mit Radeon 7950-Chipsatz ein VBE3-Bios. Vergleichbare Grafik-Karten unterstützen verschiedene Auflöungen von bis zu 2048x1536 Pixel mit 8, 16, 24 und 32 Bits per Pixel Farben und mit einem Seitenverhältniss der horizontalen und vertikalen Auflösung von 4:3 und 5:4, sowie auch widescreen mit 16:9 und 16:10 (aspect ratio).

Dirk

----------- (nicht signierter Beitrag von 80.171.176.233 (Diskussion) 12:56, 26. Nov. 2013 (CET))[Beantworten]

VBE unter Linux / Windows[Quelltext bearbeiten]

Der Standard spielt heute jedoch noch unter Linux eine Rolle: Sind Open-Source-Grafikkartentreiber für bestimmte Grafikkarten nicht verfügbar, so können nur durch Verwendung eines Treibers, der die hier beschriebene Funktionalität nutzt, Auflösungen von mehr als 640×480 Pixel bei mehr als 256 Farben verwendet werden. - zwei Anmerkungen / Einwände dazu: 1. Da man unter Linux sowohl Open-Source als auch Closed-Source-Treiber nutzen kann, würde ich dort einfach "Open Source" rausnehmen. 2. Wenn unter Windows kein spezifischer Grafikkartentreiber installiert ist, stehen Funktionalitäten zur Verfügung, die mir doch sehr nach VBE aussehen, d.h. ich vermute doch sehr stark, dass Windows dort genauso vorgeht wie Linux. Kann das jemand nachtragen, der es sicher weiß? --Prauch 02:26, 9. Dez. 2009 (CET)[Beantworten]

Was für weitere unterstützte Funktionen waren das?[Quelltext bearbeiten]

Im Artikel steht: Sie sind eine üblicherweise im Grafikkarten-BIOS implementierte Programmierschnittstelle (API) die den Programmen Interrupts zur Verfügung stellt, um damit Aktionen wie das Setzen oder Abfragen von Videomodi durchzuführen sowie weitere von der Hardware unterstützte Funktionen anzusprechen.. Frage: Was für weitere Funktionen waren das genau? Gehörten dazu auch schon Beschleunigungsfunktionen wie das Zeichnen von Rechtecken oder Linien oder das Verschieben von Grafikausschnitten im Video-RAM dazu? Der ganze Artikel ist diesbezüglich leider etwas dünn. --95.117.95.40 00:39, 27. Mär. 2013 (CET)[Beantworten]

--------

Diese unter "Blitting" bezeichneten "Accelerator Functions"(VBE/AF) z.B. für 2D Polygon Rendering sind nur über einen entsprechenden Treiber verfügbar. Siehe dazu auch "VBE-AF07.pdf" von vesa.org und "the free VBE/AF driver project": http://www.talula.demon.co.uk/freebe/

Die im Bios enthaltenen weiteren Funktionen sind:
SAVE/RESTORE STATE
DISPLAY WINDOW CONTROL (man nimmt lieber den FAR-Jump zur Bankumschalt-Funktion, oder bestenfalls die Portadresse wenn bekannt)
SET/GET LOGICAL SCAN LINE LENGTH (ein Teil der jeweiligen scan line kann sich ausserhalb des sichtbaren Bereiches befinden)
SET/GET DISPLAY START (für scrolling und buffering)
SET/GET DAC PALETTE FORMAT (für 4 und 8 Bit-Farb-Modi)
SET/GET PALETTE DATA (für 4 und 8 Bit-Farb-Modi)
GET/SET PIXEL CLOCK (für Modi mit eigenen CRTC-Parameter)
Dirk

Defekter Weblink[Quelltext bearbeiten]

GiftBot (Diskussion) 08:01, 3. Dez. 2015 (CET)[Beantworten]

„… wird von den meisten modernen nVidia-Grafikkarten unterstützt“[Quelltext bearbeiten]

Wie aktuell sind die Informationen im Artikel? Meine Nvidia (sic!) GeForce GT 1030 hat jedenfalls kein VESA-BIOS. Und die ist immerhin schon rund vier Jahre alt. Ich gehe davon aus, dass VBE heutzutage relativ bedeutungslos ist, und dass die Hersteller kaum noch Entwicklungsaufwand darin investieren. --Winof (Diskussion) 13:09, 13. Jan. 2021 (CET)[Beantworten]

Ja, das sollte man wohl überarbeiten. VBE ist eine "BIOS Extension", das ist allein schon deshalb veraltet, weil heute UEFI eingesetzt wird. Betriebssysteme, die ein BIOS erfordern, sind alte Betriebssysteme. Grafiktreiber und Programme, die VBE benützen, waren eigentlich durchwegs Fallback-Grafiktreiber (etwa unter Linux, wenn nichts besseres – "accelerated" – verfügbar war) und grafische DOS-Programme/-Spiele.
Andreas 13:18, 13. Jan. 2021 (CET)[Beantworten]
Habe den Artikel angepasst und UEFI GOP als Nachfolger der VBE erwähnt. Nvidia in dem Satz zu erwähnen (aber ATI/AMD nicht) war eigentlich dort unsinnig, das habe ich gelöscht... ‣Andreas 14:11, 13. Jan. 2021 (CET)[Beantworten]
Ich danke Dir; das sieht jetzt schon viel besser aus!
Wird GOP eigentlich vom UEFI des Mainboards implementiert, oder kommt das von der Firmware der Grafikkarte? Ersteres ist schwer vorstellbar, da das Mainboard-UEFI ja kaum Treiber für alle möglichen GPUs enthalten kann – maximal für die Onboard-GPU, falls es eine gibt (mein aktuelles Mainboard hat z.B. keine). Also müsste GOP eher aus der Firmware der Grafikkarte kommen, was wiederum die Frage aufwirft, welche Grafikkarten das unterstützen. In den üblichen Datenblättern, die man so auf Hersteller-Web-Seiten findet, wird so etwas nicht erwähnt. --Winof (Diskussion) 15:33, 13. Jan. 2021 (CET)[Beantworten]
Soweit ich weiß haben Grafikkarten immer noch ein Grafik-BIOS (oder eben eine Grafik-Firmware). Bei modernen Grafikkarten ist neben den BIOS-Funktionen wohl auch soetwas ähnliches für UEFI dabei. Oder aber es gibt einen UEFI-Standard, den die Grafikkarten ihrerseits implementieren. So oder so, GOP funktioniert als Framebuffer sehr gut, in allerlei Grafikmodi.
Ich konnte auch keine genauen Informationen dazu finden...
Andreas 16:09, 13. Jan. 2021 (CET)[Beantworten]
VBE hat nichts mit dem BIOS zu tun. Es ist Teil der Grafikkartenfirmware. Man kann VBE also auf einem uralten PC verwenden, dessen BIOS noch nie etwas von VBE gehört hat. Die Grafikkarte muss nur in den alten Rechner passen und wenn man die 32 Bit Modi nutzen will, dann muss das natürlich auch ein entsprechender Prozessor sein. Der 386 kam allerdings 1985 auf den Markt. --93.229.170.126 17:08, 24. Mai 2023 (CEST)[Beantworten]
Selbstverständlich hat VBE mit dem BIOS zu tun (die Abkürzung steht ja schließlich auch für VESA BIOS Extension). Die VBE ist nichts weiter als eine Erweiterung der in jedem PC-BIOS vorhandenen Video-Funktionen, die dort über den Software-Interrupt 10h aufgerufen werden. Die VBE hängt sich in diesen Software-Interrupt hinein und erweitert ihn um zusätzliche Funktionen, und damit wird die VBE praktisch selbst zu einem Teil des BIOS. Dabei spielt es keine Rolle, wo sich die Implementation der VBE befindet – ob in einem Chip auf einer Grafikkarte, oder auf dem Mainboard selbst, oder in Form eines Treibers, der vom Betriebssystem nachgeladen wurde (z. B. ein TSR unter DOS). Bei Notebooks war es eine Zeit lang üblich, dass die VBE-Funktionen im regulären BIOS mit drinsteckten; auch bei „normalen“ PCs mit Onboard-Grafik habe ich das schon gesehen. Aber wie bereits mehrfach erwähnt wurde: Heutzutage hat die VBE an Bedeutung verloren. (nicht signierter Beitrag von Winof (Diskussion | Beiträge) 19:37, 24. Mai 2023 (CEST))[Beantworten]
Das ist so nicht korrekt. Mit BIOS ist hier das Video BIOS der Grafikkarte gemeint, also dessen Firmware. Lies dazu einfach mal die Einleitung des englischen WP Artikels und der Artikel https://en.wikipedia.org/wiki/Video_BIOS. Der Grund, warum man das bei Notebooks und Onboard Grafikkarten aufs gleiche ROM wie das gewöhnliche PC BIOS packt, liegt schlichtweg an der höheren Integration und dem Sparen von Bauteilen, man ja weiß, was da verbaut ist. Der erste IBM hatte nämlich nicht einmal VGA, sondern Anfangs nur einen reinen Textmodus und kurz darauf noch CGA. Die VBE ist also eine Erweiterung zum Video BIOS und nicht zum normalen PC BIOS. Und ja, es gibt dafür auch TSR Programme für Grafikkarten, die über kein aktuelles Video BIOS verfügen. --93.229.170.126 21:56, 26. Mai 2023 (CEST)[Beantworten]
Ergänzung: Der deutsche WP Artikel hier ist also falsch. Da er das Video BIOS mit dem System BIOS vermischt. --93.229.170.126 22:02, 26. Mai 2023 (CEST)[Beantworten]
Das Video BIOS und das System-BIOS gehen aber Hand in Hand. Eine Grafikkarte, die keine BIOS-kompatible Firmware besitzt, wird auf einem PC mit BIOS nicht funktionieren. Umgekehrt kann eine Grafikkarte für den PC, die ein Video BIOS als Firmware besitzt, nicht auf z.B. einem PowerMac mit Open Firmware genutzt werden, denn dieser benötigt eine Grafikkarte mit FCode-Firmware, nicht mit VBIOS. Funktionieren wird eine solche Grafikkarte trotzdem, aber nur wenn das Betriebssystem die Grafikkarte initialisiert: eine PC-Grafikkarte ist auf einem PowerMac also erstmal nicht unterstützt, der Monitor bleibt schwarz, ein Erreichen der Open-Firmware-Konsole (entspricht etwa dem BIOS-Setup) ist damit nicht möglich. Wenn man aber z.B. Linux auf einem PowerMac startet, das dann einen Grafiktreiber verwendet, der die Grafikkarte inklusive dessen VBIOS unterstützt (teils sogar Funktionen des VBIOS voraussetzt), dann hat man auch auf einem PowerMac ein Bild und die Grafikkarte funktioniert -- mit VBIOS! -- einwandfrei. Mac OS bzw. Mac OS X hat naturgemäß keine solchen Grafiktreiber und benötigt immer eine "Mac-Version" der Grafikkarte: als eine Firmware für die im Mac seinerzeit verwendete Open Firmware, und kein VBIOS. (Nur ganz wenige Grafikkarte hatten damals eine hybride Firmware, die sowohl ein BIOS-kompatibles VBIOS als auch eine Firmware in FCode, die Mac-kompatibel war, beinhalteten.)
Bei der Umstellung vom BIOS ("Legacy BIOS") zu UEFI (Extended Firmware Interface) war unter Windows 7 auch das Problem, dass die Grafiktreiber für Windows damals das VBIOS voraussetzten. Windows 7 x64 hat also zwar UEFI nativ unterstützt, aber es musste immer auch das CSM (Compatibililty Support Modul, also die BIOS-Emulation des UEFI) geladen werden, selbst im nativen UEFI-Modus. Damit wurde dann das VBIOS initialisiert, und sowohl das EFI-Setup ("BIOS-Setup") als auch Windows hat dann anstandslos mit jeglicher Grafikkarte funktioniert. Dass das ganze aber ein Ende haben musste, wusste man damals sowohl bei Intel als auch in der gesamten Industrie, weshalb ein neuer Grafikstandard GOP ("Graphics Output Protocol") entwickelt wurde. Grafikkarten haben "Hooks" in der Firmware, sodass das EFI die Grafikfunktionen der eingebauten Grafikkarte nutzen kann. Auch die Windows-Treiber von Nvidia und AMD sind inzwischen so umgeschrieben, dass sie ohne ein VBIOS auskommen. Damit ist CSM nicht mehr nötig, und UEFI ganz ohne VBIOS und auch ohne VBE heute der neue Normalfall.
Das Problem entsteht, weil man die Begriffe "BIOS" immer noch für die System-Firmware und "Video BIOS" für die Firmware der Grafikkarte nutzt, auch wenn heute technisch gesehen kein BIOS mehr in der Firmware zu finden ist (sondern eine UEFI-Implementierung) und auch kein Video-BIOS/VBIOS (sondern eine UEFI-kompatible Firmware, "Video Firmware" oder "Grafik(karten)-Firmware").
Versucht man eine ganz moderne Grafikkarte, die kein BIOS-kompatibles VBIOS mehr besitzt, in einem alten PC mit BIOS zu verwenden, wird diese genausowenig funktionieren wie eine Mac-Variante mit FCode...
Andreas 16:38, 27. Mai 2023 (CEST)[Beantworten]
Völlig richtig. Im Grunde genommen ist das, was man als „Video-BIOS“ bezeichnet, ja auch nichts weiter als eine Erweiterung des PC-BIOS (den Begriff Firmware sollte man vielleicht eher vermeiden, denn das fällt alles im weiteren Sinn unter Firmware). Seine Aufgabe ist es, die Hardware zu initialisieren und Funktionen für Betriebssysteme bereitzustellen (z. B. über den erwähnten INT 10h), die selbst keine eigenen Hardware-Treiber haben. Die Übergänge sind fließend. Wenn der Artikel in der englischsprachigen Wikipedia das anders darstellt, dann ist er korrekturbedürftig, nicht unserer.
Übrigens: Der IBM-PC wurde damals von Anfang an wahlweise mit MDA oder CGA ausgeliefert. Andere Grafikkarten waren zu diesem Zeitpunkt nicht vorgesehen, daher befanden sich die entsprechenden Funktionen im PC-BIOS (die Grafikkarten hatten zwar ROMs, aber darin befand sich kein BIOS). Mit anderen Worten: Damals war das, was man später als „Video-BIOS“ bezeichnete, also bereits im PC-BIOS integriert. Spätere Grafikkarten brachten dann ihr eigenes Video-BIOS mit, das sich in das PC-BIOS einklinkte. Übrigens beschränkt sich dieses Prinzip nicht auf Grafikkarten: Viele andere Erweiterungskarten brachten ebenfalls ihre eigenen Funktionen mit, die sich in die entsprechenden Software-Interrupts einklinkten und somit praktisch das PC-BIOS erweiterten. Ein typisches Beispiel waren die SCSI-Karten von Adaptec. --Winof (Diskussion) 17:17, 27. Mai 2023 (CEST)[Beantworten]
Das hier "Das Video BIOS und das System-BIOS gehen aber Hand in Hand." muss ja logischerweise so sein, damit Systeme wie DOS damit klar kommen, aber das macht deine obige Aussage "VBE ist eine "BIOS Extension" (womit du das normale BIOS meinst) nicht richtiger, denn die VBE ist keine Erweiterung des normalen BIOS, sondern des Video BIOS. Also der Firmware der Grafikkarte. --93.229.170.126 21:17, 27. Mai 2023 (CEST)[Beantworten]
Also, BIOS --> Video BIOS (als Erweiterung des BIOS) --> VBE als Extension/Standard im Video BIOS. Nun alles klar? ‣Andreas 18:45, 28. Mai 2023 (CEST)[Beantworten]
Bei deiner Logik wäre auch ein Betriebssystem eine Erweiterung des BIOS. --93.229.170.126 20:59, 29. Mai 2023 (CEST)[Beantworten]
Wieso? Wenn ein Betriebssystem die BIOS-Funktionen aufruft, dann ist es doch egal, ob diese vom BIOS-ROM-Chip auf dem Mainboard, der Grafikkarte oder der SCSI-Controllerkarte stammen... ‣Andreas 10:40, 30. Mai 2023 (CEST)[Beantworten]
Ich habe das Gefühl, wir drehen uns im Kreis. Ja, VBE ist eine BIOS-Extension (es heißt ja auch so). Es gibt keinen Grund, hier zwischen Video-BIOS und „anderem BIOS“ zu unterscheiden, denn es bildet ohnehin eine funktionelle Einheit. „BIOS“ ist hier als Oberbegriff zu verstehen. Wie gesagt: Ob und welche Teile davon sich in einem separaten Chip auf einer Grafikkarte oder anderswo befinden, ist irrelevant. Die VBE klinkt sich in den Software-Interrupt 10h ein, und wo die übrigen Teile davon implementiert sind (was sowohl im Video-BIOS als auch anderswo sein kann), ist der VBE egal. Somit ist die VBE schlicht und ergreifend eine BIOS-Erweiterung, nicht mehr und nicht weniger. Übrigens, Zitat aus der offiziellen VBE-Spezifikation der VESA Association (Einleitung, Kapitel 1.0): „[…] supplement the System and INT 10h ROM BIOS functions to provide the VBE services.“ (Wobei dieses Dokument knapp 30 Jahre alt ist; damals waren typische PCs anders aufgebaut als heute.)
Da nicht abzusehen ist, dass diese Diskussion zu einer Verbesserung des Artikels führt, schlage ich vor, es im Sinne von WP:DISK dabei zu belassen. --Winof (Diskussion) 15:28, 31. Mai 2023 (CEST)[Beantworten]