Zwei Registry-Einträge entscheiden

NT Workstation und Server unterscheiden sich kaum

20.09.1996

Microsoft hatte bisher stets behauptet, daß sich die beiden NT-Versionen technisch grundlegend voneinander unterscheiden, um ihren vorgesehenen Aufgaben optimal gerecht werden zu können. Damit begründet die Gates-Company die Preisdifferenz von rund 800 Dollar (NT Workstation: rund 260 Dollar, NT Server: knapp 1100 Dollar mit zehn Clients) und die Beschränkung der Workstation per Lizenzvertrag auf zehn TCP/IP-Verbindungen.

Andrew Schulman, Senior Editor von O´Reilly Associates, behauptet indes, bei NT 4.0 handele es sich in Wahrheit um ein und dasselbe Betriebssystem, das in zwei unterschiedlichen Modi laufen könne. Nur zwei Einträge in der Registrierdatenbank bestimmen nach seiner Analyse durch Optimierungen in der Boot-Phase und während der Laufzeit das Systemverhalten.

Eine offizielle Stellungnahme von Microsoft zu diesem Sachverhalt gibt es nicht. Pressereferent Thomas Baumgärtner räumt allerdings ein, daß Schulman prinzipiell recht habe: "Wie wir die unterschiedlichen Systemkonfigurationen implementieren, basiert auf dem jeweiligen Engineering-Prozeß. Wenn heute in der Registry irgendwelche Eintragungen zu machen sind, damit sich die Workstation so ähnlich verhält wie ein Server - weiter sind wir bei der Überprüfung der Behauptungen auch noch nicht -, dann muß das beim nächsten Mal nicht wieder so sein." Vor allem hätten die Anwender keine Gewißheit, daß das System tatsächlich fehlerfrei funkioniere. Soweit sei Schulman nicht gegangen. Ohnehin kann Baumgärtner sich nicht ernsthaft vorstellen, daß jemand ein wirtschaftliches Interesse daran haben könnte, eine Workstation per Hack zum Server aufzubohren.

Es gebe beim Server noch eine ganze Reihe technischer Optimierungen für den Betrieb als Netzwerk-Betriebssystem und als Applikations-Server. Schulman betont aber, diese beruhten allein auf den zwei Registry-Einträgen. Jonathan Roberts, Marketing- Manager von Microsoft, hatte gegenüber der "PC Week Online" geäußert, die zwei Einträge der Registry bewirkten 48 Veränderungen im Kernel und in der Folge rund 700 Software- Einstellungen außerhalb des Kernels.

Laut Schulman sind beide Kernel komplett identisch. Dies bestätigt Baumgärtner: "Es wird seit September 1993 von uns gegenüber der Öffentlichkeit kommuniziert, daß die Kernel-Dateien von Workstation und Server vollkommen identisch sind." Gemeinsam mit Co-Autor Mark Russinovich fand Schulman heraus, daß auch alle weiteren Binärdateien (EXE-Dateien, DLLs, Gerätetreiber), die mit NT Workstation ausgeliefert werden, in identischer Form beim Server vorhanden sind. NT Server enthält aber insgesamt etwa 100 zusätzliche Dateien. Die dadurch bereitgestellten Funktionen (unter anderem DHCP, WINS) vergleicht Schulman mit einem "NT Plus!"-Paket, für das wohl kaum ein Kunde 800 Dollar zahlen würde. Ohnehin ließen sich die meisten Funktionen auch über Produkte von Drittanbietern ergänzen. Auf eine wichtige Ausnahme weist der Autor jedoch hin: Die Definition eines NT-Servers als Domänen- Controller erfolgt bereits bei der Installation. Es sei bisher kein Weg bekannt, einen Rechner auch in diesem Bereich zu manipulieren.

