Unix-Kraft auch unter Windows

12. April 2010

Die verschiedenen Shell-Interpretatoren der Unix- und Linux-Systeme sind mit ihren Möglichkeiten den Fähigkeiten der typischen Windows Eingabeaufforderung immer noch weit überlegen. Erst die Powershell kann als ebenbürtiges Pendant für diese Werkzeuge angesehen werden.

Die grafische Oberfläche eines Betriebssystems stellt ohne Zweifel eine Arbeitserleichterung dar – -das ist Tatsache, die  von keinem IT-Professional in Frage gestellt werden dürfte. Schließlich lassen sich Webseiten, Dokumentation oder Zeichnungen erst in einem grafisch orientiertem System vernünftig darstellen. Auch hätte die Open-Source Gemeinschaft wohl kaum so viel Energie in die Entwicklung eines ausgereiften X-Window-Systems investiert, wenn alle Aufgaben ausnahmslos in der Konsole zu erledigen wären. Für viele  Endanwender stellt die Eingabeaufforderung, so wie sie Microsoft Windows anbietet, dennoch ein Buch mit sieben Siegel dar. Das liegt jedoch nicht an der geringeren Begabung der Anwender, sondern wohl eher daran, dass sie die Möglichkeiten einer Konsole weder schätzen noch brauchen können.

Von Maus-Schubsern und der Kommandozeile

Hingegen hat das permanente Arbeiten in der grafischen Oberfläche den Windows-Administrator in den Unix/Linux-Kreisen einen fast schon schlechten Ruf eingebracht, sie wurden gar als "Maus-Schubser" tituliert. In Lauf der Jahre haben aber auch die Microsoft-Entwickler erkannt, dass eine Automatisierung wiederkehrende Aufgaben in der GUI nicht besonder effizient zu realisieren ist. So wurden dann die Fähigkeiten der Konsole mit jeder  aktuellen Windows-Variante stark erweitert, und die Powershell bietet nun in etwa dass, was von einer Unix-Shell zu erwarten ist. Zudem geht sie dank des objektorientierten Ansatzes teilweise über die Möglichkeiten der Standard-Shells in hinaus.

Welche Möglichkeiten stehen aber offen, wenn eine möglichst identische und vom Betriebssystem unabhängige Umgebung für administrative Aufgaben oder automatisierbare Prozesse benötigt wird? Hier können Speziallösungen zum Einsatz kommen, zu denen auch die Toolkit-Produkte der im kanadischen Ontario ansässigen Firma MKS Inc. gehören. Auch die Unix Korn-Shell, die Microsoft mit den eigenen Windows Services for Unix ausliefert, stammt ursprünglich aus dem Haus MKS.

Das Toolkit selbst wird in verschiedenen Versionen angeboten, die eine einfache und schnelle Migration von Skripts, Quellcode, Build- und Arbeitsumgebungen von Unix nach Windows ermöglichen. Die Zielgruppe des MKS Toolkit sind gleichermaßen Administratoren, die weitreichende Automatisierungsaufgaben umsetzen wollen, und Programmierer, die entsprechende Linux-/Unix-Projekte unter Windows realisieren wolllen.

Auch der „whois“-Befehl der Unix-Systeme steht zur Verfügung.

Administration und Entwicklung mit Unix-Hilfsmitteln

Das Paket mit der Bezeichnung „MKS Toolkit for Developers“ stellt die mit POSIX2 definierten Tools zur Verfügung. Dazu gehören beispielsweise die Korn-, C- und Bash-Shells, die Programme find, awk, grep, perl sowie weitere hunderte Dienstprogramme und Tools. Für Entwickler stellt das Produkt Dienstprogramme wie beispielsweise make, ld und ein cc-Skript bereit, das für die Unterstützung zahlreicher C- und C++ Compiler für Windows, beispielsweise mit Microsofts Visual Studio, konfiguriert werden kann.

Die Version „MKS Toolkit for Enterprise Developers“ ist eine Erweiterung für die Migration von Unix-Anwendungen nach Windows. Dazu wird eine komplette Sammlung von Unix-API-Bibliotheken bereitgestellt, die auf dem Win32-Subsystem die Migration von Unix-/Linux-basierenden Anwendungen  ermöglichen. Weiter unterstützt die Enterprise-Variante X11, OpenGL, Motif, C, C++, Fortran, Curses und Shell-Skriptanwendungen.

Auf diese Weise bietet die MKS Toolkit-Technologie ein Framework für die Koexistenz und nahtlose Interaktion von Linux- und Windows-Anwendungen auf der Windows-Plattform. So erfordert ein Migrationsprozess nur wenige oder keine Änderungen am Unix-Quellcode und ermöglicht das Vorhalten eines einzigen Quellcode als Basis für Bereitstellung von Anwendungen unter Windows und Unix gleichermaßen. Eine Kompatibilität für x64-Windows stellt MKS schon seit geraumer Zeit zur Verfügung – allerdings nur in einer speziellen Variante der Software.

