Direct Rendering Manager
Der Direct Rendering Manager (abgekürzt DRM) ist ein Hardware-spezifisches Kernel-Modul (Treiber), der auch ohne einen X-Server wie X.org-Server Zugriff auf den Speicher (DMA, AGP) der Grafikkarte gewährt. Außerdem stellt der DRM sicher, dass die definierten Sicherheitsregeln eingehalten und die Zugriffe auf die Hardware verwaltet werden. DRM ist ein Teil der Direct Rendering Infrastructure (DRI).
Was macht der DRM[Bearbeiten]
<templatestyles src="Mehrere Bilder/styles.css" />
Der DRM unterstützt die DRI in dreierlei Hinsicht:<ref>A deeper look into GPUs and the Linux Graphics Stack, S. 25.</ref>
- Da immer mehrere Instanzen der DRI um den direkten Zugriff auf die (Grafik-)Hardware „streiten“, ist es wichtig, diese Zugriffe zu verwalten und zu synchronisieren. Sonst könnte es zu Situationen kommen, in denen zwei Direct-Rendering-Instanzen versuchen, gleichzeitig auf die Hardwareressourcen zuzugreifen. Das könnte zu ungewollten Ergebnissen führen.
Der DRM stellt dafür „lock-per-hardware“ zur Verfügung. - Der DRM bietet einen Zugriffsmechanismus auf den Speicher, der ähnlich zu
/dev/memist und so zur Sicherheit beiträgt. Denn der X-Server läuft normalerweise unterroot, während dies für die Clientinstanzen nicht zutrifft. Außerdem sind direkte Zugriffe auch gar nicht erwünscht (siehe auch erster Punkt). Allerdings sind diese Zugriffe in drei Punkten eingeschränkt:- Es wird einer Instanz nur Zugriff auf die Mechanismen gewährt, wenn die Instanz mit dem X-Server verbunden ist (
xauth). - Eine Direct-Rendering-Instanz erhält nur dann Zugriff auf den Speicher, wenn sie Zugriff auf
/dev/drm?hat. Die Zugriffsrechte können nur vonrootgeändert werden (dies geschieht im Allgemeinen über die X-Server Konfigurationsdatei). - Außerdem kann eine solche DRI-Instanz nur dann auf den Speicher zugreifen, wenn der Server dies erlaubt. Der Server kann auch nur Lesezugriffe erlauben.
- Es wird einer Instanz nur Zugriff auf die Mechanismen gewährt, wenn die Instanz mit dem X-Server verbunden ist (
- Der DRM verwaltet per Graphics Execution Manager (GEM) oder TTM den Grafikspeicher
- Außerdem stellt der DRM eine generische Zugriffsmöglichkeit für DMA zur Verfügung.
libdrm[Bearbeiten]
| libdrm
| |
|---|---|
| [[Datei:Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.|150px]] | |
| Basisdaten
| |
| Maintainer | Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden. |
| Entwickler | Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden. |
| Erscheinungsjahr | Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden. |
| Aktuelle Version | 2.4.104<ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Ehemals im Vorlage:Referrer (nicht mehr online verfügbar) (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref> (Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden.) |
| Aktuelle Vorabversion | Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden. (Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.) |
| Betriebssystem | Linux |
| Programmiersprache | Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden. |
| Lizenz | GNU General Public License, MIT-Lizenz |
| Skriptfehler: Ein solches Modul „WLink“ ist nicht vorhanden. | |
Entwicklung[Bearbeiten]
Vorlage:Veraltet So wie die Direct Rendering Infrastructure selber, unterliegen auch ihre Komponenten einer steten Weiterentwicklung.
- Linux-Kernel Version 3.11 vom 2. September 2013 beinhaltete größere Änderungen am DRM.<ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden. ehemals im Vorlage:Referrer (nicht mehr online verfügbar).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref>
- In den Linux-Kernel 3.12
- wurde freedreno aufgenommen<ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Ehemals im Vorlage:Referrer (nicht mehr online verfügbar)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref>
- wurden die Grafikfunktionen des DRM und des KMS (Kernel-mode setting), siehe Mode-Setting, getrennt
- wurde eine experimentelle Implementation von „Render-Nodes“ in den Direct Rendering Manager integriert.<ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Golem.de, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden. ehemals im Vorlage:Referrer (nicht mehr online verfügbar).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref><ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Ehemals im Vorlage:Referrer (nicht mehr online verfügbar)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref><ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Ehemals im Vorlage:Referrer (nicht mehr online verfügbar)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref><ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Ehemals im Vorlage:Referrer (nicht mehr online verfügbar)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref><ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Ehemals im Vorlage:Referrer (nicht mehr online verfügbar)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref>
Durch die neuen Render-Nodes können Anwendungen über mehr als einen Knotenpunkt im Linux-Kernel auf Grafikeinheiten, auch auf mehrere, zugreifen. Vorher durfte lediglich eine Anwendung, etwa der Displayserver, KMS vornehmen, und das nur mit Root-Rechten. Render-Nodes stellen eine API, über die userspace nicht-privilegierte GPU-Befehle ausführen lassen können, etwa für GPGPU.
Siehe auch[Bearbeiten]
- Mesa 3D – Programmierbibliothek, welche nicht nur APIs (OpenGL, OpenVG u. a.) implementiert, sondern auch den Userspace-Teil der vorhandenen freien Grafiktreiber
Weblinks[Bearbeiten]
Einzelnachweise[Bearbeiten]
<references />