Kernel-Änderungen

01.03.2007 von Martin Kuppinger
Wie bei jedem größeren Release-Wechsel bringen auch Longhorn und Vista einiges an Kernel-Änderungen mit. In diesem Fall sind es sogar besonders viele, weil die beiden Betriebssysteme in einem gemeinsamen Projekt entwickelt wurden und es dadurch auch einige Angleichungen zwischen den Systemen gab.

Die Kernel-Anpassungen bei Windows Vista und Longhorn sind mit die wichtigsten Änderungen, weil sie für die Performance und Stabilität des Systems entscheidende Bedeutung haben. Der Artikel gibt einen grundlegenden Überblick über diese Änderungen.

Speichermanagement

Im Bereich des Speichermanagements ist die wichtigste Änderung zweifelsohne die erweiterte Unterstützung für NUMA-Architekturen (Non-Uniform Memory Access), die bei hoch skalierenden Mehrprozessorsystemen wichtig sind. Außerdem gibt es Optimierungen bei der Adressierung von Systemspeicher. Viele Systemressourcen können nun bei Bedarf angefordert werden, was den Overhead im System reduziert.

Deutlich mehr wurde beim Heap Manager geändert. Er ist für die dynamische Zuordnung von Speicherressourcen zuständig und grundlegend überarbeitet worden. Vor allem die Mechanismen, mit denen eine Fragmentierung von Speicher reduziert wird, wurden verbessert. Die Verwaltung von Speichersegmenten durch optimierte Algorithmen und Datenstrukturen führt außerdem zu einer höheren Skalierbarkeit und besseren Performance.

Wichtig sind auch Mechanismen, mit denen der Speicher vor Angriffen besser geschützt wird. Derzeit sind Angriffe über so genannte Pufferüberläufe ein häufiges Szenario. Mit den neuen Verfahren wird versucht, auch Angriffe frühzeitig zu erkennen, indem beispielsweise Beschädigungen am Heap erkannt werden.

Registry

Die Registry verzeichnet als wichtigste Änderung die Transaktionsunterstützung. Damit können nun mehrere Registry-Operationen in einer Transaktion entweder vollständig ausgeführt oder wieder rückgängig gemacht werden. Die Basis dafür bildet die neue Transaktionsunterstützung auf der Ebene des Kernels.

Bei der WOW64-Schnittstelle hat sich die Art und Weise geändert, wie 32-Bit- und 64-Bit-Anwendungen in der Registry unterschieden werden. Dabei geht es darum, Situationen zu vermeiden, in denen eine 32-Bit- und eine 64-Bit-Variante der gleichen Anwendung auf einem System ausgeführt werden und es dadurch zu Konflikten bei den Einträgen in die Registry kommt.

Dienste

Bei den Diensten ist vor allem die neue Startart verzögert zu erwähnen. Damit wird darauf reagiert, dass in vielen Fällen immer mehr Dienste beim Systemstart geladen werden müssten, was zu einer relativ schlechten Boot-Performance führt. Dienste mit der Startart verzögert werden erst nach dem Systemstart geladen, sodass Benutzer schneller auf das System zugreifen können. Außerdem können Dienste nun zusätzlich über Windows-Schutzmechanismen geschützt werden.

Hardware Error Architecture

Neu ist die Windows Hardware Error Architecture (WHEA). Die Zahlen, die Microsoft über die vergangenen Jahre mit der Online Crash Analysis (OCA) gesammelt hat, zeigen, dass rund 70 % der schwerwiegenden Fehler mit Hardwareproblemen in Zusammenhang stehen.

Mit WHEA steht beim Longhorn-Server – also nicht beim Vista-Client – eine Architektur zur Verfügung, über die Fehler im Betriebssystem und in der Hardware in einheitlicher Weise verarbeitet werden können. Diese Architektur basiert auf PCI Express Advanced Error Reporting (AER) als einem Standardmechanismus.

Der Vorteil von WHEA liegt in einem einheitlichen Mechanismus für die Erkennung und Verarbeitung von Fehlermeldungen auch bei der Hardware, der auch von anderen Hardwarekomponenten und deren Treibern genutzt werden kann.

