Direct Rendering Manager
aus Wikipedia, der freien Enzyklopädie
Der Direct Rendering Manager (abgekürzt DRM) ist ein Kernel Modul (Treiber), der unter einem X-Server wie X.org 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).
[Bearbeiten] Was macht der DRM
Der DRM unterstützt die DRI in drei Hinsichten:
- 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 und das könnte in ungewollten Ergebnissen enden.
Der DRM stellt für einen "lock-per-hardware" zur Verfügung. - Der DRM bietet einen Zugriffsmechanismus auf den Speicher, der ähnlich zu /dev/mem ist und trägt so zur Sicherheit bei. Denn der X-Server läuft normalerweise unter root, während dies für die Clientinstanzen nicht zutrifft. Außerdem sind direkte Zugriffe auch gar nicht erwünscht (s. 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 von root geä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.
-
- Als letzten Punkt stellt der DRM eine generische Zugriffsmöglichkeit für DMA zur Verfügung.