14 Architektur
»Ich stehe Statistiken etwas skeptisch gegenüber.
Denn laut Statistik haben ein Millionär und ein armer Kerl
jeder eine halbe Million.«
Franklin Delano Roosevelt (1882–1945),
32. Präsident der USA
Was Sie in diesem Kapitel erwartet
Ganz zu Beginn dieses Buchs habe ich schon einmal kurz erwähnt, wie Linux im Allgemeinen aufgebaut ist. Hier wagen wir nun einen etwas tieferen Blick ins System und schauen uns Ubuntu im Detail an. Dieses Kapitel ist für den Leser mit Interesse und Vorkenntnissen gedacht, der die Grundlagen von Ubuntu bereits beherrscht und noch detaillierter verstehen möchte, wie die Zahnräder von Linux und Ubuntu ineinandergreifen.
Das Dateisystem von Linux ist hierarchisch angeordnet und entspricht daher nicht demjenigen von Windows. Den systematischen Aufbau des Dateisystems und den Umgang mit Dateien erläutere ich in diesem Kapitel. Der Systemstart, das sogenannte Booten, umfasst eine Fülle von Prozessen und Diensten, die sehr viele Informationen ausgeben. Diese können eine sehr große Hilfe sein, wenn das System nicht so will, wie Sie es sich vorstellen. Sollten Sie einmal ein Programm benötigen, das noch nicht Eingang ins Ubuntu-System gefunden hat, so können Sie sich hier darüber informieren, wie Sie Software aus Quellpaketen zusammenbauen und in das System integrieren. Wie Sie Ihr eigenes, maßgeschneidertes Betriebssystem durch das Anpassen und Kompilieren eines eigenen Kernels erhalten, wird ebenfalls erläutert.
Für eine erfolgreiche Installation und »Erkundung« Ihres neuen Linux-Systems sind diese Grundlagen nicht essentiell, für das Verständnis des Systems sind sie jedoch unverzichtbar. Sie sind größtenteils natürlich nicht Ubuntu-spezifisch, sondern gelten für alle Linux-Distributionen.
Benötigtes Vorwissen
Es sind Kenntnisse im Umgang mit dem Terminal nötig (siehe Abschnitt, »Das Terminal – sinnvoll oder überflüssig?«).
Überblick
Wie so oft stellt sich das Problem: Wo fange ich an, und wo höre ich auf? Selbst mit dem detaillierten Aufbau eines Kernels (des Betriebssystemkerns) kann man spielend ein ganzes Buch füllen. Es ergibt also wenig Sinn, derart tief in die Materie einzusteigen. Sie sollen nach der Lektüre in erster Linie verstehen, wie ein Linux-System prinzipiell funktioniert und wo Sie bestimmte Dateien im Verzeichnisbaum finden. Auch mit dem Systemstart und dem Einbinden von Modulen und Treibern werden wir uns beschäftigen.
Ein besonderes Anliegen ist mir, Ihnen die Verunsicherung zu nehmen, wenn Sie sich das erste Mal mit Linux befassen. Hierzu benötigen Sie allerdings einige theoretische Grundlagen, die Ihnen den Unterschied zwischen den beiden Betriebssystem-Welten Microsoft und Linux verdeutlichen. Sie werden abschließend wissen, warum Linux ein wesentlich moderneres Betriebssystem als Windows ist. Die Mühe des Lernens lohnt sich also. Ich hoffe, dass ich mit diesem Anliegen die »alten Linux-Hasen« nicht allzu sehr langweile, und verweise sie auf spezifische Techniken, die Ubuntu eingeführt hat, zum Beispiel Upstart, den Ersatz von Sys-V-init.
Dieses Kapitel befasst sich hauptsächlich mit den folgenden drei Themengebieten:
- Dateisystem
Zu Beginn werden wir uns die Grundlagen und die Administration des Dateisystems ansehen. - Systemstart
In diesem Abschnitt beschäftigen wir uns intensiv mit dem Startprozess von Ubuntu. Sie erfahren hier Details über die verwendeten Techniken und lernen, wie Sie GRUB an Ihre Bedürfnisse anpassen. - Kernel und Module
Im letzten Abschnitt schließlich werfen wir einen Blick auf den Kernel. Sie lernen hier den Aufbau des Kernels und den Umgang mit Kernel-Modulen kennen.
Um diese Grundlagen allerdings zu verstehen, ist es hilfreich, wenn wir uns zu Beginn mit dem Betriebssystem an sich beschäftigen.
14.1 Betriebssysteme
Linux wird als »Betriebssystem« eines Computers bezeichnet. Streng genommen ist Linux nur der Kernel (der Kern) eines Betriebssystems. Hierauf werde ich in Abschnitt 14.9, »Kernel und Module«, näher eingehen. Um allerdings zu verstehen, was Linux überhaupt ist, müssen Sie sich klarmachen, was genau ein Betriebssystem ist und wie es aufgebaut ist.
Also beginnen wir auf den folgenden Seiten mit diesem Thema. Ich werde hierbei nicht ins Detail gehen, denn allein über den detaillierten Aufbau eines Betriebssystems kann man ganze Romane schreiben. Trotz allem halte ich es für sinnvoll, dass Sie den grundlegenden Aufbau des Systems kennen, das für den Betrieb Ihres Computers zuständig ist. Des Weiteren wollen wir einen großen Vorteil von Linux nutzen und seine Vorgehensweisen näher betrachten.
Wenn Sie aus verschiedenen Gründen kein Interesse an der Funktionsweise eines Betriebssystems haben, dann können Sie dieses Kapitel natürlich überspringen. Es soll ja schließlich Menschen geben, die ihren Computer zum Arbeiten benutzen und nicht als Hobby betrachten. Ich habe hierfür volles Verständnis.
Macht und Verantwortung
Ein Computer ist normalerweise keine Blackbox, die ihre Arbeitsweise vor Ihnen versteckt, auch wenn andere Betriebssysteme wie Windows diesen Anschein erwecken. Linux ist aus verschiedenen Perspektiven gesehen offen. Es ist eben auch offen, indem es Ihnen völligen Zugang gewährt. Sie können bei Bedarf alle wichtigen Abläufe beeinflussen und haben somit totale Kontrolle über das System. Normalerweise müssen Sie aber nicht in die Tiefen des Betriebssystems hinabsteigen, denn Sie können hier natürlich auch viel Schaden anrichten.
Sie tragen eine große Verantwortung, wenn Sie ein System administrieren und konfigurieren(d. h. kontrollieren und einrichten). Wenn Sie den heimischen Familien-PC oder einen wichtigen Arbeitsplatzrechner administrieren, dann gehen Sie bei Änderungen an Ihrem Betriebssystem bitte behutsam zu Werke, denn andere Benutzer sind auf Ihre Arbeit angewiesen.
Nur durch ein Betriebssystem sind Sie überhaupt in der Lage, Programme zu installieren oder den Computer zu Aufgaben zu bewegen, wie zum Beispiel eine Datei zu öffnen und zu schließen, einen Brief zu schreiben und ähnlich verrückte Dinge zu tun.
Kontrolle aller Prozesse
Es ist ein grundlegendes System, das alle Prozesse, die auf Ihrem Computer stattfinden, koordiniert und steuert – ein System also, das den Betrieb Ihres Computers organisiert. Ohne funktionsfähiges Betriebssystem ist Ihr Computer nur tote Materie und wird niemals das tun, was Sie von ihm verlangen. Andere Programme wie eine Textverarbeitung usw. werden zusätzlich in dieses System installiert. Das Betriebssystem ist sozusagen das Nest, in das sich alle anderen Programme einnisten.
Ein optimales Betriebssystem ist eigentlich etwas, das sich komplett vor Ihnen versteckt und mit dem Sie relativ wenig zu tun haben. Ein gutes Betriebssystem sorgt dafür, dass Sie einen möglichst reibungslosen Zugang zu den Programmen haben, die Sie zum Erledigen bestimmter Aufgaben benötigen.
Betriebssysteme überall
Betriebssysteme finden Sie überall in Ihrer Umgebung, zum Beispiel in Ihrem Mobiltelefon. Selbst moderne Autos können teilweise ohne funktionierendes Betriebssystem kaum noch bedient werden. Allzu oft bringt der Einsatz von neuen Techniken auch neue Probleme. Es bleibt zu hoffen, dass diese Probleme geringer sind als die ursächlich mit dem Computer zu lösenden. Ein weiser Nutzer hat es so ausgedrückt:
»Mit Computern löst man Probleme, die man ohne sie gar nicht hätte.«
Treffender kann man diesen Sachverhalt wohl nicht ausdrücken.
Microsoft Windows und Linux
Wenn Sie dieses Kapitel lesen, dann haben Sie wahrscheinlich noch recht wenig Kontakt mit Betriebssystemen gehabt, abgesehen vielleicht von Microsoft Windows. Sie haben mit Windows den Marktführer kennengelernt, der es geschickt verstanden hat, den Computer für jedermann bedienbar zu gestalten. Wir alle sind gewissermaßen mit Windows »aufgewachsen«.
Eine kleine Randbemerkung sei mir an dieser Stelle noch gestattet. Linux ist nicht allein ein System für elitäre Computernutzer, sondern ein System für jedermann und jedefrau. Der Umgang mit Linux ist nicht schwieriger zu erlernen als der mit Windows – er erfordert »nur« eine Umgewöhnung in der Herangehensweise. Viele Dinge laufen mit Linux anders, aber nicht zwangsläufig komplizierter. Nehmen Sie sich die Zeit und Muße, um Linux zu erlernen – ich verspreche Ihnen, dass es sich lohnen wird (aber das haben Sie zum jetzigen Zeitpunkt sicher schon bemerkt).
Arbeitsweise
Ein Betriebssystem fungiert nicht nur als Nest für Hard- und Software, sondern übernimmt auch die Verwaltung des Speichers und der laufenden Programme. Dies bedeutet, dass das Betriebssystem Prioritäten setzt und quasi als Manager für den reibungslosen Ablauf bei Ihrer Arbeit mit dem Computer sorgt.
In der Geschichte der elektronischen Datenverarbeitung hat es mehrere Ansätze für unterschiedliche Betriebssysteme gegeben. Unabhängig von Microsoft haben auch andere Firmen Betriebssysteme geschaffen. Zu den bekanntesten zählt – gerade beim derzeitigen Hype um iPod, iPad und Co. – sicher Apple, aber auch Commodore und Atari sollen hier nicht vergessen werden.
Dominanz von Windows
Es gibt heute auf dem Markt sehr viele verschiedene Betriebssysteme, aber eines dominiert alle anderen: Windows (Microsoft). Praktisch jeder Computerbesitzer kennt Windows. Auf nahezu 90 % aller weltweit verkauften Computer ist Windows vorinstalliert. Nun könnten Sie bei diesen Zahlen vermuten, dass Microsoft das Betriebssystem an sich, wenn nicht sogar den gesamten Computer, erfunden hat. Dies ist nicht der Fall. Diese Ehre gebührt anderen Firmen, deren Namen Sie vielleicht auch schon einmal gehört haben: IBM, Sun usw.
Microsoft hat es Mitte der 1980er Jahre gegenüber anderen Computerfirmen geschickt verstanden, Potential einzukaufen. Heute dominiert die Firma mit ihrer Software die gesamte Computerwelt. Wir werden uns nun Begriffe wie »UNIX« und »GNU« etwas detaillierter ansehen. Mit UNIX/GNU kann man allein schon ganze Bücher füllen, und deswegen betrachten wir hier nur die für das Verständnis von Linux relevanten Aspekte.
Aufbau
Jedes UNIX-System besitzt eine feste Struktur, die in Abbildung 14.1 dargestellt ist. Sie besteht aus vier Schichten, die wir im Folgenden genauer betrachten.
Abbildung 14.1 Die grundlegende Struktur eines UNIX-artigen Betriebssystems
Hardware
Die erste und damit grundlegende »Schicht« ist selbstverständlich die Hardware Ihres Computers, zu der beispielsweise der Prozessor gehört. Streng genommen handelt es sich natürlich nicht um eine für UNIX-Systeme spezifische Schicht, schließlich braucht jedes Betriebssystem eine Hardwarebasis. Trotz allem ist diese Basis hier aufgeführt, da UNIX eine besondere Art der Kommunikation mit der Hardware pflegt.
Kernel
Ich werde mich mit dem Kernel detailliert in Abschnitt 14.9, »Kernel und Module«, beschäftigen.
Shell und Utilitys
Die auf dem Kernel aufbauende Schicht besteht aus der Shell und den Utilitys. Die Shell ist hierbei das Fenster, durch das Sie das System beobachten und beeinflussen können. Die Shell ist die Schnittstelle zwischen Ihnen als Benutzer und dem System. Die Bedeutung der Shell können Sie erkennen, wenn Sie sich die Bedeutung des Begriffs »Shell« (zu Deutsch: »Schale«) vor Augen führen – sie bildet eine Schale für den Kern.
In der Shell geben Sie Kommandos ein. So schlicht dies klingt, so erschreckend ist es für einige Einsteiger. Viele sind schlichtweg verunsichert, wenn sie eine schwarze Box und einen weißen blinkenden Cursor darin vor sich haben. Eine solche Angst ist verständlich, da man dies aus der Welt von Windows nicht kennt. Sie ist aber unbegründet, wie Sie im Abschnitt »Das Terminal«, entnehmen können. Um dem System bequem Informationen zu entlocken oder ihm Kommandos zu geben, benutzen Sie die sogenannten Utilitys. Befehle wie cp oder ls sind solche kleinen nützlichen Programme.
Anwendungen und die Qual der Wahl
Die oberste Schicht, auf der sich der Benutzer meist aufhält, ist die Ebene der Anwendungen (Applications). Zu den Anwendungen gehören klassische Programme wie LibreOffice oder GIMP, aber auch Compiler wie der cc.
Sie haben bei Linux generell die Qual der Wahl. Für jeden Zweck und für fast jedes Programm gibt es zahlreiche Alternativen. Wenn Ihnen zum Beispiel die Standard-Shell nicht gefällt, dann nehmen Sie doch eine andere! Es gibt Dutzende, aber genau diese verwirrende Anzahl von Programmen und Bezeichnungen erschwert einem Linux-Neuling die Orientierung. Daran kränkelt besonders die Linux-Distribution von SUSE. Der Anfänger wird hier schon in der Standardinstallation mit Programmen überhäuft, deren Zweck sich ihm teilweise nie offenbaren wird. Bei Ubuntu hingegen wird Wert auf eine überschaubare Anzahl von Programmen gelegt. In Kapitel 7, »Programme und Pakete installieren«, finden Sie eine Übersicht der in Ubuntu und Kubuntu enthaltenen oder installierbaren Programme.
Ihr Kommentar
Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.