Für Administratoren bietet sich das MKS Toolkit für verschiedene Aufgabenstellungen an. Neben einigen Programmen, die mit einer grafischen Oberfläche ausgestattet sind, handelt es sich bei der Mehrzahl der Programme um reine Shell-Software ohne grafische Oberfläche. Ein Teil der Befehle lässt sich direkt aus der Microsoft Eingabeaufforderung CMD.EXE heraus nutzen, während andere innerhalb der Shell-Interpreter betrieben werden müssen. Der Anbieter liefert dabei verschiedene Shell-Versionen mit, zu denen die Bash-, die Korn- und die C-Shell gehören. Es haben sich zwischen den verschiedenen Shell-Versionen diverse Unterschiede herausgebildet, so dass wir im Test  gemäß der Empfehlung im Handbuch des Herstellers die Korn-Shell verwendet haben.

Von Korn bis Bash: verschiedene Interpreter und verschiedene Shells

Diese Korn-Shell besitzt allerdings gegenüber der Eingabeaufforderung aktueller Windows-Versionen und der Bash-Shell den entscheidenden Nachteil, dass der Pfad nicht unter Einsatz der Tabulatortaste dem Kontext entsprechend aufgefüllt werden kann: Wer einmal mit dieser Arbeitserleichterung gearbeitet hat, der möchte diese Möglichkeit wahrlich nicht mehr missen.

Die mit der Version 8.6 eingeführte Bash, die Bourne Again Shell, hat hingegen den entscheidenden Vorteil, dass mit ihr auf Unix/Linux und Windows die gleichen Shell-Skripte ausgeführt werden können. Dabei müssen die Skripte in der Regel nicht angepasst werden. Neben den üblichen Unix-Befehlen wie beispielsweise mv  für das Kopieren oder  rm  für das Löschen finden sich einige Befehle, die unter Windows in der Konsole so nicht existieren.

So ist zum Beispiel ein Umbenennen von Dateien, die das System aktuell als File-Handle geöffnet hat, unter Windows in vielen Konstellationen überhaupt nicht möglich. Mit der Korn-Shell aus dem MKS Toolkit kann der Administrator mit dem Befehl pending  Umbenennungs- oder Kopieraktionen für den nächsten Neustart oder die nächste Benutzeranmeldung einplanen.

Ein grafischer Scheduler aus dem Toolkit stellt für automatisierte Aufgaben oder Programmstarts in vielen Szenarien ein brauchbares Arbeitsmittel dar. Das Toolkit ist aber weitaus mehr als nur eine Zusammenstellung von Befehlen, die unter Unix aber nicht unter Windows existieren: So kann der Systemprofi hier die Kombination aus den Fähigkeiten beider Betriebssysteme nutzen. Mit Hilfe des Programms shortcut  lassen sich beispielsweise unter anderem auch Windows-Desktop-Elemente erzeugen.

Im Lieferumfang der Software findet sich ein Beispiel-Skript, mit dessen Hilfe über die Korn-Shell die Befehle  mkdir, rmdir  und der Zugriff auf die Windows-Registry für verschiedene Gruppen oder Benutzer als Verknüpfung auf dem Desktop angelegt werden kann. Im Bereich SNMP „Simple Network Management Protocol“ bietet das Programmpaket weitere Möglichkeiten: Ein Bereich, in dem Microsoft Windows in der Standardauslieferung eher schwach ausgestattet ist. Insgesamt 18 Befehle wie SNMPGET, SNMPWALK oder SNMPSTATUS stehen als EXE-Befehl zur Verfügung und lassen sich so in eigene Batch-Jobs einbauen.

Der Administrator kann diese Befehle leicht dazu einsetzen, sich am Morgen einen Report über die verbleibende Kapazität der NAS-Systemen übermitteln zu lassen, die nicht unter MS-Windows betrieben werden. Wird ein Programm mit dem Schalter /? gestartet, so erscheint eine Auflistung der Einstellungen, die das Programm bietet. Wird die Online-Hilfe mit dem Befehl man zum Programmnamen befragt, so finden sich noch viele weitere Hinweise auf die Benutzung.

Für „gestandene“ Unix-Administratoren unverzichtbar: Der Editor „vi“

Der VI — der König der Editoren?

Anwender und Administratoren, die ihre Arbeit mit Word unter Windows und ähnlichen Programmen begonnen haben, wird die Liebe einiger Administratoren zum  Editor vi aus der Unix-Welt wohl immer ein unerklärliches Rätsel bleiben. Durch dieses Softwarepaket wird nun auch dieser Klassiker unter den Editoren auf Windows-Systemen nutzbar. Ein großer Vorteil dabei: Die Programmierer haben diese Version des vi für den Einsatz in der Windows-Welt optimiert.

