Skip to main content
main-content

Über dieses Buch

Eine gute Einführung in ein neues Produkt oder Konzept ist lebenswichtig. Dies gilt ganz besonders für ein so vielseitiges Software-System wie UNIX. UNIX bietet die Stärke und die Fähigkeiten, die Ihren Computer hart für Sie arbeiten lassen. Es kann Ihnen beim Erstellen von Software helfen, und es kann Ihnen helfen, die Einrichtungen Ihres automatischen Büros zum Entwerfen und Bear­ beiten von Dokumenten zu nutzen. Für Ihre Einführung in UNIX wünschen Sie sich ein umfassendes und überschaubares Buch. Genau das soll das vorliegende Buch sein. Dieses Buch wurde für Computerlaien geschrieben, insbesondere für solche in leitenden Positionen, Verwaltungsfachleute und Manager, die ihre Softwarespezialisten und Experten sinnvoller einsetzen möchten. Die Entstehungsgeschichte dieses Springer-Buches ist eine Geschichte für sich. Im Jahre 1980 wollte der Gründer und Präsident einer der erfolgreichen Mikrocomputerfirmen, Kazue Ishii von CEC, etwas beginnen, das brillant, an­ spruchsvoll und innovativ sein und beständig wachsen sollte. Von vielen Vor­ schlägen akzeptierte er schließlich den meinen. Der Vorschlag bestand darin, ei­ ne Familie von Netzwerk-Arbeitsplätzen für Computer-unterstütztes Entwer­ fen/Herstellen und Büro-Automation zu bauen. UNIX wurde als Software­ Werkzeug verwendet. Für ihn war es allerdings ziemlich schwierig, zu verstehen, wofür UNIX gut ist und wie gut es ist...

Inhaltsverzeichnis

Frontmatter

Warum UNIX?

Frontmatter

Die Verbreitung von UNIX

UNIX wurde von Ken Thompson, Dennis Ritchie und Mitarbeitern 1969 in den Bell Telephone Laboratories entwickelt. Die ursprüngliche Version wurde für den Minicomputer PDP-7 von Digital Equipment Corporation (DEC) geschrieben.

Yukari Shirota, Tosiyasu L. Kunii

Was ist UNIX?

Das Konzept eines Betriebssystems (abgekürzt BS; engl.: operating system, abgekürzt OS) ist schwierig zu erklären. Im wesentlichen ist ein Betriebssystem ein Programm, das einen Computer überwacht, und es ist notwendig für den effizienten Gebrauch eines Computers, damit dieser überhaupt von praktischem Nutzen ist. Die eigentliche Computeranlage (die „Hardware“) sowie die individuellen Anwendungsprogramme (die „Anwendungs-Software“) sind für den Betrieb des Computers allein nicht ausreichend. Um eine Anweisung an den Computer übertragen zu können und von ihm ausführen zu lassen, wird zusätzlich ein Programm benötigt, das den Computer überwacht. Ein gutes Beispiel hierfür ist eine Firma oder eine Behörde, in der es nicht genügt, daß nur die Leute da sind, die die eigentliche Arbeit erledigen; zusätzlich werden auch Verwalter benötigt, die den Organisationsablauf regeln.

Yukari Shirota, Tosiyasu L. Kunii

Anwendungen von UNIX

Für ein universelles Betriebssystem wie UNIX gibt es viele Anwendungsmöglichkeiten. Ein Programmierer (eine Person, die Computerprogramme erstellt) kann UNIX als Programm-Entwicklungssystem benutzen. UNIX bietet viele Hilfsmittel für die Programm-Entwicklung. Der Editor zum Beispiel dient dazu, ein Programm über eine Tastatur einzugeben. Dies ist ein wichtiger Faktor in der Benutzung eines Computers. Wenn der Editor nicht richtig benutzt wird, leidet die Effektivität der Arbeit beträchtlich. Weiterhin gibt es in UNIX viele Systeme zur Verarbeitung von Computersprachen (wie COBOL, FORTRAN, Pascal, C usw.). Andere Hilfsmittel, wie Debugger (Programm zur Fehlerbeseitigung) und Compiler-Compiler stehen zur Unterstützung der Programm-Entwicklung ebenfalls zur Verfügung.

Yukari Shirota, Tosiyasu L. Kunii

Eigenschaften von UNIX

Das ursprüngliche UNIX-Konzept war das eines Betriebssystems, das es dem individuellen Benutzer ermöglichen sollte, alles mit dem Computer zu machen, was er wollte. An erster Stelle steht bei UNIX die Effektivität der Programmierung. Verglichen mit vielen vorhergehenden Betriebssystemen, deren Hauptziel die effiziente Nutzung der Hardware war, liegt das Hauptziel von UNIX darin, die Effizienz der Person zu erhöhen, die die Programmierung durchführt. Da UNIX jedoch weiter entwickelt wird, wird auch eine Reihe von Ergänzungen hinzukommen, die es erlauben, auch die Hardware effizienter zu nutzen. Beispielsweise kann die Blockgröße bei der Speicherung von Daten dem Anwendungsprogramm des Benutzers angepaßt werden, so daß der Plattenzugriff optimiert werden kann.

Yukari Shirota, Tosiyasu L. Kunii

Die Geschichte von UNIX

Die Bell Laboratories, in denen UNIX geboren wurde, sind ein sehr großes, weltbekanntes Laboratorium in New Jersey. Seit der Gründung im Jahre 1925 ist es führend in der Welt der Kommunikationsforschung.

Yukari Shirota, Tosiyasu L. Kunii

Lizenzen

Wenn man die AT & T-Version von UNIX benutzen will, muß man eine Lizenz von AT & T erwerben. Eine Firma, die eine Lizenz für kommerzielle Anwendungen erworben hat, wird möglicherweise UNIX generell auf ihre eigenen Computer oder die einer anderen Firma übertragen, um dann diese Kombination zu verkaufen. Hier eine kleine Auswahl von Firmen mit UNIX-Lizenzen: Electronic Info System, Inc.Interactive Systems, Inc.Microsoft Corp.UniSoft.Wollongong Group, Inc.Chuo Electronics Co., Ltd. (CEC)

Yukari Shirota, Tosiyasu L. Kunii

Computer-Grundlagen

Frontmatter

Grundfunktionen eines Computers

