Modus-Einstellung - Mode setting

Image
Die Regulierung des Zugriffs auf die Hardware ist eine grundlegende Kernel-Aufgabe. Der Direct Rendering Manager und KMS sind Teil des Linux-Kernels. Das KMS nimmt nur die Moduseinstellung vor.

Die Moduseinstellung ist ein Softwarevorgang, der einen Anzeigemodus (Bildschirmauflösung, Farbtiefe und Bildwiederholfrequenz) für den Anzeigecontroller eines Computers mithilfe von VESA-BIOS-Erweiterungen oder UEFI-Grafikerweiterungen (auf moderneren Computern) aktiviert .

Der Anzeigemodus wird vom Kernel eingestellt. Beim User-Space-Mode-Setting (UMS) wird der Anzeigemodus durch einen User-Space- Prozess eingestellt.

Die Einstellung des Kernel-Modus ist flexibler und ermöglicht die Anzeige eines Fehlers im Falle eines schwerwiegenden Systemfehlers im Kernel, selbst wenn ein User-Space-Display-Server verwendet wird.

Die Einstellung des Benutzerbereichsmodus würde Superuser-Berechtigungen für den direkten Hardwarezugriff erfordern, sodass die Einstellung des Kernel-basierten Modus diese Anforderung für den Benutzerbereichs-Grafikserver vermeidet.

Implementierung

Microsoft Windows

Microsoft Windows- Versionen, die NT-basiert sind, verwenden die Kernelmoduseinstellung. Die Kernel-Fehleranzeige, die durch die Kernel-Modus-Einstellung ermöglicht wird, wird offiziell "Bugcheck" genannt, aber besser bekannt als Blue Screen of Death .

Linux

Die Rolle von KMS (Kernel mode-setting), Linux-Beispiel
Der Linux-Grafikstapel 2013
Wayland-Kompositoren erfordern KMS (und auch OpenGL ES und EGL )
Der Ort bestimmter Linux-Kernel-Module
evdev ist die Linux - Kernel - Modul , die Daten aus verschiedenen Eingabegeräten wie Tastatur, Maus, Touch-Pad, usw. Die Daten empfängt , werden den übergebenen Anzeige - Server (zB des X.Org Server oder ein Wayland Compositor nur weiter geleitet werden , um der Wayland-Client bzw. X-Client Einige Anwendungen erfordern eine minimale Latenz

Der Linux-Kernel hat die Voraussetzung für die Kernel-basierte Moduseinstellung durch die Akzeptanz von Intel GEM in der im Dezember 2008 veröffentlichten Version 2.6.28. Diese wird durch den Tungstens Graphics TTM (Translation Table Maps) Speichermanager ersetzt, der die GEM-API unterstützt. TTM wurde für die freien und quelloffenen Treiber für Radeon- und S3-Grafik- Grafikchipsätze entwickelt ( siehe Freie und quelloffene Grafikgerätetreiber ). Unterstützung für Intel GMA- Grafikchipsätze wurde in Version 2.6.29, veröffentlicht am 23. März 2009, akzeptiert. Unterstützung für ATI Radeon- Grafikkarten vor R600 wurde in Version 2.6.31, veröffentlicht am 9. September 2009, akzeptiert. Unterstützung für R600 und R700 befand sich in der Entwicklung innerhalb von DRM und wurde in Version 2.6.32 zusammengeführt. Die Unterstützung für Evergreen (R800) wurde in Version 2.6.34 zusammengeführt. Da Nvidia nicht alle erforderlichen Unterlagen für seinen Grafikchip veröffentlichte, wurde die Entwicklung im Rahmen des Nouveau- Projekts fortgesetzt , das mithilfe von Reverse Engineering einen funktionierenden Open-Source-Treiber für Nvidia-Karten erstellt. Nouveau wurde in der Version 2.6.33 des Kernels akzeptiert, die am 10. Dezember 2009 veröffentlicht wurde. Die Kernel-basierte Moduseinstellung wird vom Nouveau-Treiber nicht nur unterstützt, sondern ist auch erforderlich. Wayland-Kompositoren (zB Weston ) und kmscon hängen von der Kernel-Modus-Einstellung über ioctl ab .

FreeBSD

FreeBSD unterstützt sowohl die Kernel-basierte Moduseinstellung als auch GEM für spätere Generationen von Intel-GPUs (IronLake, SandyBridge und IvyBridge) ab Version 9.1.

NetBSD

NetBSD unterstützt Kernel-basierte Moduseinstellungen und beschleunigte Grafik für Intel- und Radeon-Geräte. Diese Implementierung wurde in Version 7.0 durch die Portierung des Linux 3.15 DRM/KMS-Codes eingeführt.

OpenBSD

OpenBSD bietet Unterstützung für Kernel-basierte Moduseinstellungen für Intel- und Radeon-GPUs. Ab Version 5.4 von OpenBSD ist Unterstützung für Intel-GPUs verfügbar. Mit der Veröffentlichung von Version 5.5 wurde die Implementierung erweitert, um auch Unterstützung für Radeon-Chipsätze hinzuzufügen.

Alternativen

Die folgenden Alternativen wurden während der Linux Plumbers Conference 2013 vorgestellt:

  • Es wurde vorgeschlagen, GEM und KMS aufzuteilen.
  • Atomic Display Framework, von Googles Android-Team.
  • Gemeinsames Display-Framework.

Siehe auch

Verweise

Externe Links