Vorlesunggskript 03
Die Unix-Programmierumgebung
Die Kommandozeile hat ihre Ursprünge in der Zeit, als ein einziger Computer mehrere Schränke füllen konnte, aber noch nicht einmal Bildschirme hatte. Man benutzte Hardcopy-Terminals, um sie zu bedienen. Das waren schreibmaschinenähnliche Geräte. Man gab ein Kommando über die Tastatur ein, und der Output wurde auf Papier ausgedruckt. Später kamen dann Bildschirmterminals auf, bei denen der Drucker durch einen Bildschirm ersetzt wurde.
In der Zeit der Terminals wurde das Betriebssystem UNIX erfunden und mit ihm
viele Technologien und Ideen, die noch heute weit verbreitet sind. Dazu zählen
zum Beispiel die Programmiersprache C und ein bestimmtes
Kommandozeilen-Bedienkonzept. Dazu zählt auch die Unix-Philosophie,
nach der Programme (vor allem Kommandozeilenprogramme) so geschrieben werden
sollten, dass sie minimalistisch sind, sich auf eine simple Aufgabe
konzentrieren und sich gut mit anderen Programmen kombinieren lassen, um
komplexere Aufgabe zu lösen. Zum „Lieferumfang“ von UNIX gehörten eine Reihe
von Standardprogrammen, die dieser Philosophie folgen und vielfältig einsetzbar
sind – zum Beispiel das Programm wc
, das wir in Vorlesungsskript 02 schon
kurz gesehen haben. Alles zusammen bildet die „Unix-Programmierumgebung“, die
z.B. in Kernighan und Pike (1984) beschrieben
wird.
Heutige Computer haben keine Terminals mehr, und das ursprüngliche UNIX-Betriebssystem ist kaum noch verbreitet. Die Unix-Programmierumgebung aber ist überall – auf jedem heute verbreiteten Betriebssystem kann man sie benutzen. Dazu braucht man zunächst einen Terminal-Emulator. Das ist ein Programm, das innerhalb der grafischen Oberfläche eines modernen Betriebssystems ein Fenster öffnet, das ein Video-Terminal simuliert und so die schlichte, textbasierte Kommunikation zwischen Benutzer und Betriebssystem ermöglicht.
Des weiteren braucht man die oben erwähnten Standardprogramme (auch davon gibt es für alle gängigen Betriebssysteme moderne Versionen) und schließlich eine Möglichkeit, neue Programme zu installieren, wenn man sie braucht. Und fertig ist die Unix-Programmierumgebung.
Viele heutige Betriebssysteme wurden von Anfang an so konzipiert, dass sie dem ursprünglichen UNIX ähneln. Hier gibt es zwei große Gruppen: die BSD-basierten Systeme (z.B. FreeBSD, NetBSD, OpenBSD, aber auch macOS) und die GNU/Linux-basierten Systeme (z.B. Ubuntu, openSUSE, Fedora). All diese Systeme haben eine vorinstallierte Unix-Programmierumgebung, ja, sie ist sogar zentraler Bestandteil dieser Systeme. Windows hat keine vorinstallierte Unix-Programmierumgebung, aber man kann eine installieren. Bis vor Kurzem war der übliche Weg, entweder das Softwarepaket Cygwin zu installieren oder eine virtuelle Maschine, in der z.B. ein GNU/Linux-basiertes System läuft. Unter Windows 10 gibt es jetzt einen einfacheren Weg, nämlich offiziell unterstützte Unix-Programmierumgebungen, die man als Apps über den Windows Store installieren kann. Sie basieren auf Ubuntu, openSUSE und Fedora und heißen auch so.
Einmal installiert sind sich alle Unix-Arbeitsumgebungen in ihrer Funktionsweise und den zur Verfügung stehenden Programmen sehr ähnlich. Die größten Unterschiede liegen darin, wie man zusätzliche Programme installiert, hier hat noch jede Umgebung ihr eigenes System. In diesem Kurs werden wir uns hauptsächlich auf das Betriebssystem Ubuntu 16.04 stützen.
Lektüre zur Vertiefung
- Brian W. Kernighan, Rob Pike (1984): The Unix Programming Environment. Prentice-Hall, New Jersey.