<<

1 Von der Hardware zur Anwendung

Das Kapitel erläutert die Zusammenarbeit der Hardware und der einzelnen Software- Schichten bis hin zum Anwendungsprogramm bei der Lösung einer Aufgabe mittels eines Linux/UNIX-Systems.

1.1 Hardware und Software

Ein Computer, ein Rechner (E: computer, F: ordinateur) ist eine Maschine, die aus Hardware (E: hardware, F: matériel) und Software (E: software, F: logiciel) besteht. Die Hardware ohne die Software ist ein aufwendiger Heizlüfter, mehr nicht. Hard- ware besteht aus Kupfer, Eisen, Glas, Kunststoff, Pappe; man kann sie anfassen. Software besteht aus Gedanken, Informationen, Daten. Die Software ohne die Hard- ware vermag nichts. Es ist sogar fraglich, ob sie ohne Hardware existieren könnte. Ein Buch, eine CD/DVD, der graue Kasten auf oder neben Ihrem Schreibtisch sind Hardware, der Inhalt des Buches, der CD/DVD oder des Speichers in dem grauen Kasten ist Software. Dichterfürst FRIEDRICH VON SCHILLER sagt treffend: Leicht beieinander wohnen die Gedanken, doch hart im Raume stoßen sich die Sachen. Die Verse stehen in Wallensteins Tod im 2. Aufzug, 2. Auftritt. Was sich hart im Raum stößt, gehört zur Hardware, was leicht beieinander wohnt, die Gedanken, ist Software. Besagte Maschine ist ein Automat, der auf bestimmte Eingaben mit bestimm- ten Tätigkeiten und Ausgaben antwortet. Dieselbe Eingabe führt immer zu dersel- ben Ausgabe, darauf verlassen wir uns. Deshalb ist es im Grundsatz unmöglich, mit Rechnern Zufallszahlen zu erzeugen (zu würfeln). Zwischen einem Briefmarken- Automaten (Postwertzeichengeber) und einem Rechner besteht jedoch ein wesentli- cher Unterschied. Ein Briefmarken-Automat nimmt nur Münzen entgegen und gibt nur Briefmarken aus. Sein Verhalten ist durch seine Mechanik unveränderlich vor- 2 1 Von der Hardware zur Anwendung gegeben. Es hat auch mechanische Rechenautomaten für spezielle Aufgaben wie die Berechnung von Geschossbahnen (Ballistik) oder Gezeiten1 gegeben. Bei einem Rechner hingegen wird das Verhalten durch die Software bestimmt, die im Gerät gespeichert ist und einfach ausgewechselt werden kann. Dieselbe Hard- ware kann sich wie eine Schreibmaschine, eine Rechenmaschine, eine Zeichenma- schine, wie ein CD-Spieler, ein Telefon, ein Schachspieler oder wie ein Lexikon verhalten, je nach Programm.

Bildschirm Tastatur Terminal

Arbeits− speicher CPU Massen− speicher Prozessor

Drucker Netz

Abbildung 1.1. Aufbau der Hardware eines Rechners

Der Benutzer (E: user, F: utilisateur) sieht von einem Rechner vor allem den Bildschirm (E: screen, F: écran) und die Tastatur (E: keyboard, F: clavier), auch Hackbrett genannt. Bildschirm und Tastatur zusammen werden als Terminal (E: ter- minal, F: ) bezeichnet und stellen die Verbindung zwischen Benutzer und Maschine dar. Mittels der Tastatur spricht der Benutzer zum Rechner, auf dem Bild- schirm erscheint dessen Antwort. Sofern vorhanden, zählt eine Maus oder Rollkugel (Zeigegerät, E: pointing device, mouse, trackball, F: dispositif de pointage, souris, boule de commande) auch zum Terminal. Bei Anlagen mit mehreren Terminals wird das erste, unbedingt notwendige Ter- minal, das auf einer bestimmten Adresse liegt, als Konsole bezeichnet. Beim System- start nimmt der Rechner zuerst mit der Konsole Kontakt auf. Dorthin schickt er auch allfällige Hilferufe. Die Konsole ist der Arbeitsplatz des Verwalters. Häufig wird aber auch jedes Textterminal oder jedes Fenster, in dem ein Textterminal zur Einga- be von Kommandozeilen dargestellt wird, als Konsole bezeichnet. Für die aus ihm