So lässt sich zum Beispiel die Zwischenablage Import von Daten nutzen. Die Größe des Puffers für den Zwischenablagen-Transfer wird in treuer Linux-Manier über einen Eintrag in einer Profildatei im ASCII-Format abgespeichert. Soll richtiges „GUI-Feeling“ aufkommen, so empfiehlt sich der Einsatz der grafisch orientierten vi-Version, die über das Start-Menü aufgerufen werden kann. Ob das „Beste aus beiden Welten“ so dann aber noch standesgemäß ist, bleibt dem Anwender überlassen.

Viele Administratoren haben in ihrem Netzwerk eine Mischung aus Linux-, Unix- und Windows-Maschinen zu betreuen. Sollen die Anwender Zugriff auf beide Maschinentypen haben, so sind schon bei Änderung des Passworts viele manueller Eingriffe notwendig. Im MKS Toolkit findet sich ein Programm, das den verschlüsselten Austausch der Passwörter von den Windows-Rechnern in Richtung Unix/Linux-Maschinen ermöglicht. Bevor diese Funktionalität verwendet werden kann, muss zunächst die „Local Security Authority“ (LSA) in Form einer DLL in das Windows-System eingebunden werden. Dies geschieht am einfachsten durch den Aufruf des Programms über das Startmenü. Nach einem zwingend erforderlichen Neustart lässt sich dann die „Password Synchronization“ nutzen.

Das Datensicherungsprogramm Visual Pax ermöglicht das Erstellen und Komprimieren von Dateien unter Unix, die dann auf Windows-Systemen gelesen und bearbeitet werden können. Diese Kompatibilität funktioniert auch in der umgekehrter Richtung. Visual Differencing ist eine Windows-Applikation, mit der zwei Textdateien auf Unterschiede verglichen und zusammengefasst werden können. Soll mehr als ein Benutzer gleichzeitig auf einem Server eingeloggt mit dem Toolkit arbeiten können, so ist die Anschaffung der sogenannten „Unlimited Connectivity Suite“ erforderlich.

Neben einer kurzen gedruckten Übersicht in englischer Sprache findet sich die Dokumentation zum Toolkit ausschließlich in digitaler Form. Die Online-Dokumentation lässt sich entweder ganz in Unix-Manier über den Befehl man oder über das Startmenü darstellen. Inhaltlich konnten wir zwischen den beiden Varianten keinen Unterschied finden. Auf der Homepage des Herstellers finden sich einige White-Paper, die verschiedene Migrationsvorhaben in unterschiedlichen Unternehmen beschreiben.

Alles geht doch nicht: Die Grenzen der Kompatibilität

Einige Unterschiede zwischen den Unix-Programmen des Toolkits und den Unix-/Linux-Systemen finden sich auch ohne den Blick in die Tiefen des Programmcodes: So lassen sich beispielsweise Module nicht über die üblichen Befehle an den Systemkern anhängen. Das ist nicht weiter verwunderlich, es existiert ja kein Unix-basierender Systemkern, sondern das Windows-Basissystem wurde nur um eine Vielzahl von Befehlen erweitert. Da auch Geräte unter Windows komplett anders angesprochen werden, sind Eingaben möglich, die auf einem echten Unix-Rechner zu Fehlern führen würden. So erzeugt die Eingabe  von ls a:  beispielsweise die Ausgabe des Directory einer Diskette im Laufwerk A, während der direkte Verweis auf das Gerät „Floppy“ nicht umgesetzt werden kann.

Zu Zeiten von Windows NT 4.0 war das MKS Toolkit eine der ganz wenigen Möglichkeiten, professionell an der Komnmandozeile zu arbeiten. Microsoft hat in der Zwischenzeit aber die Möglichkeiten der Eingabeaufforderung stark erweitert. Beispielsweise ist heute mit den Befehlen TASKLIST und TASKKILL schon unter Windows XP das möglich, was einst dem ausgewachsenen Unix-Systemen vorbehalten blieb.

Programme wie GREP, WHOAMI, DEPENDS oder DIFFB werden möglicherweise irgendwann auch zum Befehlsumfang der regulären CMD.EXE gehören oder werden in der Powershell abgebildet. Bis dahin, bleiben aber die rund 300 Befehle, die das Toolkit allein für Administratoren zur Verfügung stellt, ein starkes Stück Software. Als Alternative sei auf das Cygwin-Projekt aus der Freeware-Szene hingewiesen, bei dem eine Linux-konforme API bereitgestellt wird.

Thomas Bär/fms

Lesen Sie auch