Technisch gesehen fällt die Unterscheidung der beiden Versionen durch einen einzigen Funktionsaufruf von NTOSKRNL namens "MmIsThisAnNtAsSystem()", der sowohl während des Boot-Vorgangs als auch zur Laufzeit für verschiedene Unterscheidungen herangezogen wird.

Die Registry von 4.0 wird überwacht

In der Version 3.51 handelt es sich noch um einen einzigen Eintrag. In der Version 4.0 sind es deren zwei, die durch einigen Code vor Eingriffen seitens der Benutzer geschützt werden sollen. Abhängig von den Werten in der Registry, werden NT-Prozesse während des Boot-Vorgangs für den Desktop- oder Server-Betrieb optimiert. Schulman vergleicht dies mit den "Files"- und "Buffers"-Einträgen in der Config.sys-Datei von DOS. Diese hätten Microsoft allerdings niemals dazu berechtigt, verschiedene Versionen des OS-Klassikers zum unterschiedlichen Preis anzubieten.

Der Artikel von Andrew Schulman kann unter http://software.ora.com/news/ms-internet-andrews.html nachgelesen werden. Der Autor weist deutlich darauf hin, daß der Text keinesfalls zum Ziel habe, User zur Umgehung von Microsofts Lizenzbestimmungen anzuhalten. Schulman möchte vielmehr Microsoft zur Änderung seiner Lizenzpolitik und Marketing-Strategie bewegen.

Das Fazit der O´Reilly-Autoren: Windows NT ist ein Stück Software, künstlich aufgeteilt in zwei Produkte mit stark differierendem Preis. Das Produkt hat zwei Optionen: Server und Workstation. Die Server-Option kommt mit einigen Add-ons und einer Lizenz für mehr Benutzer. Das Fazit von Microsoft-Pressereferent Baumgärtner: Aus Gründen der Kundenfreundlichkeit und einfacheren Entwicklung wurde bei NT ein Design-Ansatz gewählt, bei dem beide OS-Varianten auf einem Kernel beruhen. Allerdings wird der NT Server mit stark erweiterterten Funktionalitäten geliefert. Der Hack von Schulman funktioniert im Prinzip, bietet aber keine Sicherheit und spielt im professionellen Bereich keine Rolle.

Der Trick:

Der entscheidende Eintrag bei NT 3.51 verbirgt sich in der Registry unter "HKEY-LOCAL-MACHINE

System

CurrentControlSet

Control

Product Options

ProductType". Der String-Wert dieser Variablen heißt entweder "WinNT", "ServerNT" oder "LanmanNT". Der Kernel prüft nur auf den WinNT-String - andere Applikationen suchen auch nach den beiden anderen Einträgen.

Microsoft beschreibt den Eintrag sogar selbst im Internet und warnt: "Ändern Sie unter KEINEN Umständen den Eintrag "Product Type". Änderungen können zu einem Fehlverhalten des Windows NT Betriebssytems führen." Gemäß Tests von Russinovich läßt sich die Variable aber von jedem Endbenutzer ändern. Nach einem Reboot funktioniert das System als Server und antwortet auf "Net Accounts" mit "Computer Role: Server". Back-Office-Programme lassen sich problemlos installieren.

In der Version 4.0 ist der Eintrag "HKEY-LOCAL-MACHINE

System

Setup

SystemPrefix" hinzugekommen. Dabei handelt es sich um einen Binärwert, der als zwei DWORDs interpretiert wird. Die relevante Information liegt an Position "0x04000000" des höheren DWORDs. Für "ServerNT" oder "LanmanNT" muß der Wert gesetzt sein, für "WinNT" nicht.

Zwei System-Threads überwachen unter 4.0 beide Einträge. Diese "Wächter" lassen sich allerdings überlisten beziehungsweise ausschalten. Russinovich hat dazu das Programm "NTTune" geschrieben, dieses allerdings nur an ausgewählte Pressevertreter weitergegeben. "PC Week Online" hat das Patchprogramm getestet und seine Funktionalität bestätigt.