1Im Deutschen Schifffahrtsmuseum in Bremerhaven sind mechanische Gezeitenrechner ausgestellt. 1.1 Hardware und Software 3 heraus gestarteten Prozesse ist es das Kontrollterminal (kontrollierende Dialogstati- on). Auf einem Linux-Rechner gibt es bis zu 63 virtuelle Konsolen oder Terminals (/dev/tty*), siehe die Manualseite zu console. Der eigentliche Rechner, die Prozessor- oder Zentraleinheit (E: central unit, F: unité centrale) ist in die Tastatur eingebaut wie seinerzeit beim Commodore C64 oder Schneider CPC 464, in das Bildschirmgehäuse wie beim ersten Apple Macintosh oder beim heutigen iMac, oder sie steckt in einem eigenen Gehäuse. Die wichtigsten Teile der Zentraleinheit sind der Zentralprozessor (CPU, E: central processing unit, F: processeur central) und der Arbeitsspeicher (E: memory, F: mémoire centrale, mémoire vive, mémoire secondaire). Um recht in Freuden arbeiten zu können, braucht man noch Massenspeicher (E: storage, F: mémoire de masse), die ihren Inhalt nicht vergessen, wenn der Rech- ner abgeschaltet wird. Massenspeicher können fest in die Maschine eingebaut sein wie Festplatten (E: hard disk, F: disque dur) oder oder entfern- und transportierbar wie Disketten (E: floppy disk, F: disquette), Compact Disc/Digital Versatile Discs (CD/DVDs, F: disque optique compact, disque numérique polyvalent) oder Memory Sticks. In letzterem Fall benötigt der Rechner ein zu dem Medium passendes Lauf- werk (E: drive, F: dérouleur) für die Scheiben bzw. einen Anschluss für die Stöpsel. Zwischen verschiene Speicherebenen ist meist ein Cache (E: cache, F: antémémoi- re), ein kleiner Zwischenspeicher, eingefügt, um Geschwindigkeitsunterschiede aus- zugleichen und Wartezeiten zu verringern. Da man gelegentlich etwas schwarz auf weiß besitzen möchte, gehört zu den meisten Rechnern ein Drucker (E: printer, F: imprimante). Heute ist das oft ein La- serdrucker, zunehmend mit Farbe. Aber auch Tintenstrahldrucker haben ihre Stärken, beim Ausdrucken von Fotos oder Folien beispielsweise. Bei Farbdruckern sind die Betriebskosten nicht unerheblich. Ferner ist ein Rechner, der etwas auf sich hält, durch ein Netz (E: network, F: réseau) mit anderen Rechnern rund um die Welt verbunden. Kommunikation ist zu einer wesentlichen Aufgabe der Rechner geworden. Netze, die: • räumlich im Prinzip unbegrenzt sind, • einem unbegrenzten Kreis von Benutzern offen stehen, • vielen Besitzern gehören, • verschiedenste Techniken verwenden, werden Wide Area Networks (WAN, F: réseau étendu) genannt. Ein bekannter Ver- treter ist das Internet, der älteste das Telefonnetz. Im Gegensatz dazu stehen Local Area Networks (LAN, F: réseau locale), die • räumlich begrenzt sind, • nur eingetragene Benutzer zulassen. • einem bestimmten Besitzer gehören, • die Vielfalt der Technik möglichst überschaubar halten. Das Campusnetz einer Hochschule ist ein größeres LAN, ebenso ein firmeninternes Netz. Bestimmte Ausprägungen von LANs sind Wireless LANs (WLAN), Dome- stic Area Networks (DAN , begrenzt auf ein Wohngebäude), Family Area Networks 4 1 Von der Hardware zur Anwendung

(FAN), Storage Area Networks (SAN) usw. Virtuelle private Netze (Virtual Priva- te Network, VPN) bauen auf der Hard- und Software eines anderen Netzes – meist des Internets – mittels Software ein LAN auf, zu dem nur die eigenen Benutzer Zu- gang haben. Die Grenzen sind fließend, außerdem greifen Computernetze auf andere Netze (Telefon, Kabelfernsehen) über oder umgekehrt. Ihr Internet Service Provider (ISP) bindet Ihr Netz an das große Internet an und erwartet dafür ein Entgelt. Was um die Zentraleinheit herumsteht, wird als Peripherie bezeichnet. Die peri- pheren Geräte sind über Schnittstellen (Datensteckdosen, E: interface, F: interface) angeschlossen. In Abbildung 1.1 sehen wir das Ganze schematisch dargestellt. In der Mitte die CPU, eng verbunden mit dem Arbeitsspeicher. Um dieses Paar herum die Peripherie aus Terminal, Massenspeicher, Drucker und Netzanschluss. Sie können aber immer noch nichts damit anfangen, allenfalls heizen. Es fehlt noch die Intelli- genz in Form eines Betriebssystems (E: operating system, F: système d’exploitation) wie Debian GNU/Linux. Debian GNU/Linux unterstützt ein breites Spektrum von Hardware, neben PCs nach IBM-Muster auch Macintosh-Rechner und Workstations von Hewlett-Packard, IBM, Sun und anderen. Dennoch kann es in drei Bereichen zu Problemen kommen: • Sehr neue Hardware (Grafikkarten, schnelle WLAN-Adapter), • Laptops oder Notebooks, weil diese oft spezielle Bauteile enthalten, um Strom und/oder Platz zu sparen, • Hardware, die eigens nur für ein bestimmtes Betriebssystem (das heißt MS Win- dows) entwickelt wurde. In diesen Fällen sollten Sie sich vor größeren Anschaffungen erkundigen, ob die ins Auge gefasste Hardware mit Linux zusammenarbeitet. Dagegen stehen die Chancen gut, alte Hardware unter Linux wiederbeleben zu können. Ein Wort noch zur Gestaltung des Arbeitsplatzes. Da man in vielen Berufen heute stundenlang am Bildschirm arbeitet, spielt die zweckmäßige Gestaltung kurzfristig für die Leistung und langfristig für die Gesundheit eine Rolle. Der Bildschirm ha- be eine Diagonale nicht kleiner als 17 Zoll (43 cm), 19 Zoll ist bei der üblichen Arbeitsweise mit mehreren Fenstern auf dem Schirm kein Luxus. Weder vor noch hinter dem Benutzer sollen starke Lichtquellen leuchten. Das bedeutet auch, dass die Blickrichtung möglichst parallel zu einem etwaigen Fenster verläuft. Spiegelungen auf dem Schirm sind zu vermeiden. Der Blick auf die Bildschirm-Mitte soll leicht nach unten gehen. Die Unterarme sollen, wenn die Finger auf der Tastatur aufliegen, annähernd horizontal liegen. In Sekretariaten wird die deutsche Tasten-Anordnung (qwertz) bevorzugt, von Programmierern die amerikanische (qwerty). Benutzer, die sowohl mit Mäusen wie mit Rollkugeln (trackball) gearbeitet haben, entscheiden sich meist für letztere. Der Rechner sei leise, Lärm nervt, auch wenn man es nicht sofort merkt. Lüfter kann man so konstruieren, dass man sie praktisch nicht hört (großer Durchmesser, niedrige Drehzahl). Platten sind schwieriger zu bändigen. Hohe Dreh- zahlen (über 7200/min) sind am Arbeitsplatz vom Übel und nur in Servern abseits der Arbeitsplätze akzeptabel. Räume mit Druckern lüften. Geräte nicht an die Hei- zung stellen. Pausen machen, bewegen. Es hat auch sein Gutes, wenn der Drucker in einem anderen Stockwerk steht. 1.2 Betriebssystem 5