Bevor ein Computer funktionieren kann, müssen ihm Informationen gegeben werden. Dazu gehören Anweisungen an den Computer, die ihm mitteilen, was er tun soll, sowie die Daten, die verarbeitet werden sollen. Der Vorgang, durch den der Computer diese Informationen erhält, wird „Eingabe“genannt. Diese Informationen werden im Computer gespeichert. Der Ort der Speicherung wird als Speicherbereich bezeichnet, und die Einheit, die den Speicherbereich enthält, wird Speichereinheit oder einfach Speicher genannt. Die Informationen werden gespeichert, bis der Computer sie benötigt. Dann werden sie an die Zentraleinheit (central processing unit, CPU) geschickt, wo sie verarbeitet werden. In der CPU werden die Anweisungen entschlüsselt und die Daten in entsprechender Weise verarbeitet. Zum Beispiel könnten die Anweisungen besagen, daß Daten aus einem bestimmten Speicherbereich in die CPU gebracht und dann mit bestimmten anderen Daten multipliziert werden sollen. Diese Art von Verarbeitung wird Operation genannt. Die von der CPU durchgeführten Operationen sind nicht auf die vier arithmetischen Grundoperationen Addition, Subtraktion, Multiplikation und Division beschränkt. Dazu kommen die Übertragung von Daten aus der CPU in den Speicher, das Laden von Daten in die CPU, das Vergleichen von Daten und das Fällen von Entscheidungen aufgrund des Ergebnisses usw.

Yukari Shirota, Tosiyasu L. Kunii

Bestandteile eines Computersystems

Die vielen Teile, aus denen ein Computer besteht, können prinzipiell drei Kategorien zugeordnet werden:1.Zentraleinheit (CPU)2.Speichereinheit HauptspeichereinheitHilfsspeichereinheiten3.Eingabe/Ausgabe (E/A) Einheiten

Yukari Shirota, Tosiyasu L. Kunii

CPU

Mit dem Fortschritt der Technologie entwickelten sich die Elemente, aus denen eine CPU besteht, von der Vakuumröhre über Transistoren, ICs und LSIs (large scale integrated circuits) zu VLSIs (very large scale integrated circuits). Die CPU-Typen unterscheiden sich stark, je nachdem, ob sie in einem großen Computer, einem Minicomputer oder einem Mikrocomputer benutzt werden.

Yukari Shirota, Tosiyasu L. Kunii

Die Rolle des Speichers

Da eine CPU die ihr übergebenen Informationen und Anweisungen viel schneller verarbeitet als ein Mensch sie eingeben kann, wurde die Methode des Programmspeichers entwickelt, d.h. die Anweisungen werden vor der Ausführung gespeichert. Wenn dann die Ausführung einer solchen Anweisungsfolge gestartet wird, liest die CPU nach jeder ausgeführten Anweisung sofort die nächste aus dem Speicher und führt sie aus. Einige CPUs führen eine Anweisung aus und holen gleichzeitig die nächste aus dem Speicher.

Yukari Shirota, Tosiyasu L. Kunii

Interne Speichereinheiten

Der interne Speicher ist der Speicherbereich, auf den die CPU direkt zugreifen kann. Deshalb werden hierfür Speicher verwendet, die einen schnellen Zugriff erlauben. In den meisten Fällen handelt es sich dabei um ICs und LSIs.

Yukari Shirota, Tosiyasu L. Kunii

Externe Speichereinheiten

Eine Diskette (auch Floppy Disk genannt) ist ein Speicher-Medium, daß aus einer Polyesterscheibe besteht, die mit einer magnetischen Schicht versehen ist. Informationen werden magnetisch in Spuren, die konzentrische Kreise bilden, aufgezeichnet. Jede dieser Spuren ist in Sektoren aufgeteilt.

Yukari Shirota, Tosiyasu L. Kunii

Ein-/Ausgabeeinheiten

Da der Benutzer mit dem Computer über Ein-/Ausgabegeräte kommuniziert, sind diese Geräte dem Benutzer am meisten vertraut. Wir wollen die Geräte besprechen, die mit großer Wahrscheinlichkeit bei einem Computersystem benutzt werden, auf dem UNIX läuft.

Yukari Shirota, Tosiyasu L. Kunii

Programme

Programme sind notwendig, damit ein Computer funktionieren kann. Ein Programm muß in einer speziellen Programmiersprache geschrieben werden, die ein Computer verstehen kann. Der Computer speichert das Programm im Speicher und führt die einzelnen Schritte nacheinander aus. Sobald eine Anweisung ausgeführt ist, wird die nächste aus dem Speicher abgerufen.

Yukari Shirota, Tosiyasu L. Kunii

Computersprachen

Es gibt eine ganze Reihe von Sprachen, die zum Schreiben von Programmen benutzt werden. COBOL wird z. B. oft zum Schreiben kommerzieller Programme benutzt. FORTRAN wird oft zum Schreiben von Programmen benutzt, die numerische Berechnungen durchführen, und LISP wird in der künstlichen Intelligenz oft benutzt. Eine Sprache namens PASCAL erlaubt eine strukturierte Programmierung. Die Sprache C wurde von den Leuten entwickelt, die UNIX geschaffen haben. UNIX selbst ist in C geschrieben, so daß es eine notwendige Voraussetzung ist, daß C auf einem Computer läuft, wenn man darauf UNIX benutzen will.

Yukari Shirota, Tosiyasu L. Kunii

Wie ein Betriebssystem arbeitet

Ein Betriebssystem ist ein Programm, das aus der reinen Maschine (Hardware) einen richtigen Computer macht. Ein Betriebssystem besteht aus einem Kern, der die grundlegenden Operationen des Computers steuert, sowie weiteren Hilfsprogrammen.

Yukari Shirota, Tosiyasu L. Kunii

Beispiele für die Anwendung von UNIX

Frontmatter

Büro-Automatisierung

Büro-Automatisierung mit UNIX

Wir erleben zur Zeit einen dramatischen Anstieg im Bereich der Büro-Automatisierung. Computer werden in Büros eingeführt, um Arbeiten und Dienstleistungen zu übernehmen, wie es zuvor nicht möglich war. Zu den Funktionen von Büro-Automatisierungssystemen gehört die Vorbereitung von Dokumenten, elektronische Post, geschäftliche Kalkulationen, Datenbanknutzung, gemeinsame Nutzung von Dateisystemen, Überwachung von Geschäftsvorgängen, etc. In erster Linie handelt es sich bei den Maschinen zur Büro-Automatisierung um Computer — Büro-Computer, Mini-Computer und Personal Computer. Dazu kommen Textverarbeitungssysteme, Mikrofilmgeräte, optische Bildplattenprozessoren, Laserdrucker, Grafikterminals, akustische Ein- und Ausgabegeräte und Kopiergeräte.

