PKS-Shell: GEMDOS ausgetrickst

Für kommendes Jahr ist eine Portierung des Betriebssystems Unix auf Rechner der Atari-TT-Reihe vorgesehen. Wir konnten vorab mit einer Shell von »Pahlen & Krauß« gründlich auf Tuchfühlung zum Befehlssatz des universellen Betriebssystems gehen. Lesen Sie mal, was da auf uns zukommt...

Eine Unix-Shell verrichtet zwei Aufgaben: Sie ist Kommandoumgebung und Programmiersprache zugleich. Vor allem durch ihre Befehlssprache ist sie leistungsfähiger als vergleichbare Produkte — mitunter aber auch in der Handhabung komplizierter und schwerer zu erlernen.

Das Berliner Software-Unternehmen Pahlen & Krauß hat deshalb besonderen Wert auf eine didaktische Benutzerführung gelegt: Das zeigt eindrucksvoll das durchdachte Handbuch der »PKS-Shell«. Neben gründlicher Einführung in das Unix-Konzept beschreibt es detailliert die Programmiersprache, Eigenheiten der Implementation und die Unix-Tools. Jedes Kommando ist zusätzlich auf einer Online-Manual-Seite ausführlich erklärt. Die Autoren empfehlen jedoch zusätzliche Fachliteratur zur Unix-Shell-Programmierung.

Unix-Wildcard-Modus

Das gesamte Programmpaket läßt sich ohne Schwierigkeiten installieren. Den Anwendern werden fast alle Arbeitsschritte abgenommen. Das Prinzip des PKS-Produkts ähnelt dem der »Bourne-Shell«. Der Zeileneditor ist mit einer Reihe nützlicher Features ausgestattet: Innerhalb der Eingabezeile kann der Cursor vor- und zurückbewegt werden. Die Pfeiltasten im Cursor-Block erlauben das Blättern in der »History«, einer Liste bereits eingegebener Kommandos. Innerhalb einer Kommandozeile lassen sich über Wildcards Dateinamen eingeben. Dazu wird der Unix-Wildcard-Modus benutzt, der bedeutend leistungsfähiger als der GEM-DOS-Modus ist.

Einige zentrale Funktionen lassen sich durch »Pipes« steuern. Damit wird die Ausgabe eines Programms automatisch als Eingabe in ein anderes Programm gelenkt. So zählt man mit dem Kommando »ls wc« z.B. Zeichen, Wörter und Zeilen im aktuellen Verzeichnis.

Im Betriebssystem Unix laufen im Gegensatz zu GEM-DOS beide Programme parallel. Die PKS-Shell behilft sich damit, beide Kommandos nacheinander auszuführen und die Daten über eine temporäre Datei weiterzuleiten. Ein weiteres reizvolles Feature ist die Kommandosubstitution durch »Backquotes«. Dabei ersetzt die Shell ein in Backquotes 0 gesetztes Kommando.

Mit den Befehlen »for«, »case«, »if«, »test«, »while« und »until« haben Anwender auch Zugriff auf alle Kontrollstrukturen der Bourne-Shell. Der Selbstprogrammierung oder Portierung von Shell Scripts steht somit nichts mehr im Wege. Auch »Aliase« und Shell-Funktionen mit Parametern fehlen nicht. Im Handbuch finden Anwender Beispiele, wie sich ein umfangreiches Script, ein Menü für das Kommando »cpio«, das zum Platten-Backup benutzt wird, herstellen läßt.

Erweiterbare Merkmaltabelle

Die Unix-Arbeitsumgebung bezieht ihre Leistungsfähigkeit natürlich nur zum Teil aus der eigentlichen Shell — zumindest ebenso wichtig sind Unix-Dienstprogramme. Anwender, die mit ihnen bereits Erfahrungen sammeln konnten, sind auch befähigt, eine Unix-Workstation zu bedienen.

Ausgewählte Beispiele sollen den Funktionsreichtum der Shell illustrieren: Der Befehl »cpio« ist ein leistungsfähiges aber auch kompliziertes

Externe Kommandos der PKS-Shell

Hilfsmittel, Dateisysteme zu sichern und zu aktivieren. Mit dem Befehl »cut« lassen sich aus Textdateien Spalten herausschneiden, wobei die Spaltentrennzeichen variabel sind. Das Kommando »diff« stellt zeilenorientiert Unterschiede zwischen Textdateien fest. Anhand einer erweiterbaren Merkmaltabelle ermittelt »file« sogar Dateitypen. Mit dem »find«-Befehl kann rekursiv nach bestimmten Dateien gesucht werden. Zur Fahndung eignen sich dabei nicht nur Namensteile, sondern auch Größen oder Entstehungsdaten einer Datei.