Abbildung 1.2. Typischer, aber nicht vorbildlicher Arbeitsplatz. Gerade werden alte Tonbän- der auf CD übertragen.

1.2 Betriebssystem

In der frühen Kindheit der Rechner – vor 1950 – kannten die Maschinen kein Be- triebssystem. Die damaligen Rechner waren jedoch trotz ihrer gewaltigen räumli- chen Abmessungen logisch sehr einfach und übersichtlich aufgebaut. Die wenigen Benutzer kannten sozusagen jedes Bit persönlich. Beim Programmieren musste man sich auch um die Bits einzeln kümmern. Nach heutiger Sprechweise enthielt jedes Programm sein eigenes Betriebssystem. Die Programmierer waren damals schon so arbeitsscheu (effektivitätsbewusst) wie heute und erkannten bald, dass dieses Vorgehen nicht zweckmäßig war. Viele Programmteile wiederholten sich in jeder Anwendung. Man fasste diese Teile auf einem besonderen Lochkartenstapel oder Lochstreifen zusammen, der als Vorspann zu jeder Anwendung eingelesen wurde. Der nächste Schritt war, den Vorspann nur noch nach dem Einschalten der Maschine einzulesen und im Speicher zu belassen. Damit war das Betriebssystem geboren und die Trennung von den einzelnen Anwen- dungen vollzogen. Heutige Rechner sind äußerlich nicht mehr so beeindruckend, aber logisch um Größenordnungenkomplexer. Dazu kommt die Vernetzung – lokal und weltweit. Da- mit ein Benutzer ohne Diplom in Informatik oder Elektrotechnik mit einem Rech- ner arbeiten kann, muss das Betriebssystem – die Grund-Software jedes Rechners – viele Einzelheiten verbergen. Neben koordinierenden und kontrollierenden Auf- gaben obliegen dem Betriebssystem die Verbindung zur Hardware mittels der Trei- ber und die Verwaltung der Prozesse und Daten. Genau gesprochen werden diese 6 1 Von der Hardware zur Anwendung

Kernaufgaben vom Kern (E: kernel, F: noyau) des Betriebssystems wahrgenommen. Unter Linux ist ebenso genau gesprochen nur der Linux-Kern zu verstehen. Deshalb reden wir von Debian GNU/Linux: die Debian-Distribution eines Linux-Kerns samt GNU-Software. Da der nackte Kern ziemlich hilflos ist, zählt man zum Betriebs- system im weiteren Sinn auch notwendige Konfigurationsdateien, einen Bootloader etc. FreeBSD, NetBSD, OpenBSD, MS Windows, Solaris, HP-UX, Mac OS X be- zeichnen vollständige Betriebssysteme, nicht nur Kerne.

Abbildung 1.3. Das GNU-Logo, der Kopf eines sorgengeplagten, aber dennoch hoffnungs- vollen Gnus, gezeichnet von ETIENNE SUVASA