Yukari Shirota, Tosiyasu L. Kunii

Arbeitsstationen

In einem voll automatisierten Büro ist die „Arbeitsstation“eines Angestellten ein Computerterminal. Die meisten Tätigkeiten, die früher an einem Schreibtisch erledigt wurden, können jetzt an einem Computerterminal erledigt werden. Ein Terminal besteht aus einem Bildschirm und einer Tastatur. Der Angestellte gibt die Anweisungen an das UNIX-System über dieses Terminal ein.

Yukari Shirota, Tosiyasu L. Kunii

Gemeinsame Nutzung von Dateien

Da unsere Gesellschaft immer komplexer wird, ist die Informationsmenge, die von Einzelpersonen und Firmen bewältigt werden muß, sprunghaft gestiegen. So wie die Menge an Information zunimmt, wird auch das Problem des Zugriffs auf die gewünschte Information immer größer. Wenn kein guter Überblick über die Information besteht, kann sehr viel Zeit mit der Suche nach Informationen verschwendet werden und gelegentlich großer Ärger entstehen, wenn die Information überhaupt nicht gefunden wird.

Yukari Shirota, Tosiyasu L. Kunii

Elektronische Post

UNIX hat die Funktion einer elektronischen Post: die Benutzer können sich untereinander Dokumente, Nachrichten und Berichte zusenden und empfangen. Dabei handelt es sich um Dateien, die vom Editor oder von anderen Programmen erzeugt worden sind. Dateien können in einer externen Speichereinheit gespeichert werden, und jeder Benutzer hat seine eigene Brief kastendatei in einem externen Speicher. Wenn jemand elektronische Post erhält, wird diese in seiner Briefkastendatei angesammelt. Es ist möglich, elektronische Post an zwei oder mehrere Benutzer gleichzeitig zu schicken. Die Datei, die verschickt wird, kann vorher mit einem Editorprogramm erstellt worden sein; sie kann aber auch während der Übertragung direkt über die Tastatur eingegeben werden.

Yukari Shirota, Tosiyasu L. Kunii

Kommunikation zwischen Terminals

UNIX erlaubt Benutzern, die einen Computer zur gleichen Zeit benutzen, über ihre Bildschirme und Tastaturen miteinander zu kommunizieren. Ein Benutzer schickt eine Nachricht ab, die auf dem Bildschirm eines anderen erscheint, der wiederum seine Antwort abschickt, die auf dem Bildschirm des ersten angezeigt wird. Es wird zwar auch etwas Zeit benötigt, um eine Nachricht auf diese Weise zu übermitteln, aber eine schnelle Schreibkraft wird sich dadurch kaum beeinträchtigt fühlen. Wenn ein Benutzer mit seiner Arbeit beschäftigt ist und sich an dieser Art der Kommunikation nicht beteiligen will, oder wenn etwas auf dem Bildschirm steht, das nicht mit den Mitteilungen anderer Benutzer vermischt werden soll, kann das Terminal so eingestellt werden, daß die Kommunikation unterbleibt. Mitteilungen können an zwei oder mehrere Terminals gleichzeitig geschickt werden, sofern sie eingeschaltet sind. Dadurch ist eine komfortable Möglichkeit gegeben, z. B. die Teilnehmer einer Konferenz einzuladen; oder der für das System Verantwortliche kann die Benutzer darüber informieren, daß der Computer abgeschaltet wird.

Yukari Shirota, Tosiyasu L. Kunii

Textverarbeitung

Wenn man bedenkt, welcher Aufwand mit einer herkömmlichen Schreibmaschine erforderlich ist, wenn Tippfehler korrigiert werden müssen, weiß man den Komfort eines Textverarbeitungssystems zu schätzen: mit der Schreibmaschine muß oft eine ganze Seite wegen eines einzigen Fehlers neu getippt werden, oder man bringt viel Zeit damit zu, daß man das Papier mit weißer Korrekturflüssigkeit bemalt und darauf wartet, daß sie trocknet. Textverarbeitungssysteme werden — zusammen mit dem Computer und dem Kopiergerät — immer mehr zu einem der drei Statussymbole eines wirklich modernen Büros. Mit Hilfe der Textsysteme konnte die zum Erzeugen eines Dokumentes erforderliche Zeit erheblich reduziert werden, und es ist nun eine Kleinigkeit, ein hervorragend gestaltetes Dokument zu produzieren.

Yukari Shirota, Tosiyasu L. Kunii

Datenbank-Verwaltungssysteme

Zu den Datenbank-Verwaltungssystemen, die unter UNIX laufen, gehört das berühmte Programm ingres (INteractive Graphics and REtrieval System), das an der University of California in Berkeley entwickelt wurde. ingres ist ein vollständiges relationales Datenbank-Verwaltungssystem, das unter Verwendung des Compiler-Compilers yacc in der Sprache C geschrieben wurde.

Yukari Shirota, Tosiyasu L. Kunii

Computer-Netzwerke

Mit der zunehmenden Büro-Automatisierung erweist sich ein einziger Computer manchmal als nicht mehr ausreichend, und es wird notwendig, zwei oder mehr Computer zu einem Computer-Netzwerk zusammenzuschließen. Die gegenseitigen Interaktionen zweier oder mehrerer Computer ermöglichen es, eine größere Zahl von Dateien zu benutzen. Der Bereich, in dem die elektronische Post genutzt werden kann, erweitert sich, und sowohl die Hardware als auch die Software können besser genutzt werden. Netzwerke können z. B. sinnvoll sein, um die Arbeit der Mitglieder eines Teams zu koordinieren. Ein Netzwerk kann den Zugriff auf die Geräte eines entfernt aufgestellten Systems ermöglichen. So können z. B. ein Laserdrucker, eine optische Platte, ein Bandlaufwerk zur Datensicherung und ein Fotosatzgerät direkt an bestimmte entfernt aufgestellte Computer angeschlossen werden.

Yukari Shirota, Tosiyasu L. Kunii