Textdateien lassen sich mit dem »grep«-Programm durchsuchen, und das Kommando »nm« zeigt Symbole in Programmen und Objektdateien an. Der Befehl »strings« veranlaßt die Shell, in ausführbaren Programmen nach Zeichenketten zu suchen. Mit »head« und »tail« wird der Anfang bzw. das Ende von Dateien ausgegeben.

Wie beim Unix-Vorbild werden fast alle Kommandos durch kleine, externe Programme ausgeführt. So bleibt die Shell auf ein Rumpfprogramm beschränkt. Allerdings sollte dem Anwender entweder eine Festplatte zur Verfügung stehen oder die wichtigsten Programme auf einer RAM-Disk installiert sein.

Unnötige Einschränkung

Das komplexe Entwicklungssystem bietet den Vorteil, die zu einem Projekt gehörenden Dateien zusammenzufassen und Abhängigkeiten festzulegen. Das Plus dieses Verfahrens wird allerdings durch geringere Flexibilität gemindert.

Einige Hersteller (z.B. »Mark Williams« oder »Laser«) orientieren sich an Unix und bieten ein echtes »make«-Dienstprogramm an. Dieses Werkzeug funktioniert praktisch mit jeder Anwendung, die Kommandozeilen verarbeitet — u.a. lassen sich damit »Tex-Läufe« oder Backups automatisieren. Im PKS-Paket wird es bereits bei der Installation passend für Entwicklungssysteme auf dem ST konfiguriert.

Auch »more« ist ein solches Dienstprogramm und blättert für Sie in Textdateien und Bildschirmausgaben anderer Programme. PKS hat seine »more«-Version zusätzlich mit einigen Besonderheiten ausgestattet: Neben Wordplus-Dateien lädt es auch einige Grafikformate auf den Bildschirm. Voraussetzung dafür ist allerdings eine Bildschirmauflösung von 640 x 400 Punkten. Für Programmierer, die sich an Grafikerweiterungen wie Overscan gewöhnt haben, eine unnötige Einschränkung.

Das TOS schränkt die Funktionsweise von Shells ohnehin ein. Die PKS-Pro-grammierer haben sich zur Funktionserweiterung einen Trick einfallen lassen, mit dem sich das Atari-Betriebssystem überlisten läßt:

Da GEM-DOS maximal 124 Zeichen lange Kommandozeilen erlaubt, bedient sich die PKS-Shell der »xArgs«-Methode. Seit über einem Jahr gibt es allerdings ein von Atari unterstütztes Standard-verfahren (die »ARGV«-Methode), das von anderen Shells (»Master« und »Gemini«) auch bereits verwendet wird.

Überwiegend suchen GEM-Programme Dateien im jeweils aktuellen Verzeichnis.

Die PKS-Shell unterstützt das Kommando »gemexec« zum Umstellen des Directories. Leider ist GEMDOS kein fehlertolerantes Betriebssystem. Deshalb sollten Shells Eingabefehler selbständig erkennen und abfangen.

Dabei hapert’s mitunter beim PKS-Produkt. Ein Programmfehler mit fatalen Folgen: Mit dem Befehl »rm *.TST« werden alle Dateien in einem Verzeichnis gelöscht — obwohl nur die mit der Namenserweiterung TST gemeint waren. Weitere Macke: Beim Kommando »touch z:\test« bleibt das System unweigerlich hängen, wenn Laufwerk »Z:« nicht existiert.

Die PKS-Shell ist trotz ihrer kleinen Fehler ein taugliches Abbild einer echten Unix-Shell und läuft sogar auf dem TT. Für Programmierer und Unix-Erfahrene also eine durchaus interessante und sinnvolle Alternative zu anderen Shells. (em)

PKS-Shell

Art: Unix-Shell

Preis: 150 Mark

Benötigte Hardware: Festplatte

Stärken: □ durchdachtes, gut gegliedertes und informatives Handbuch □ leichte Installation □ Online-Manual bei allen Befehlen verfügbar □ umfangreiche Sammlung von Standarddienstprogrammen

Schwächen: »ARGV«-Methode wird nicht unterstützt □ »more« läuft nur mit einer Bildschirmauflösung von 640 x 400 Punkten □ zum Start von GEM-Programmen ist ein spezielles Kommando nötig

Fazit: Die PKS-Shell ist eine lohnende Anschaffung für Programmierer, Unix-Experten und solche, die es werden wollen. Einsteigern ist sie allerdings nur mit gewissen Vorbehalten zu empfehlen.


Julian F. Reschke
Aus: ST-Magazin 12 / 1990, Seite 60

Links

Copyright-Bestimmungen: siehe Über diese Seite