Der Urahn aller Linux/UNIX-Betriebssysteme ist das Ende der sechziger Jah- re des vorigen Jahrhunderts von KENNETH THOMPSON und DENNIS RITCHIE in den Bell Laboratories des US-amerikanischen Telefonkonzerns AT&T entwickelten UNIX. Von diesem Ur-UNIX sind viele Ideen und Konzepte in andere Betriebs- systeme einschließlich DOS eingeflossen. Es würde zu weit führen, hier die Ent- wicklung, das Auseinanderdriften und Zusammenfinden der verschiedenen Zweige zu schildern2.DerGeschichte von Unix ist ein eigener Artikel in der deutschen Wi- kipedia gewidmet. Wir gebrauchen die Bezeichnung Linux/UNIX für die Gattung aller UNIX-ähnlichen Betriebssysteme, die sowohl freie (GNU/Linux, FreeBSD, OpenBSD,NetBSD...) wiekommerzielleSysteme(HP-UX,AIX,Sinix,Solaris, Ultrix...) umfasst.VieleAussagenimBuchtreffenaufdieGattungzu,einigeda- gegen nur auf eine bestimmte Version (z. B. sarge) von Debian GNU/Linux. POSIX ist kein Betriebssystem, sondern ein umfangreicher Standard, der die Anforderungen an POSIX-konforme Betriebssysteme festlegt (http://www. opengroup.org/). Debian GNU/Linux entwickelt sich auf die POSIX-Vorgaben zu. Ein ähnliches Ziel verfolgt The Single UNIX Specification (http://www. unix.org/online.html) und speziell in der Linux-Welt die Linux Standard Base (http://www.linuxbase.org/). Die Gnus (Connochaetes) sind eine Antilopenart in Süd- und Ostafrika, von den Buren Wildebeest genannt. Nach ALFRED BREHM sind es höchst absonder- liche, gesellig lebende Tiere, in deren Wesen etwas Komisches, Feuriges, Über- spanntes steckt. Das GNU-Projekt der Free Software Foundation (http://www.

2Eine authentische Zusammenfassung der Anfänge findet sich in The Bell System Techni- cal Journal Vol. 57, July-August 1978, Nr. 6, Part 2, Seite 1897 bis 2312 1.2 Betriebssystem 7 fsf.org/) wurde 1984 von RICHARD MATTHEW STALLMAN (RMS) ins Le- ben gerufen mit dem Ziel, Software ohne Einschränkungen vor allem juristischer Art aller Welt zur Verfügung zu stellen. Das Projekt hat sich den Kopf eines Gnus zum Erkennungszeichen gewählt, gezeichnet von ETIENNE SUVASA, siehe Abbil- dung 1.3. Linux geht auf LINUS BENEDICT TORVALDS zurück, der 1991 als Stu- dent in Helsinki mit dem Intel-Prozessor 80386 herumspielte. Der bekannte gut genährte Pinguin namens TUX – siehe Abbildung 1.4 – wurde 1996 von LAR- RY EWING gezeichnet (http://www.isc.tamu.edu/~lewing/linux/). Auch http://sjbaker.org/tux/ enthält Material zu dem Vogel.

Abbildung 1.4. Tux, der wohlgenährte Pinguin, das Linux-Logo, gezeichnet von L. EWING

Ein Benutzer könnte sich den Linux-Kern von http://www.kernel.org/ und weitere Software vom GNU-Projekt (http://www.gnu.org/)sowieaus anderen Quellen herunterladen und daraus ein arbeitsfähiges Betriebssystem samt Anwendungen zusammenbasteln. Das ist sehr viel Arbeit, nicht trivial und außer- dem mit dem Zwang verbunden, sich in kurzen Zeitabständen um neue Versio- nen der Software zu kümmern. Deshalb übernehmen Firmen oder Organisationen die Arbeit und stellen Distributionen zusammen, mit denen vergleichsweise ein- fach ein lauffähiges System auf einem Rechner eingerichtet werden kann. Weltweit sind einige hundert Distributionen entstanden und teilweise wieder vergangen. Das Debian-Projekt – im Jahr 1993 von IAN MURDOCK ins Leben gerufen – ist ei- ne solche (lockere) Organisation oder Gemeinschaft von freiwilligen, unbezahlten und unbezahlbaren Mitarbeitern. Die Debian-Distribution weist unserer Meinung nach einige Vorzüge auf; sie werden bei GANTEN +ALEX ausführlich erläutert. Als Erkennungszeichen verwendet Debian den in Abbildung 1.5 dargestellten Swirl in verschiedenen Formen, einen Flaschengeist. Das englische Wort swirl bedeutet Wirbel, Spirale. Auf Debian bauen weitere Distributionen wie Knoppix (http: //www.knopper.net/), Ubuntu (http://ubuntulinux.org/) und User- Linux (http://www.userlinux.com/) auf. Sie wenden sich an bestimmte Benutzerkreise und konfigurieren die Pakete zum Teil vor. Der Erfolg von Linux, dem GNU-Projekt und anderer freier oder offener Softwa- re wie dem X Window System beeinträchtigt die Gewinnaussichten einiger Firmen oder ganzer Industriezweige. Die Bestrebungen, durch Softwarepatente, Ausweitun- gen des Urheberrechtes, Kriminalisierung von Kryptanalysen und Androhung kost- spieliger juristischer Schritte gegen Privatpersonen oder kleine Firmen die weitere Ausbreitung freier Software zu verhindern und die Macht etablierter Firmen zu fes- 8 1 Von der Hardware zur Anwendung tigen, verlangen im Umgang mit Software heute eine gewisse Vorsicht. Manchen Regierungen kommt die Angst ihrer Untertanen vor Terroristen gelegen, um Infor- mationen über alles und jeden zu sammeln. In einem bekannten deutschen Magazin für Computertechnik sind mittlerweile in jeder Ausgabe mehrere Seiten juristischen Fragen gewidmet.

Abbildung 1.5. Das Debian-Logo, der dunkelrote Swirl

Hardware plus Betriebssystem machen den Rechner aus, wobei das Betriebs- system innerhalb der durch die Hardware gezogenen Grenzen die Eigenschaften des Rechners bestimmt. PC-Hardware mit einem DOS-Betriebssystem ergibt einen DOS-Rechner. Dieselbe Hardware mit einem Linux/UNIX-Betriebssystem ergibt einen Linux/UNIX-Rechner mit erheblich erweiterten Fähigkeiten. Beispielsweise kennt ein DOS-Rechner keine verschiedenen Benutzer; wer davor sitzt, ist der Benut- zer und darf alles. Linux/UNIX-Betriebssysteme hingegen sind immer Mehrbenut- zersysteme. Ein Benutzer muss sich mit Benutzernamen und Passwort anmelden und darf – mit Ausnahme des Verwalters (root) – bei weitem nicht alles. Nur so können mehrere Benutzer auf einer Maschine arbeiten, ohne sich ins Gehege zu kommen, und das sogar gleichzeitig. Zu einem Zeitpunkt kann auf einem Rechner nur ein Betriebssystem laufen. Will ich dieses wechseln – beispielsweise von Debian GNU/Linux auf MacOS – muss ich den Betrieb beenden, den Rechner herunterfahren und das neue System laden3. Anwendungsprogramme (E: application, F: application) dagegen werden im laufen- den Betrieb gestartet und beendet, ohne dass der Rechner heruntergefahren wird. Üblicherweise werden auch mehrere Anwendungen gleichzeitig auf einem Rechner ausgeführt. Beendet ein Benutzer seine Sitzung, laufen alle nicht zur Sitzung gehö- renden Prozesse auf dem Rechner weiter. Auf einem Linux/UNIX-System sind beim Start und ebenso bei Feierabend drei Vorgänge zu unterscheiden: • Strom einschalten (den Big Red Switch umlegen), • Betriebssystem starten (booten, E: to boot, F: amorcer), • Sitzung eröffnen (anmelden, einloggen),

3Es gibt Über-Betriebssysteme, die auf einer Hardware ausreichender Leistung mehre- re virtuelle Rechner mit jeweils eigenem Betriebssystem einrichten. Suchbegriffe User Mo- de Linux, VMware, Virtual Server, IBM Sysplex, Xen (http://www.cl.cam.ac.uk/ Research/SRG/netos/xen/ und http://xen.sf.net/). 1.3 Benutzeroberflächen 9

• +++ Arbeiten +++ • Sitzung beenden (abmelden, ausloggen), • Rechner herunterfahren (shutdown), • Strom ausschalten. Die ersten und letzten beiden Punkte sind Aufgabe des Verwalters, die Sitzung ist Sache des jeweiligen Benutzers. Zieht man mitten in einer Sitzung den Stecker oder bleibt der Strom aus anderen Gründen weg, können einige Daten verloren gehen. Ein größerer Schaden sollte nicht entstehen, aber für die Gesundheit des Systems ist ein solch brutales Ende nie gut. Ein Kaltstart umfasst die ersten beiden Punkte, ein Warmstart (reboot) besteht in einem erneuten Start des Betriebssystems bei ein- geschalteter Maschine. Ein sanfter Warmstart wird durch das Kommando reboot oder – sofern konfiguriert, siehe /etc/inittab – durch die Tastenkombination -- ausgelöst. Einen brutalen Warmstart ohne Sichern von Puffer-Inhalten erzwingt man durch Drücken des Reset-Knopfes am PC-Gehäuse. Wenn auch das nichts hilft (vielleicht ist der Knopf nicht angeschlossen), kann man nur noch das Stromkabel ziehen. Verfügt der Rechner über eine eingebaute Strom- versorgung (USV, UPS), wehrt er sich eine Zeit lang auch dagegen.

1.3 Benutzeroberflächen

1.3.1 Kommandozeile, curses-Fenster

Unter einer Benutzer-Oberfläche (E: user interface, F: interface utilisateur) versteht man nicht die Haut, aus der man nicht heraus kann, sondern die Art, wie sich ein Terminal (Bildschirm + Tastatur + Maus oder Rollkugel) dem Benutzer darstellt, wie es ausschaut (look) und wie es auf Eingaben antwortet (feel). Im einfachsten Fall besteht die Oberfläche aus einem Textterminal, oft auch Konsole genannt. Wenn Sie mit einer grafischen Benutzer-Oberfläche arbeiten, müssen Sie ein Fenster öffnen, das , Konsole, Terminal, Befehlsfenster, X-Shell oder ähnlich heißt, um an eine Konsole zu gelangen. Linux bietet aber auch die Möglichkeit, mittels der Tastenkombination -- (unter X11, bis )eine virtuelle Konsole auf den Schirm zu bringen. Die Eingabe von - oder -- führt zur grafischen Oberfläche von X11 zurück. Nach Anmeldung mit Benutzername (E: user name, F: nom de utilisateru) und Passwort (E: password, F: mot de passe) erscheint auf der Konsole der Systemprompt (F: invite), meist ein Dollarzeichen und rechts daneben ein blinkender Cursor. Damit teilt das System mit, dass es auf Ihre Eingaben wartet. Im einfachsten Fall tippt man seine Kommandos zeilenweise ein und schickt sie jeweils mit der Taste ab. Die Ausgabe des Systems erfolgt auf den Bildschirm, als Text Zeile für Zeile nach- einander. Die Grundform einer Linux/UNIX-Kommandozeile (E: command line, F: ligne de commande) sieht so aus: joe@debian:~$ kommando -option argument 10 1 Von der Hardware zur Anwendung

Leerzeichen trennen die Teile voneinander, dürfen also nicht innerhalb eines Kommando-Namens, einer Option oder eines Argumentes vorkommen. Optionen können, müssen aber nicht gesetzt werden. Sie modifizieren das Verhalten des Kom- mandos. Argumente sind Dateinamen oder dergleichen. Beendet und abgeschickt wird das Kommando mit der Taste , genauer gesagt mit einem Steuerzeichen (control operator) der Shell. Diese Art der Eingabe heißt Kommandozeile. Sie stellt die geringsten Anforderungen an Hard- und Software und ist mit Einschränkungen sogar auf druckenden Terminals (ohne Bildschirm) möglich. Für Vorleseprogram- me (Screenreader) blinder Benutzer ist sie die einfachste Grundlage. Früher war die Kommandozeile die einzige Möglichkeit, eine Anwendung im Dialog mit dem Rech- ner zu starten. Statt Anwendung sagt man auch oft Werkzeug (E: tool, F: outil). Vom Benutzer verlangt die Kommandozeile die Kenntnis der einzugebenden Kommandos und das zielsichere Landen auf den richtigen Tasten. Die Komman- dos bieten kurze Hilfen an, die üblicherweise durch die Tasten (help) oder aufgerufen werden. Die Kommandozeile ist auch heute noch in Gebrauch und der einzige Weg, auf dem man jedes Kommando mit jeder Option und jedem Argument erreicht. Hinter den vielen Knöpfen und Menüs einer grafischen Benutzeroberfläche stecken oft Kommandozeilen. Bei Linux/UNIX-Kommandos ist es eine gute Gepflogenheit, dass sie fehlerhaft aufgerufen einen Hinweis zum richtigen Gebrauch (E: usage, F: usage) geben. Pro- bieren Sie folgende Eingaben aus, auch mit anderen Kommandos: joe@debian:~$ who -x

joe@debian:~$ who -?

joe@debian:~$ who --help Bei falschen Optionen oder fehlenden Argumenten reicht oft der Hinweis aus. Die Option mit zwei Minuszeichen davor stellt die Langform einer Option dar, unter Linux gebräuchlich, aber nicht überall verfügbar. Mehr erfährt man auf der zum Kommando gehörenden Manualseite, siehe Abschnitt 1.5 Hilfen auf Seite 36. Ein erster Schritt in Richtung Benutzerfreundlichkeit ist die Verwendung von Menüs. Die erlaubten Eingaben werden in Form einer Liste – einem Menü – ange- boten, der Benutzer wählt durch Eintippen eines Zeichens oder durch entsprechende Positionierung des Cursors die gewünschte Eingabe aus. Menüs haben zwei Vortei- le. Der Benutzer sieht, was erlaubt ist, und macht bei der Eingabe kaum syntaktische Fehler. Nachteilig ist die beschränkte Größe der Menüs. Man kann nicht mehrere hundert Linux/UNIX-Kommandos mit jeweils mehreren Optionen in ein Menü pa- cken. Ein Ausweg – in Grenzen – sind Menü-Hierarchien, die auf höchstens drei Ebenen begrenzt werden sollen, um übersichtlich zu bleiben. Einfache Menüs ohne Grafik und Mausunterstützung stellen ebenfalls nur geringe Anforderungen an Hard- und Software. Für den ungeübten Benutzer sind Menüs eine Hilfe, für den geübten ein Hinder- nis und eine Bevormundung. Zu den am häufigsten ausgewählten Punkten müssen 1.3 Benutzeroberflächen 11 kurze Wege führen. Es können Defaults4 vorgegeben sein, die durch Eingabe von ohne weitere Zeichen übernommen werden. Tief in Menühierarchien verbud- delte Anweisungen lassen sich teilweise unmittelbar durch Tastenkombinationen wie - erreichen. Solche abgekürzten Wege werden Shortcuts genannt. Bildschirme lassen sich in mehrere Ausschnitte aufteilen, die Fenster (E: win- dow, F: fenêtre) genannt werden. In der oberen Bildschirmhälfte beispielsweise könnte man bei einem Dialog zwischen zwei Benutzern mittels talk den eige- nen Text darstellen, in der unteren die Antworten des Gegenübers. Bei der Ein- richtung von Debian GNU/Linux wird von solchen einfachen alphanumerischen Fenstern mehrmals Gebrauch gemacht. An die Hardware werden keine besonde- ren Anforderungen gestellt, ein alphanumerischer Bildschirm mit der Möglichkeit der Cursor-Positionierung mittels Pfeiltasten, Maus oder Rollkugel reicht aus. Eini- ge Linux/UNIX-Anwendungen benutzen ebenfalls diese schmucklosen Textfenster und verlangen daher nicht als Grundlage das X Window System. Nach der bei der Programmierung solcher Anwendungen verwendeten Funktionsbibliothek (curses oder ncurses) werden solche Fenster als curses-Fenster bezeichnet. Die curses- Funktionen müssen den Terminaltyp (xterm, hpterm, vt52, ansi) kennen und werten zu diesem Behuf die Umgebungsvariable TERM aus. Ist sie falsch gesetzt, zeigt sich das Terminal widerspenstig.

1.3.2 X Window System (X11)

Was ist das X Window System (X11)?

Das X Window System (nicht Windows, das ist eine andere Baustelle) ist ein • quelloffenes, • grafisches, • von der Hardware unabhängiges, • netzfähiges Fenstersystem, das um 1984 am Massachusetts Institute of Technology (MIT) im Athena-Projekt entwickelt wurde und frei verfügbar ist. Im Jahr 1987 wurde die Ver- sion 11 Release 1 veröffentlicht. Weitere korrekte Bezeichnungen sind X Version 11, X11 oder X, gegenwärtig im sechsten Release auch X11R6. Heute wird es von der X.Org Foundation (http://www.x.org/) betreut. Unter X11, so wie man es dort beziehen kann, hat man sich Funktionsbibliotheken und einige Musteranwen- dungen vorzustellen. Falls auf Ihrem Rechner X11 eingerichtet ist, heißt das, dass ein X-Server und X- Bibliotheken bei Ihnen gespeichert sind und Programme davon Gebrauch machen können. Auf Arbeitsplätzen unter Linux/UNIX ist X11 heute die Regel. Beim Linux Documentation Project liegen ein X Window Overview HOWTO und ein X Window User HOWTO. Im Xerox Palo Alto Research Center wurde die Verwendung von alphanumeri- schen Menüs und Fenstern weiterentwickelt zu einer grafischen Benutzeroberfläche

4Ein Default oder Defaultwert ist ein vom System oder Programm vorgeschlagener Wert, der verwendet wird, wenn nichts anderes verlangt wird. 12 1 Von der Hardware zur Anwendung

(E: graphical user interface, GUI, F: interface utilisateur graphique), welche die Ar- beitsweise des Benutzers wesentlich bestimmt. Viele jüngere Benutzer kennen nichts anderes. Grafisch bedeutet, dass auf dem Bildschirm nicht nur die Zeichen eines Al- phabets, sondern beliebige Figuren dargestellt werden können; im Wesentlichen ist das eine Frage der Elektronik hinter dem Bildschirm. Diese grafische Fenstertechnik ist von Programmen wie SMALLTALK, von MS Windows sowie von Computerher- stellern wie Apple übernommen und verbreitet worden. Unter Linux/UNIX bildet X11 die Grundlage für alle grafischen Benutzeroberflächen. Von der Hardware unabhängig bedeutet, dass X11 nicht an eine Prozessor- Familie oder einen Hersteller gebunden, sondern im Quellcode veröffentlicht ist. In den Anfangsjahren von X11 war erschwingliche Hardware nicht leistungsfähig ge- nug, sodass sich das System nur langsam verbreitete. Mit den heutigen Prozessoren und Speicherkapazitäten sind die Ansprüche von X11 jedoch leicht zu erfüllen. Nur wer einen alten PC mit einem Prozessor-Takt von 100 MHz und einem Arbeitsspei- cher von 32 MB unter Debian GNU/Linux wiederbeleben will, sollte auf X11 und alles, was darauf aufsetzt, verzichten. Typischerweise laufen Server im Netz ohne X11, weil sie keinen Bedarf dafür haben. Die Netzfähigkeit zeichnet X11 vor allen anderen grafischen Fenstersystemen auf dem Markt aus. Netzfähig bedeutet, dass die Rechnungen (die Client-Prozesse) auf einer Maschine im Netz laufen können, während die Terminal-Ein- und -Ausgabe (der Server-Prozess) über eine andere Maschine im Netz erfolgen (Client-Server- Modell). Die gesamte Anwendung kann auf zwei Maschinen – sogar unterschiedli- cher Hersteller – verteilt werden, siehe Abbildung 1.6. X11-Client und X11-Server verständigen sich mit Hilfe des X11-Protokolls (das nichts mit dem Internet und sei- nen Protokollen zu tun hat). Ein Client ist ein Prozess, der Dienste verlangt, ein Server (F: serveur) ein Pro- zess, der Dienste leistet. Die Trennung einer Aufgabe in einen Client- und einen Server-Teil erhöht die Flexibilität und ermöglicht das Arbeiten über Netz. In der Linux-Welt ist der freie X-Server XFree86 (http://xfree86.berlios.de/) verbreitet. Weitere X-Server – meist nur für bestimmte Grafikkarten – findet man in den Debian-Paketlisten, indem man nach xserver sucht. Ein X-Server wird ergänzt durch einen X-Printer, der die Ausgabe für einen Drucker anstelle des Bild- schirms vorbereitet. Möglicherweise wird die X-Printer-Funktionalität künftig in den X-Server integriert. Man muss sich darüber klar sein, dass die X11-Daten ohne zusätzliche Maß- nahmen unverschlüsselt über das Netz gehen und abgehört oder verfälscht werden können. X11 enthält nur minimale Sicherheitsvorkehrungen. Bestehen diesbezügli- che Bedenken, ist der Netzverkehr zu verschlüsseln, beispielsweise über SSH, siehe Abschnitt 3.6 Secure Shell auf Seite 110. Wer tiefer in X11 eindringen möchte, beginnt am besten mit man X und geht dann zu http://x.org/ und http://www.camb.opengroup.org/ tech/desktop/x/ ins Web. Es gibt auch HOWTOs zu X11 und XFree86 im Verzeichnis /usr/share/doc/HOWTO/. Da an einer vollständigen Anwendung unter X11 mehrere Softwareschichten (Bibliotheken) beteiligt sind, ist es manchmal schwierig herauszufinden, wo eine Einstellung oder ein Fehler zu suchen ist. Die 1.3 Benutzeroberflächen 13

Komplexität von X11 erreicht die eines Betriebssystems; man braucht einige Zeit, bis man das Meiste versteht. Zum Glück kommt ein anspruchsloser Benutzer ziem- lich weit, ohne etwas von X11 zu wissen.

Start von X11

Gestartet wird der X-Server von Hand aus der Kommandozeile mit dem Kom- mando startx (dahinter verbirgt sich xinit) oder automatisch beim Sys- temstart durch einen Desktop- oder Display-Manager (Login-Manager) wie gdm, kdm, wdm oder xdm. Die Auswahl wird vom Verwalter getroffen und in /etc/X11/default-display-manager festgelegt. Ein Display-Manager schreibt den Login-Bildschirm (siehe Abbildung 1.18 auf Seite 43), nimmt Be- nutzernamen und Passwort entgegen und startet bei Erfolg einen Fenster-Manager (Window Manager). Bei diesen hat der Benutzer eine Auswahl. X11 stellt die Funktionen bereit, um grafische Benutzeroberflächen zu gestal- ten, legt aber das Aussehen und das Verhalten der Oberfläche nur in Grundzügen fest. Die Einzelheiten der Oberfläche sind Sache besonderer Funktionsbibliothe- ken wie Motif bzw. bestimmter Programme, der Fenster-Manager, die nicht immer Bestandteil von X11 sind und teilweise auch Geld kosten. Der in X11 enthalte- ne Fenster-Manager ist der Tab-Window-Manager twm, Hewlett-Packard fügt sei- nen Systemen den Motif-Fenster-Manager mwm bei, unter Linux/UNIX findet sich der Win95-Fenster-Manager fvwm (F* Virtual Window Manager, http://www. fvwm.org/), dessen Fenster an MS Windows 95 erinnern. Das K Desktop En- vironment (KDE) bringt den kwm mit. Aus dem GNU-Project stammt der schlan- ke und stabile WindowMaker, enthalten im Debian-Paket wmaker (http://www. windowmaker.org/). Der WindowMaker kennt das Dock, eine Leiste von Icons, hinter denen sich kleine Programme, die Dock Applications (Dockapps), verber- gen, die im Hintergrund laufen. Fluxbox ist ein weiterer Fenster-Manager mit ei- nem Dock. Ein mächtiger, anpassungsfähiger Fenster-Manager ist Enlightenment (http://www.enlightenment.org/). Es gibt zahlreiche (zu viele) weitere Fenster-Manager, siehe die Debian-Paketlisten, Abteilung X Window System Soft- ware. Ein Fenster-Manager ist in der Regel der erste X-Client einer Sitzung und bestimmt zu einem wesentlichen Teil das Aussehen und Verhalten (look and feel) von Bildschirm, Tastatur und Maus bzw. Rollkugel.

Desktop Environments

Was der Fenster-Manager an Gestaltungsmöglichkeiten offen lässt, regelt das , kurz Desktop genannt. Praktisch arbeitet man nicht ohne einen Desktop. Auch hier stehen unter Linux/UNIX mehrere zur Auswahl: • das kommerzielle Common Desktop Environment (CDE, http://www. opengroup.org/cde/), das auf OSF/Motif aufsetzt, • das freie GNU Network Object Model Environment (GNOME, http://www. gnome.org/, http://www.gnome.de/), 14 1 Von der Hardware zur Anwendung

• das freie K Desktop Environment (KDE, http://www.kde.org/, http://www.kde.org.uk/, http://www.kde.org/fr/, http: //www.kde-france.org/ und weitere), • GNUstep, ein Desktop und eine Entwicklungsumgebung mit Wurzeln in NeXT/Apple und der OpenStep-Spezifikation, http://www.gnustep.org, • das Cholesterol Free Desktop Environment (, http://www.xfce. org/). Das Common Desktop Environment entstand aus gemeinsamer Arbeit der Firmen Hewlett-Packard, IBM, Novell und Sun. GNUstep zeigt infolge seiner Herkunft An- klänge an Mac OS X und Cocoa. Es bringt keinen eigenen Fenster-Manager mit, sondern empfiehlt den WindowMaker, siehe oben. XFce versucht, weniger gewich- tig als die anderen Desktops zu sein. Die beiden für uns bedeutendsten Desktops KDE und GNOME unterscheiden sich in vielerlei Hinsicht, arbeiten aber zusam- men, soweit das möglich ist. Sie gründen sich auf verschiedene höhere Funktionsbi- bliotheken: GNOME setzt auf GTK+ (http://www.gtk.org/, entstanden als GIMP Toolkit), KDE auf von Trolltech (hhtp://www.trolltech.com/) in Norwegen. Es bestehen Unterschiede in der Lizensierung, die aber den Anwender nicht betreffen. Beide Environments lassen sich so konfigurieren, dass ein Benutzer kaum einen Unterschied sieht. Trotzdem hat man es einfacher, wenn man Fenster- Manager, Desktop und desktop-bezogene Anwendungen im wesentlichen nur aus einer der beiden Welten bezieht. Die Trennung der Aufgaben zwischen Fenster-Manager, Desktop und Anwen- dungen wie einem Datei-Manager ist uneinheitlich, konfigurierbar und daher un- übersichtlich. Ein Benutzer kann am Anfang nicht viel mehr tun, als sich an seine Einstellungen zu gewöhnen und sie Schritt für Schritt zu optimieren. Für viele Be- nutzer reicht das aus.

X11 über ein Netz

Zum Arbeiten mit X11 über ein Netz muss der Benutzer vor allem zwei Kommandos kennen. Auf der Maschine, vor der er sitzt (wo seine Sitzung läuft, der X-Server), gibt er mit: joe@debian:~$ xhost abcd der fernen Maschine namens abcd (wo seine Anwendung läuft, der X-Client) die Erlaubnis zum Zugriff. Das Kommando ohne Argument zeigt die augenblicklichen Einstellungen an. Die Antwort auf xhost sollte beginnen mit Access control enab- led, andernfalls wäre es angebracht, mit dem Verwalter über die Sicherheit von X11 zu diskutieren, Auf der fernen Maschine abcd setzt man mit joe@debian:~$ export DISPLAY=efgh:0.0 die Umgebungsvariable DISPLAY auf den Maschinennamen efgh und die Fenster- nummer 0.0 des X-Servers. Erst dann kann ein Client-Programm, eine Anwendung 1.3 Benutzeroberflächen 15

Host 1 Host 2

X−Client 1 X−Client 2 X−Client 3

Switch

Host4 X−Server 2 Host 3 Fenster 1 Fenster 2 X−Server 1 X−Client 4

Abbildung 1.6. X-Window-Clients und -Server, durch einen Ethernet-Switch verbunden. Vier X-Clients wickeln ihre Ein/Ausgabe über zwei X-Server ab.

über das Netz den X-Server zur Ein- und Ausgabe nutzen. Die Fensternummer be- steht aus Displaynummer und Screennummer und hat nur auf Maschinen mit meh- reren Terminals auch Werte größer null.

Abbildung 1.7. Screenshot (Ausschnitt) zweier Uhren, eine läuft lokal, die andere als X- Client auf einem entfernten Rechner. Leider sind bei der Netzverkabelung zwei Adern ver- tauscht, sodass die entfernte Uhr links herum läuft. :-)