Komplett-Systeme zur Büro-Automatisierung

Benutzt man ein Büro-Automatisierungs-System unter UNIX, so hat dies den großen Vorteil, daß die vom Benutzer entwickelte Software mit in das System integriert werden kann. Es werden zwar viele Textverarbeitungssysteme für das Büro angeboten, doch die Kalkulationsprogramme für das eigene Geschäft laufen nicht darauf. Dies Problem kann dadurch gelöst werden, daß man einen universell verwendbaren Computer mit UNIX benutzt, der dann sowohl für die Textverarbeitung wie für die Geschäftskalkulation benutzt werden kann.

Yukari Shirota, Tosiyasu L. Kunii

Probleme der Textverarbeitung mit Begriffszeichen

Eines der größten Probleme für UNIX und andere amerikanische Betriebssysteme besteht darin, daß man zwar das lateinische Alphabet benutzen kann, jedoch nicht die japanische Sprache oder andere Sprachen, die dieselben Schriftzeichen benutzen, wie das Koreanische und das Chinesische. Dies bedeutet, daß sich UNIX zwar für die Textverarbeitung in westlichen Ländern, wie den Vereinigten Staaten, eignet, weniger jedoch für solche Länder wie China, Korea oder Japan. Zu den Textverarbeitungsfunktionen von UNIX gehören Programme, die die Tastatureingabe auf Fehler hin überprüfen, doch diese Programme sind bei Begriffszeichen nutzlos. Die englische Wörterbuch-Datenbank und das Programm, das beurteilt, ob ein Wort „englischähnlich“ ist oder nicht, kann nur für das Englische benutzt werden.

Yukari Shirota, Tosiyasu L. Kunii

Entwicklung von Software für die Büro-Automatisierung

Es wurde zwar schon viel UNIX-Software für die Büro-Automatisierung entwikkelt, aber es ist trotzdem nur natürlich, daß diese Software nicht immer genau den Anforderungen einer bestimmten Firma entspricht, wie dies bei individuell entwickelter Software der Fall ist. Die Entwicklung von Anwendungsprogrammen für die Büroarbeit wird manchmal von den Benutzern selbst durchgeführt, häufiger jedoch an Softwarefirmen vergeben.

Yukari Shirota, Tosiyasu L. Kunii

Programmentwicklung

Mensch-Maschine-Schnittstellen

UNIX bietet dem Benutzer eine günstige Umgebung zur Entwicklung neuer Programme. Wenn man mit UNIX arbeitet, hat man das Gefühl, daß die Arbeit leichter fällt, weniger Anstrengung erfordert und das Programm schneller fertig ist, als dies sonst der Fall wäre. Dies ist kein Zufall. UNIX wurde von führenden Programmierern in den Bell Telephone Laboratories entwickelt, die wußten, was für ein Betriebssystem einfach zu benutzen wäre und was für ein Betriebssystem sie selbst — als die ersten Benutzer — sich wünschten. Einige der Gründe, warum UNIX leicht zu benutzen ist, bestehen darin, daß die Eingabe einfach ist und eine komplette Reihe von Software-Werkzeugen zur Verfügung steht.

Yukari Shirota, Tosiyasu L. Kunii

Einfache Dateinutzung

Der Begriff „Datei“ kann sich sowohl auf einen Ort beziehen, an dem Programme, Daten und Dokumente gespeichert werden, als auch auf dessen Inhalt. Normale Dateien werden magnetisch in externen Speichern gespeichert.

Yukari Shirota, Tosiyasu L. Kunii

Kombinieren von Programmen

Bei UNIX sprechen wir von einem Daten “fluß” zwischen Programmen, in Analogie zum Fließen von Wasser. Daten werden von einem Programm eingegeben und an ein anderes ausgegeben. So wie das Fließen von Wasser durch Röhren (engl.: pipes) gesteuert werden kann, kann der Datenfluß durch Programme gesteuert werden, die eine ähnliche Rolle wie die Röhren spielen. Ebenso wie eine Röhre eine Einlaß- und eine Auslauföffnung für Wasser hat, besitzt ein Programm einen Standardeingabeanschluß und einen Standardausgabeanschluß für Daten; der Ausgabeanschluß eines Programms kann mit dem Eingangsan-schluß eines anderen verbunden werden.

Yukari Shirota, Tosiyasu L. Kunii

Die Programmiersprache C

Wenn wir daran denken, daß UNIX ein Software-Entwicklungssystem ist, erhalten wir eine Vorstellung von der bedeutenden Rolle, die die Programmiersprache C spielt. UNIX selbst wurde ursprünglich in Assemblersprache geschrieben; es wurde jedoch nahezu vollständig neu in der höheren Programmiersprache C geschrieben, damit es sich leichter auf andere Maschinen übertragen ließ. Deshalb sind die meisten Programme, die mit UNIX laufen, in C geschrieben. Dies liegt nicht etwa daran, daß andere Sprachen besonders schwierig zu gebrauchen wären, vielmehr ist es einfach sehr bequem, C zu benutzen, da hierfür alle möglichen Hilfsprogramme existieren.

Yukari Shirota, Tosiyasu L. Kunii

Der Gebrauch des Editors

Benutzt man ein interaktives Betriebssystem, werden die Zeichenketten, aus denen der Text besteht, über ein Terminal eingegeben und auf dem Bildschirm kontrolliert. Änderungen der Eingabe können sofort erfolgen. Ein editor genanntes Programm unterstützt diese Eingabeoperation.

Yukari Shirota, Tosiyasu L. Kunii

Überwachung der Objekt-Programmerstellung

Ein Programm wird normalerweise in mehrere kleinere Programme zerlegt, die jeweils separat geschrieben, getestet und übersetzt werden, bevor sie zu einem umfangreichen Programm zusammengesetzt werden. Bei diesem Zusammensetzen — dies gilt besonders dann, wenn es sich um viele einzelne Objektprogramme handelt — kann es für den Benutzer schwierig werden, noch den Überblick darüber zu behalten, welche der kurzen Objektprogramme in welcher Reihenfolge zusammengesetzt werden sollen. Damit der Benutzer bei diesen Dingen nicht die Übersicht verliert, bietet UNIX ein Hilfsprogramm mit dem Namen make, das Programme aktualisiert.

Yukari Shirota, Tosiyasu L. Kunii

Überwachung von Quellprogrammen