Sicherheit

Mehrere Änderungen im System betreffen die Sicherheit. Eine der Anpassungen ist die Kernel Patch Protection. Diese Funktion gibt es bereits bei den 64-Bit-Versionen von Windows XP und dem Windows Server 2003. Damit wird sichergestellt, dass der Kernel nur durch Patches von Microsoft modifiziert werden darf. Der Mechanismus verhindert unter anderem bestimmte Änderungen an einigen Kernel-Ressourcen.

Neu sind die geschützten Prozesse, die für das Digital Rights Management (DRM) von Bedeutung sind. Während grundsätzlich übergeordnete Prozesse alle untergeordneten Prozesse steuern können und Benutzer mit ausreichenden Berechtigungen ebenfalls auf alle Prozesse einwirken können, werden bei geschützten Prozessen einige Funktionen nicht unterstützt. Damit lassen sich solche Prozesse nicht mehr von Angreifern manipulieren, die damit auf die von den Prozessen verwalteten Daten zugreifen möchten.

Außerdem muss bei 64-Bit-Systemen die gesamte Software, die im Kernel-Modus geladen werden soll, über eine digitale Signatur verfügen. Bei x86-Systemen ist das nur in Ausnahmefällen erforderlich.

Mehr Performance

Auch zugunsten der Performance von Anwendungen wurde am Kernel einiges verändert. Beispielsweise wurde der DLL Loader überarbeitet, der für das Laden von DLLs (Dynamic Link Libraries) zuständig ist. Er kann nun unter anderem sehr viel schneller als bisher Prozesse erstellen, indem er Abhängigkeiten zwischen DLLs effizienter verarbeitet. Außerdem sind bei Akualisierungen von DLLs nur noch in wenigen Fällen Neustarts erforderlich.

Der Thread-Pool enthält mehrere neue APIs für Entwickler für den einfacheren Umgang mit Threads. Außerdem wurde die Performance deutlich verbessert, indem beispielsweise Threads so weit wie möglich wiederverwendet werden.

Hardwareunterstützung

Zu den Neuerungen bei der Hardwareunterstützung zählt beispielsweise das Dynamic Hardware Paritioning. Damit können mehrere Systeminstanzen auf der gleichen Hardware ausgeführt werden. Die Ressourcen können dynamisch den verschiedenen Betriebssysteminstanzen zugeordnet werden. Bisher wurde nur die dynamische Zuordnung von Hauptspeicher unterstützt. Beim Longhorn-Server können auch Prozessoren dynamisch hinzugefügt werden. Außerdem lassen sich Änderungen beim Speicher und den Prozessoren durchführen.

Beim Powermanagement werden nun neben der vollständigen Unterstützung von ACPI 2.0 auch einige Funktionen der Version 3.0 dieser Spezifikation unterstützt. Neu ist auch die Unterstützung für viele Funktionen der Spezifikation PCI Express 1.1.

Die Umgebung für den Systemstart wurde ebenfalls verändert. Alle für den Systemstart erforderlichen Informationen werden nun in einem speziellen Speicherbereich gehalten, dem BCD (Boot Configuration Datastore).

Weitere Verbesserungen findet man beim Energiemanagement, bei Plug and Play und beim Hardware Abstraction Layer.

In der Summe werden sich auch diese Änderungen, zusammen mit anderen Anpassungen im System, so auswirken, dass die Performance von Windows Vista und Windows Longhorn vor allem auf gut ausgestatteten Systemen besser sein wird als die von Windows XP bzw. dem Windows Server 2003. Das gilt umso mehr, als sowohl Windows Vista als auch Windows Longhorn nun in sehr schlanken Varianten installiert werden können – wie beispielsweise bei der Core Installation von Windows Longhorn, in der sogar auf den grafischen Explorer verzichtet wird.

In einer der folgenden Ausgaben von Expert’s inside Windows NT/2000 werden wir diese Änderungen zusammen mit einigen Kernel-Änderungen beim Windows Server 2003 und bei Windows XP noch näher und mit Hintergrundinformationen zu den Arbeitsweisen der entsprechenden Kernel-Module erläutern.