Windows Kernelmode und Usermode-Treiber erklärt

Anfang des Monats hatte ich im Artikel Windows 10, Version 1607: Treiber-Signierung geändert darauf hingewiesen, dass sich bei der Akzeptanz von Kernelmode-Treibern etwas ändert. Da es nachgefragt wurde, mal ein paar erklärende Worte.


Anzeige

Kernel- und Usermode im Überblick

Für nicht so technik-affine Blog-Leser ein kurzer Exkurs, was man und Kernel- und Usermode versteht. In Anlehnung an diesen Artikel, der wesentlich tiefer geht, hier ein paar Erklärungen. Der in einem Betriebssystem ausgeführte Programmcode läuft in modernen Betriebssystemen in zwei Modi.

  • Kernel Mode: In diesem Modus wird der Betriebssystemkern ausgeführt. Der Code in diesem Modus hat vollständigen Zugriff auf die unterlagerte Hardware und den Arbeitsspeicher. Hier sollte nur vertrauenswürdiger Code ausgeführt werden.
  • User Mode: Dieser Modus ist Anwendungsprogrammen und Hilfstools des Betriebssystems vorbehalten. Er läuft mit reduzierten Berechtigungen und kann weder auf die Hardware noch auf den Speicher zugreifen. Vielmehr müssen im User Mode über API-Aufrufe Zugriffe auf Speicher oder Hardware sowie die Betriebssystemkomponenten vom Kernel angefordert werden.

Die Verwaltung dieser Modi erfolgt dabei direkt durch die CPU, die einen Wechsel der Anwendungen aus dem User-Modus in den Kernel Modus und dessen Privilegien verhindern soll. Ziel von Hackern ist es, Sicherheitslücken aufzuspüren, die genau diesen Wechsel doch zulassen. Gelingt es, Schadcode über Treiber in das Betriebssystem einzuschleusen, kann dieser quasi alles tun.

Was ändert sich bei Windows 10 Anniversary Update?

Microsoft hat bekannt gegeben, dass ab Windows 10 Anniversary Update Kernelmode-Treiber bei Neuinstallationen digital von Microsoft signiert werden müssen. Früher konnten Treiber auch von anderen Stellen signiert werden. Nicht von Microsoft signierte Kerneltreiber werden beim Betriebssystemstart nur noch geladen, wenn sie unbedingt erforderlich sind. In zukünftigen Windows 10 Builds sollen die Anforderungen nochmals verschärft und die Treiber auch nicht mehr geladen werden. Die Details habe ich im Artikel Windows 10, Version 1607: Treiber-Signierung geändert beschrieben.

Nicht alle Hersteller möchten die Treiber von Microsoft signieren lassen, weil dies Aufwand, Zeit und Geld kostet. Anwender, die auf solche Windows 10-Treiber angewiesen sind, laufen dann möglicherweise in ein Problem. Was aber viele Nutzer als Frage umtreibt: Welches Treiber eigentlich den Kernelmode benötigen? Muss meine Maus, mein Scanner oder mein Drucker treibermäßig von Microsoft signiert sein?

Was gehört zu den Kernelmodetreiber?

Glücklicherweise gibt es Treiber, die im Usermode statt im Kernelmode ausgeführt werden. Alles was kritisch für die Performance und Stabilität des Betriebssystems ist, läuft im Kernelmodus. Grund: Der Transfer vom Usermode in den Kernelmode ist aufwändig. Aber welche Treiber gehören zum Usermode und welche zum Kernelmode.

Microsoft hat dieses Dokument zur Entwicklung von Kernelmode-Treibern veröffentlicht. Dort werden einige Vertreter genannt: Alles, was mit Disk-I/O, Zugriffen auf Hardware, die Speicherverwaltung etc. zu tun hat, erfolgt über Kernelmode-Treiber. Auch der WDM-Audio-, der WDM-Grafiktreiber und die Druckertreiber laufen im Kernelmode.

Alle anderen Treiber laufen dagegen im Usermode unter Kontrolle des User-Mode Driver Framework (UMDF). Auch hier hat Microsoft ein Dokument veröffentlicht. Dort findet sich die Infomation:

File system drivers, display drivers, and print drivers cannot be UMDF drivers.


Anzeige

Alle Treiber, die unter dem UMDF ausgeführt werden, laufen also im Usermode. Diese Treiber sind also von der neuen Treibersignierung nicht betroffen.

Die Verwaltung erfolgt über den Dienst/Prozess wudfsvc (siehe hier). Dieser fällt schon mal auf, dass der eine hohe CPU-Belastung verursacht (siehe hier). Das nur als Schlenker, weil es gelegentlich aufpoppt.


Anzeige
Dieser Beitrag wurde unter Windows 10 abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

4 Antworten zu Windows Kernelmode und Usermode-Treiber erklärt


  1. Anzeige
  2. Nils sagt:

    Das ist ja auch der Grund, warum viele Hardware nahe Anwendungen in neuen Betriebssystemen nicht mehr funktionieren.

    Bei Windows 7 lief viel mehr im Ring 0 (Kernel Mode). Der Kernel wurde aber über Windows 8.x (Mini Kernel) hin zu Windows 10 (Mikro Kernel) immer kleiner. D.h. immer mehr wurde aus dem Kernel Mode in den User Mode (Ring 3) verlagert. Und wenn die Hardware nahen Anwendungen darauf nicht angepasst sind, gibt es eben Probleme.

    Der Grund, warum der Kernel immer kleiner wird, liegt darin, dass er zum einen universeller werden soll. D.h. der Kernel soll auf Desktop, Smartphone und Xbox möglichst der gleiche sein, weshalb man eben auf einen möglichst kleinen gemeinsamen Nenner kommen muss. Zum anderen macht es das Betriebssystem natürlich sicherer, wenn weniger Komponenten direkten Zugriff auf Hardware und Arbeitsspeicher haben,

    • deo sagt:

      Was bleibt bei MS noch übrig, was nicht auf einem Desktop läuft? Mir fällt da auf die schnelle nur die X-Box ein. Dafür dann den ganzen Aufwand zu treiben, ist schon jämmerlich, nachdem die Smartphone Träume so jäh geplatzt sind.

  3. Axel sagt:

    Hallo. Ich bin frisch gebackener Benutzer der Audio-Software “Cubase 8”, die auf einem HP Probook mit Windows 10 ihren Dienst verrichten soll. Dort bremsen jedoch die Treiber von Kernel laut der Software “Latency Mon” das System aus und sorgen für Latenzen, Audioknackser usw. Alle gängigen Maßnahmen (Energiesparmodi deaktivieren usw.) haben nur wenig gebracht. Was kann ich tun?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.