Ein anderes Hilfsprogramm, das eine ähnliche Funktion wie make hat und sccs (Source Code Control System) heißt, trägt ebenfalls zur Nützlichkeit von UNIX als Software-Entwicklungswerkzeug bei.

Yukari Shirota, Tosiyasu L. Kunii

Entwurf von Benutzerschnittstellen

UNIX hat spezielle Hilfsprogramme, die compiler-compiler genannt werden (wie etwa yacc und lex, die es in anderen Betriebssystemen nicht gibt. Ein Compiler-Compiler ist ein Programmierwerkzeug, mit dem Compiler erzeugt werden können.

Yukari Shirota, Tosiyasu L. Kunii

Gerätesteuerung

Gerätesteuerung

Sehen wir uns nun einmal an, wie UNIX verschiedene Geräte steuert, die mit dem Computer verbunden sind. Dabei kann es sich um eine ganze Reihe verschiedener Geräte handeln, z. B. numerisch gesteuerte (NC) Werkzeugmaschinen wie Drehbänke, CAD/CAM (Computer-Aided Design/Computer-Aided Manufacturing), experimentelle Einrichtungen usw. Jedes Steuerungsprogramm muß separat geschrieben werden, da es von der zu steuernden Maschine abhängig ist. Wenn solche Programme geschrieben werden, erweisen sich die überragenden Merkmale von UNIX als Software-Entwicklungssystem als äußerst nützlich.

Yukari Shirota, Tosiyasu L. Kunii

Charakteristische Merkmale von UNIX

Frontmatter

Das Dateisystem und seine hierarchische Baumstruktur

Was ist eine Datei?

Bei der Arbeit sind wir von einer Vielzahl von Informationen umgeben. Unsere persönlichen Adressbücher, Aufzeichnungen von Gehältern und Aufzeichnungen von Messungen, die bei Experimenten gemacht wurden, enthalten alle wertvolle Informationen. Wir müssen derartige Informationen in einer solchen Weise speichern, daß wir sie sofort finden, wenn wir sie benötigen.

Yukari Shirota, Tosiyasu L. Kunii

Hierarchische Strukturen

Um Dateien zu verwalten, weist UNIX sie verschiedenen Ebenen zu.

Yukari Shirota, Tosiyasu L. Kunii

Die Dateistruktur von UNIX

Alle UNIX-Dateien sind in einer einzigen Gesamtstruktur organisiert, ähnlich den Zweigen eines Baumes, die alle aus einer Wurzel kommen. Die Stellen, an denen Verzweigungen entstehen, werden als Knoten bezeichnet. Die Zweige entsprechen den Dateien. Ein Knoten ist selbst eine Art von Datei, unterscheidet sich jedoch von einer normalen Datei dadurch, daß sich keine beliebigen Zeichenfolgen darin speichern lassen. Es handelt sich dabei vielmehr um einen Mechanismus zur Verwaltung von Dateien, der Verzeichnis genannt wird. Ein Verzeichnis enthält eine Liste aller Dateien und Verzeichnisse, die von ihm ausgehen. Im weitesten Sinne schließt der Begriff „Datei“ die Verzeichnisse mit ein, doch wollen wir der Einfachheit halber im folgenden den Begriff „Datei“ nur für normale Dateien verwenden, in denen beliebige Zeichenfolgen gespeichert werden können, wogegen eine Datei, die zur Verwaltung von Dateien dient, „Verzeichnis“ genannt werden soll.

Yukari Shirota, Tosiyasu L. Kunii

Inhaltsverzeichnisse für Benutzer

Sobald ein Benutzer beginnt, das UNIX-System zu benutzen, wird ihm ein Verzeichnis zugewiesen. Im Augenblick brauchen wir uns nicht um die Vorfahren dieser Datei zu kümmern und können uns auf das Problem konzentrieren, wie wir Nachfolger erzeugen können. Zu Beginn gibt es keine Dateien in unserem Verzeichnis. Erst wenn der Benutzer beginnt, das Verzeichnis zu benutzen, werden Dateien darin eingetragen. Mit jeder Datei, die erstellt wird, bekommt das Verzeichnis ein weiteres Kind. Allerdings können die Inhalte der einzelnen Dateien sehr unterschiedlich sein. Es könnte verwirrend werden, wenn wir z. B. Textdateien, Programmdateien und Dateien mit verschiedenen anderen Daten bunt gemischt im selben Verzeichnis hätten. Um etwas Ordnung in dieses Durcheinander zu bringen, erstellt man üblicherweise ein Verzeichnis für einen bestimmten Zweck und „hängt“ dann die dazugehörigen Dateien und Verzeichnisse hinein. Durch Anlegen von jeweils eigenen Verzeichnissen für die Textverarbeitung, die Programmentwicklung und Daten bleibt der Überblick gewahrt, und das System läßt sich einfach benutzen. Dies kann mit dem Aufstellen von Projektgruppen in einer Firma verglichen werden, womit die Rolle eines jeden Angestellten klargestellt wäre.

Yukari Shirota, Tosiyasu L. Kunii

Übertragungen zwischen Inhaltsverzeichnissen

Arbeitet ein Benutzer in einem bestimmten Verzeichnis, kann er normalerweise nur auf die „Kinder“ zugreifen, die direkt mit diesem Verzeichnis verbunden sind. Um eine „Enkel“-Datei zu erreichen, muß man ein Verzeichnis tiefer hinabsteigen.

Yukari Shirota, Tosiyasu L. Kunii

Schützen von Dateien

UNIX macht es leicht, fremde Dateien zu benutzen; es bietet jedoch auch Schutzfunktionen für Dateien, bei denen Sie nicht wollen, daß andere Personen sie sehen, verändern oder ausführen.

Yukari Shirota, Tosiyasu L. Kunii

Spezielle Ein-/Ausgabedateien

UNIX hat viele Benutzer. Nehmen wir an, daß Sie und ein anderer Benutzer verschiedene Dateien erstellen, ihnen jedoch den gleichen Namen geben. Wird das System sie durcheinander bringen? Die Antwort ist NEIN. Dies liegt daran, daß die beiden Dateien zwar den gleichen Namen haben, jedoch zu verschiedenen Verzeichnissen gehören. Dies ist ähnlich dem Fall, daß man zwei Kinder mit dem gleichen Vornamen dadurch unterscheiden kann, daß sie verschiedene Nachnamen haben. Selbst wenn der Familienname der gleiche sein sollte, könnte man sie wegen ihrer verschiedenen Vorfahren unterscheiden.

Yukari Shirota, Tosiyasu L. Kunii

Spezielle Ein-/Ausgabedateien

Lassen Sie uns einmal die Gehaltsabrechnung in einer Firma betrachten. Dazu werden zwei Dateien benötigt: eine, die das Abrechnungsprogramm enthält und eine, die die benötigten Daten enthält. Die Datei mit den Daten enthält Informationen über die Angestellten der Firma. Eine dritte Datei wird benötigt, um die Ergebnisse der Kalkulation zu speichern. Die Daten werden aus der Datei mit den Stammdaten entnommen, die entsprechenden Berechnungen werden durchgeführt und die Ergebnisse dann in eine Ausgabedatei geschrieben.

Yukari Shirota, Tosiyasu L. Kunii

Eingabe in und Ausgabe aus Dateien

In UNIX können bestimmte Ein-/Ausgabedateien genauso wie normale Dateien behandelt werden. Um z. B. den Inhalt einer Datei namens „test“ mit Hilfe des Dateiausgabekommandos pr auf dem Bildschirm anzuzeigen, würde man die Anweisung pr test benutzen. Sollen die Daten dagegen in einer anderen Datei namens „junk“ gespeichert werden, würde die Anweisung lauten: pr test > junk. Dadurch erfolgt eine Kopie des Ergebnisses von pr test in die Datei junk. Da angegeben wurde, daß die Daten, die normalerweise auf den Bildschirm geschickt werden, jetzt in die Datei junk geleitet werden sollen, sind die Daten anschließend in junk. Wird stattdessen eine Ausgabe auf den Drucker gewünscht, so muß lediglich an Stelle von junk der Dateiname des Druckers angegeben werden. Lautet der Dateiname des Druckers z. B. „/dev/sp0“, so lautet die Anweisung nun pr > /dev/sp0. Da das Format der Kommandos für alle Dateien gleich bleibt, können sogar spezielle Ein-/Ausgabedateien leicht gehandhabt werden.

Yukari Shirota, Tosiyasu L. Kunii

Für den UNIX-Betrieb erforderliche Dateien

Das gesamte Datei-System von UNIX bildet eine einzige Baumstruktur. In jedem System gibt es eine Reihe von systemspezifischen Dateien und Verzeichnissen, aus denen sich dieser Baum zusammensetzt, doch die grundlegenden Dateien und Verzeichnisse, die für den Betrieb von UNIX erforderlich sind, sind überall mehr oder weniger die gleichen. Sehen wir uns einmal an, welche Arten von grundlegenden Verzeichnissen benötigt werden.

Yukari Shirota, Tosiyasu L. Kunii

Die Kommandoverarbeitungssprache Shell

Das Kommandoverarbeitungssystem

Wer mit einem Computer arbeitet, hat viele Aufgaben zu erledigen. Neue Dateien müssen erstellt werden, nicht mehr benötigte Dateien müssen gelöscht werden, man muß sich den Inhalt von Dateien ansehen, Dateien mischen oder aufgliedern, zwei Dateien miteinander vergleichen, um Unterschiede zwischen ihnen festzustellen usw. Man muß so grundlegende Operationen durchführen wie das Compilieren von Programmen sowie Ein- und Ausgabedateien angeben, die bei der Ausführung dieser Programme benutzt werden.

Yukari Shirota, Tosiyasu L. Kunii

Das UNIX-Kommandoverarbeitungssystem: Shell

UNIX hat ein Kommandoverarbeitungssystem, das sehr leicht zu benutzen ist. Es heißt shell (Schale). Wir wollen der Reihe nach die zahlreichen hervorragenden Merkmale der Shell beschreiben, doch lassen Sie uns zunächst einmal sehen, über welche grundlegenden Fähigkeiten dieses Programm verfügt.

Yukari Shirota, Tosiyasu L. Kunii

Einfache und klare Kommandos

Wenn man mit UNIX arbeiten will, muß man die Shell-Kommandos lernen. Die Kommandonamen sind einfach. Außerdem werden von der Shell sehr wenige Meldungen ausgegeben; tatsächlich gibt es beinahe gar keine, es sei denn, Sie machen einen Eingabefehler. Für einen erfahrenen Operator bedeuten einfache Kommandos und wenige Meldungen eine Arbeitserleichterung. Da ein erfahrener Operator nicht viele Fehler macht, bedeuten weniger Meldungen weniger Unterbrechungen. Insofern ist das System für erfahrene Benutzer konzipiert. Da UNIX für gewöhnlich nicht viele Meldungen ausgibt, bleibt dem Benutzer nur die Möglichkeit anzunehmen, daß es richtig funktioniert.

Yukari Shirota, Tosiyasu L. Kunii

Definition von Kommandos

Es gibt gewisse Folgen von Arbeitsabläufen, die bei der Arbeit an einem Computer immer wieder auftreten. Es ist bequem, wenn eine solche Folge von Operationen mit einem einzigen Kommando zusammengefaßt werden kann.

Yukari Shirota, Tosiyasu L. Kunii

Ersetzungszeichen

Damit man nicht immer alle Dateinamen vollständig eingeben muß, gibt es so-genannte „Ersetzungszeichen“, die in den Dateinamen wie „Joker“ benutzt werden können. (Anmerkung: Der Name „Joker“ ist von bestimmten Kartenspielen her bekannt, bei denen gewisse Karten für jede beliebige andere Karte benutzt werden können.) Es gibt die folgenden drei Arten von Ersetzungszeichen.

Yukari Shirota, Tosiyasu L. Kunii

Shell-Prozeduren

In einer Shell-Prozedur ist es wie in anderen höheren Programmiersprachen möglich, ein Programm mit Hilfe von Kommandos wie „for“, „case“, „while“ und „if“ zu schreiben. Will man solche Kontrollstrukturen benutzen, sollte man einige Programmiererfahrung in einer Sprache wie C, Pascal etc. besitzen.

Yukari Shirota, Tosiyasu L. Kunii

Datenfluß und Pipelines

Viele UNIX-Kommandos sehen so aus, daß eine Zeichenfolge aus einer Eingabedatei eingegeben und das Ergebnis der Verarbeitung in eine Ausgabedatei ausgegeben wird. Lassen Sie uns nun zu den schon kurz in Kapitel 3 angesprochenen Themen „Datenfluß“ und „Pipelines“ zurückkommen. In einem typischen Kommando (das in Wirklichkeit eine Art von Programm ist) werden die Daten über das Standardeingabegerät eingegeben, das Programm bewirkt eine bestimmte Verarbeitung der Daten und ein weiterer „Datenstrom“, der das Ergebnis der Verarbeitung darstellt, wird an das Standardausgabegerät ausgegeben. Stellt man sich so den Datenfluß vor, der bei der Verarbeitung eines Kommandos stattfindet, so ähnelt dieser Vorgang dem Fließen von Wasser in einer Röhre oder Pipeline.

Yukari Shirota, Tosiyasu L. Kunii

Hintergrund-Jobs

Es kann vorkommen, daß ein Operator ungeduldig wird, wenn er auf die Beendigung der Ausführung eines Kommandos wartet, das eine lange Verarbeitungszeit benötigt, wie z. B. die Übersetzung eines Programmes. Wenn ein Benutzer mehrere Programme laufen lassen muß, ist es günstig, wenn die Programme, die eine lange Verarbeitungszeit benötigen, irgendwo „außer Sicht“ gehalten werden können, während der Benutzer gleichzeitig andere Programme laufen läßt und z. B. eine Datei bearbeitet. Eine solche parallele Verarbeitung von „Jobs“ (Programmen) spart Zeit und beschleunigt die Arbeit.

Yukari Shirota, Tosiyasu L. Kunii

Eine Fülle von Software

Die Software-Umgebung von UNIX

Für den Benutzer eines Betriebssystems ist es immer interessant zu wissen, welche Art von Programmen für dieses Betriebssystem verfügbar sind. Wir haben schon gesehen, daß UNIX eine Fülle von Software bietet. Beispiele dafür sind die Computersprache, Hilfsmittel zur Software-Entwicklung, Dienstprogramme und Anwendungsprogramme.

Yukari Shirota, Tosiyasu L. Kunii

Steuerung des Benutzerzugriffs

Immer wenn sich ein Benutzer an ein Terminal setzt und den Computer benutzen will, muß er zunächst dieses Programm laufen lassen, das seinen Einstieg in die Computer-Benutzung überwacht. Der Benutzer gibt seinen Login-Namen über die Tastatur ein. Als erstes überprüft der Computer nun, ob dieser Name in dieser speziellen Datei existiert, mit anderen Worten, ob der Benutzer berechtigt ist, den Computer zu benutzen. Wenn nicht, kann er ihn nicht benutzen. Um zu verhinden, daß sich jemand mit einem anderen als dem eigenen Namen anmeldet und somit auf unbefugte Weise Zugang zum Computer erhält, kann jeder Benutzer ein geheimes Passwort haben. Das Passwort wird während der Eingabe nicht auf dem Bildschirm angezeigt, um zu verhindern, daß unbefugte Personen es sehen können.

Yukari Shirota, Tosiyasu L. Kunii

Dateiverwaltung

UNIX enthält alle Programme, die man benötigt, um Dateien zu kombinieren, Dateien in zwei oder mehr Dateien aufzugliedern, Dateien auszugeben, Dateien zu kopieren usw. Es gibt Programme zur Druckerausgabe; einige dieser Programme geben die Datei nicht nur einfach aus, sondern fügen eine Überschrift und das Datum auf jeder Seite hinzu, führen eine Seitennumerierng durch, geben den Text in mehreren Spalten aus usw. Es gibt ein Programm, das cmp (compare, vergleichen) heißt, mit dem man zwei Dateien vergleichen kann, um festzustellen, ob sie gleich sind, ein Programm mit dem Namen dd, das Dateien von einem Gerät (z. B. Diskette oder Magnetband) auf ein anderes kopiert usw.

Yukari Shirota, Tosiyasu L. Kunii

Ausführung von Programmen

Dies ist das Systemprogramm zur Verarbeitung der Kommandosprache. Es interpretiert die über ein Terminal eingegebenen Kommandos und die vom Benutzer definierte Shell-Prozedur und führt sie dann aus. Eine Shell-Prozedur führt ebenso komplizierte Verarbeitungen durch wie ein normales Programm, erfordert jedoch nur einen Bruchteil des Aufwandes von Seiten des Benutzers. Da eine Shell-Prozedur if-Kommandos enthalten kann, kann der Ablauf eines Programmes gesteuert werden, je nachdem ob z. B. eine bestimmte Datei existiert oder nicht, oder in Abhängigkeit vom Ergebnis eines Vergleichs von Zeichenketten. Es kann z. B. entschieden werden, ob eine Compilierung korrekt durchgeführt worden ist und, wenn dies der Fall ist, das Programm auszuführen, wenn es aber nicht der Fall ist, eine Fehlermeldung auszugeben.

Yukari Shirota, Tosiyasu L. Kunii

Statusberichte

Es gibt eine Reihe von Programmen, die den Benutzer über den augenblicklichen Zustand von UNIX informieren. So können z.B. die Namen aller „Kind“-Dateien eines bestimmten Verzeichnisses mit dem Status jeder einzelnen Datei (Größe, Besitzername, letztes Änderungsdatum, letztes Zugriffsdatum, Zugriffsrecht usw.) angezeigt werden. Es gibt auch ein Programm, das den Benutzer darüber informieren kann, wer den Computer zur Zeit benutzt und welche Programe ablaufen.

Yukari Shirota, Tosiyasu L. Kunii

Kommunikation

Dieses Programm führt die Funktionen der elektronischen Post von UNIX aus. Eine Nachricht oder ein Brief wird über ein Terminal oder eine Datei eingegeben und kann zu mehreren Leuten gleichzeitig geschickt werden. Jedesmal wenn sich ein Benutzer anmeldet, wird er darüber informiert, ob Post für ihn angekommen ist. Briefe können entweder in Dateien gespeichert oder gelöscht werden.

Yukari Shirota, Tosiyasu L. Kunii

Computersprachen

C ist eine höhere Pogrammiersprache, die eine strukturierte Programmierung gestattet. Nahezu die gesamte UNIX-Software ist in C geschrieben. Programmierer, die UNIX verbessern wollen, müssen C lernen, damit sie den Quellcode lesen und die gewünschten Änderungen vornehmen können. Um UNIX zu benutzen, reicht es allgemein aus, nur C zu kennen.

Yukari Shirota, Tosiyasu L. Kunii

Werkzeuge zur Programmentwicklung

UNIX enthält verschiedene Arten von Bibliothekspaketen, Programme zu ihrer Wartung, Assembler und Debugger, Lader, Dump-Programme und andere Werkzeuge zur Programmentwicklung.

Yukari Shirota, Tosiyasu L. Kunii

Erstellen von Dokumenten

Dies ist ein dialog-orientierter Zeileneditor. Es ist das grundlegende Standardprogramm von UNIX zum Erstellen und Verändern von Dokumenten. Es gibt zwei Möglichkeiten, eine Zeile anzugeben: durch Angabe der Zeilennummer oder mittels einer Zeichenfolge, die in der betreffenden Zeile vorkommmt.

Yukari Shirota, Tosiyasu L. Kunii

Formatieren von Dokumenten

Diese Programme sorgen für den guten äußeren Eindruck von Dokumenten. Durch das Einfügen von troff/nroff Kommandos zwischen den Sätzen kann bestimmt werden, welche Schriftart für die Buchstaben benutzt werden soll, ob Zeilen rechtsbündig und/oder linksbündig ausgerichtet werden sollen, und das Einrücken, die Gestaltung der Titel und andere Merkmale eines wohlformatierten Textes können angegeben werden.

Yukari Shirota, Tosiyasu L. Kunii

Dateiverarbeitung

Es gibt viele Programme für die Verarbeitung von Dateien. Durch Kombination dieser Programme können selbst kompliziertere Operationen mit Dateien durchgeführt werden.

Yukari Shirota, Tosiyasu L. Kunii

Spiele, CAI, Verschiedenes

Zur UNIX Software der Bell Telephone Laboratories gehört auch eine Anzahl von Spielen. Der Benutzer kann Spiele wie Backgammon, Schach, Dame, Blackjack, Labyrinth usw. gegen den Computer spielen. Da die Programme gut sind, ist der Computer ein starker Gegner, und es ist für den Benutzer schwierig zu gewinnen.

Yukari Shirota, Tosiyasu L. Kunii

Die CSHELL von UCB

Die UCB-Version von UNIX besitzt zusätzlich zu der Kommandointerpreter-Shell einen zweiten Kommandointerpreter namens „cshell”. Einige Benutzer bevorzugen diesen Interpreter und benutzen ihn an Stelle der Shell. Die Wahl bleibt dem Benutzer überlassen. Zu den Funktionen der cshell gehören z. B. (gemäß 4 BSD):Jobsteuerungsfunktion

Yukari Shirota, Tosiyasu L. Kunii

Ergänzungen zum System III

Die bisher beschriebene Software entspricht der UNIX-Version 7. Jede UNIX-Version enthält etwas andere Programme. Je neuer die Version ist, desto mehr Möglichkeiten bietet sie; die Möglichkeiten der vorigen Versionen bleiben nahezu immer erhalten. Bei den meisten der heute verkauften UNIX-Systeme handelt es sich um die Version 7, obwohl einige Systeme der Version 6 noch in Gebrauch sind.

Yukari Shirota, Tosiyasu L. Kunii

Verschiedenes

Voll-Duplex-Kommunikation

Da für die Kommunikation zwischen einem Terminal und dem Computer, auf dem UNIX läuft, ein Voll-Duplex- System benutzt wird, sind die Übertragungen vom Terminal zum Computer vollkommen unabhängig von den Übertragungen vom Computer zum Terminal.

Yukari Shirota, Tosiyasu L. Kunii

UNIX läuft auf relativ kleinen Computern

Eines der Hauptmerkmale von UNIX ist seine Einfachheit. Dadurch ist es leicht, das System zu verstehen und es zu erweitern.

Yukari Shirota, Tosiyasu L. Kunii

Das System ist leicht übertragbar

Die Problemlosigkeit, mit der UNIX auf neue Maschinen übertragen werden kann, ist einer der Hauptgründe, die zu seiner Verwendung auf Großcomputern und weitgehend auf 16-Bit-Mikrocomputern geführt haben. Da nahezu das gesamte UNIX-System, einschließlich des Kerns, in der Sprache C geschrieben ist, kann das System leicht erweitert oder auf eine neue Maschine übertragen werden. Wenn die Zielmaschine über einen C-Compiler verfügt, können die C-Pro-gramme des UNIX-Systems übersetzt werden und auf dieser Maschine laufen. Wenn diese Arbeit vollständig in Assembler erfolgen müßte, so wäre dies außerordentlich aufwendig. Da UNIX jedoch in der höheren Programmiersprache C geschrieben ist, ist die Maschinenabhängigkeit nur sehr gering, so daß nur diese wenigen Teile in Assembler geschrieben werden müssen.

Yukari Shirota, Tosiyasu L. Kunii

Zusammenfassung

Zusammenfassung

UNIX ist ein leistungfähiges Betriebssystem, das zahlreiche Dienstprogramme in einer höheren Programmiersprache enthält und in der Lage ist, mehrere Programme gleichzeitig zu verarbeiten. Zu den vielen Anwendungsmöglichkeiten gehören die Büro-Automatisation, Netzwerk-Steuerung und die Steuerung von numerisch gesteuerten Maschinen. Da UNIX auch über hervorragende Fähigkeiten als Programm-Entwicklungssystem verfügt, dürfte es sich in der Zukunft noch weiter verbreiten. UNIX bietet eine bessere Programmierumgebung far seine zahlreichen Benutzer.

Yukari Shirota, Tosiyasu L. Kunii

Schlußbemerkung der Autoren

Schlußbemerkung der Autoren

Hat dieses Buch Ihnen dabei geholfen, UNIX zu verstehen? Wenn ja, wären wir sehr glücklich. Wir haben versucht, unser Bestes bei der Erstellung des Textes und der Beispiele zu geben. Damit hoffen wir, den Anforderungen von Führungskräften zu entsprechen, gemeinsam mit ihren Mitarbeitern Strategien und Konzepte für die Entwicklung von Software zu erarbeiten. Für uns war dies eine angenehme und aufschlußreiche Aufgabe, die wir im beständigen Dialog mit unseren Freunden, Führungskräften aus Unternehmen, erfüllt haben.

Yukari Shirota, Tosiyasu L. Kunii

Backmatter

Weitere Informationen