2. E I N O R D N U N G  

 2.1 Was ist Linux? Geschichte, Lizenzen, Distributionen
2.2 Abgrenzung Betriebssysteme
2.3 Aufgaben und Aufbau eines Betriebssystems
 

 2.1 Was ist Linux? Geschichte, Lizenzen, Distributionen  
 

Es soll hier zunächst einmal geklärt werden, was man unter dem Begriff "Linux" eigentlich versteht. Prinzipiell ist mit dem Begriff "Linux" nur der Kernel (allg. Betriebssystemkern) gemeint, also der Teil des Systems, der z.B. die Ressourcen für die laufenden Programme und die Anwender verwaltet. Obwohl der Kernel ein essentieller Teil des Systems ist, wäre er ohne zusätzliche Software nutzlos. Um diesen Kernel zu nutzen, ist weitere (teilweise sehr systemnahe) Software notwendig, also das eigentliche Betriebssystem. Beide Teile zusammen bilden ein vollwertiges Betriebssystem. Derzeit wird in den meisten Fällen die Software des GNU-Projektes in Verbindung mit dem Linux-Kernel verwendet. Heute sind beide Komponenten (der Linux-Kernel und die GNU-Betriebssoftware) kaum noch voneinander zu trennen. Korrekterweise müsste man also eigentlich, wenn man das Betriebssystem meint, von "GNU/Linux" sprechen, da hier immer der Kernel (Linux) und die Systemwerkzeuge (GNU) gemeinsam gemeint sind. Es hat sich allerdings heute eingebürgert, dass umgangssprachlich unter dem Begriff "Linux" die Kombination aus Kernel und Systemwerkzeugen gemeint ist, und wird in diesem Sinne auch in diesem Kurs verwendet.

Der wichtigste Unterschied gegenüber herkömmlichen Unix-Systemen besteht darin, dass Linux zusammen mit dem vollständigen Quellcode frei kopiert werden darf (Details dazu finden Sie im Abschnitt 2.1.2 GPL & Co). Einschränkungen in der Funktionalität gibt es dagegen kaum; Linux ist in vielerlei Beziehung besser als so manches teure Unix-System. Es unterstützt eine größere Palette von Hardware-Komponenten und enthält in vielen Bereichen effizienteren Code.

Wichtig für das Verständnis von Linux ist auch, dass es nicht das "eine Linux" gibt. Grund dafür sind eine Vielzahl sogenannter Distributoren (Details dazu in Kapitel 2.1.3 Distributionen). Dabei handelt es sich um unabhängige Organisationen, die zu den oben bereits genannten Komponenten von Linux zusätzliche Software sammeln, dies aufeinander abstimmen und dann vertreiben.

2.1.1. Die Geschichte von Linux

Nachdem Sie jetzt einen kleinen Einblick bekommen haben, was sich hinter dem Begriff "Linux" verbirgt, soll in diesem Abschnitt der Ursprung von Linux beleuchtet werden. Die Geschichte von Linux beginnt eigentlich im Jahre 1991. Um aber die Entstehungsgeschichte von Linux ganz zu verstehen, muss man sich in das Jahr 1969 begeben. Dieses Jahr war der Startschuss für das Betriebssystem Unix, dem Linux, wie bereits angedeutet, ziemlich ähnlich ist.

"Das Betriebsystem UNIX"

Unix entsprang ironischerweise einem gescheiterten Projekt: Zu Beginn des Jahres 1969 gab es ein Gemeinschaftsprojekt des Massachusetts Institute of Technology (MIT), General Electric und den Bell Labs von AT&T, dass Ideen für eine neue Generation von Betriebssystemen gesammelt hatte und daran ging diese Ideen unter dem Namen Multics umzusetzen. Da weder Zeitplan noch Budget eingehalten werden konnten, zog sich Bell Labs sehr schnell aus dem Projekt zurück.

Ken Thompson und Denis Ritchie, zwei Mitarbeiter von Bell Labs, die an Multics mitgearbeitet hatten, waren von den Einfällen und Erfahrungen, die sie mit Multics gesammelt hatten, so beeindruckt, dass sie kurzerhand eine abgespeckte Version des ursprünglichen Multics selbst schrieben und unter dem Namen Unics, später UNIX, in die Welt setzten. Witzigerweise war eine Hauptmotivationen für UNIX jedoch ein Spiel, das Thompson in seiner Freizeit geschrieben hatte. UNIX gewann sehr schnell eine große Verbreitung innerhalb der Bell Labs. AT&T war es aufgrund einer kartellgerichtlichen Entscheidung verwehrt beliebig im kommerziellen Feld tätig zu werden, so auch im Falle von UNIX. Stattdessen lizensierte AT&T UNIX gegen nominelle Gebühren an Universitäten, an denen UNIX seinen ersten Siegeszug antrat.

Eine besondere Rolle kam dabei der University of California in Berkeley zu, die einen eigenen Zweig des UNIX - Systems hervorgebracht hat, die Berkeley Software Distribution (BSD). Sie war eng mit dem Quellcode von AT&T verwoben, zur Verwendung benötigte man also ebenfalls eine Lizenz von AT&T.

UNIX zeichnete sich durch Eigenschaften aus, die heute selbstverständlich sind, aber zu dieser Zeit recht neu waren:
  • Ein hierarchisches Dateisystem: Die ersten DOS-Versionen von Mircosoft aus den 80er Jahren halten dies noch nicht.

  • Multitasking: Bei den Betriebssystemen Microsoft Windows und Apple MacOS war man erst in der zweiten Hälfte der 90er Jahre auf dem Weg dorthin.

  • Multi-User-Fähigkeit: Selbst die aktuelle Version von Mircosoft Windows (XP) kann zwar mehrere Benutzer verwalten (wie auch der Vorgänger Windows 2000), aber es kann zu jedem Zeitpunkt maximal ein Benutzer am System angemeldet sein und mit dem Betriebssystem arbeiten.

  • Netzwerkfähigkeit: Schon sehr früh wurden die UNIX-Kernel mit einem TCP/IP-Stack ausgestattet und bildeten schnell das Rückgrat des damals noch jungen Internets.

  • Plattformunabhängigkeit: Die meisten Betriebssysteme damals (und auch noch heute) waren auf einen bestimmten Prozessortyp zugeschnitten, und diese Abhängigkeit setzte sich in den Programmen fort.

  • Automatisierung: Zahlreiche Aufgaben lassen sich unter UNIX sehr einfach automatisieren.
1984 trennte sich AT&T von etlichen Tochterfirmen, womit auch ihr gestattet wurde, sich als gewöhnlicher Wettbewerber auf dem Computermarkt zu betätigen. Damit wurden auch Lizenzgebühren für UNIX drastisch angehoben und der Zugang zum Quellcode mehr und mehr eingeschränkt. Die Folge war, dass die Kooperation zwischen den Firmen, die UNIX kommerziell vermarkteten, immer mehr zurückging und jeder in "seiner" UNIX-Version seine eigenen Erweiterungen und Verbesserungen einbaute, bis UNIX heillos in unterschiedliche Versionen aufgesplittert war. SunOS von Sun, HP-UX von Hewlett-Packard; AIX von IBM, Ultrix von Digital, Sinix von Siemens, auch Mircosoft versuchte sich auf dem UNIX-Markt mit Xenix. Ein großer Vorteil, die leichte Portierbarkeit der UNIX-Programme, drohte mit dieser Zersplitterung zu verschwinden und viele Stimmen prophezeiten auch ein mittelfristiges Ende von UNIX.

Um dieser Entwicklung entgegenzuwirken, wurden von verschiedenen Seiten Standards für UNIX spezifiziert. AT&T versuchte 1984, nach der Wandlung zu einem gewöhnlichen Wettbewerber, einen Standard zu schaffen: System V (V entspricht römisch 5, also "System Five" gesprochen).

1985 brachte AT&T die "System V Interface Definition" heraus. Dieses Dokument stellte ein Standard für die UNIX-Schnittstellen dar. Zusätzlich enthielt es auch eine Menge Werkzeuge, die ein System auf die Konformität mit dem Standard V überprüfte. Diese von AT&T im Jahre 1983 freigegebene Version "UNIX System V" war zu dieser Zeit die dominierende Version. Sie stellte den Versuch seitens AT&T dar, die Hersteller auf einen Standard zu einen. Wegen des Widerstandes, der unter anderem dadurch entstand, dass man sich nicht von einer einzigen Firma abhängig machen wollte, entstanden im Laufe der Zeit andere Standards, so z.B. POSIX (Portable Operating System based on UNIX). Weil AT&T alle Rechte an dem Namen UNIX hatte, wurde vom Institute of Electrical and Electronic Engineers (IEEE) dieser Name für diesen Standard gewählt. Ein anderes Beispiel hierfür ist X/Open: Das X/Open Konsortium ist ein Zusammenschluss verschiedener Computerhersteller, die einen De-Facto-Standard schaffen wollten. 1988 wurde der X/Open Portability Guide veröffentlicht. All diesen Standardisierungsversuchen blieb der Durchbruch verwehrt.

Erfolg hatte dagegen das GNU-Projekt, welches am Anfang der 80er Jahre am MIT begonnen wurde. Sein Ziel war es, von Grund auf ein neues, UNIX-ähnliches Betriebssystem zu schreiben, das frei verfügbar sein sollte. Bis Ende der 90er Jahre entstand eine beachtliche und leistungsstarke Sammlung an UNIX-Werkzeugen. Auch wenn das System bislang nicht vollständig ist, konnten sich die GNU-Werkzeuge dennoch auf vielen UNIX-Varianten etablieren. So wurden die GNU-Werkzeuge ein systemübergreifender Quasi-Standard. Die Entwicklungsmethode des GNU-Projektes hatte erreicht, woran die proprietären Standardisierungsversuche bislang gescheitert waren.

Auch von akademischer Seite wurde der immer zugeknöpfteren Haltung der UNIX-Vertreiber begegnet. Wie bereits zu Anfang beschrieben, wurde der Quellcode von UNIX durch AT&T gegen nominelle Gebühren den Universitäten zur Verfügung gestellt. Dieser Code wurde vielerorts in Tutorials als Beispiel für die Arbeitsweise eines Betriebssystems verwendet. Nachdem AT&T jedoch den Quellcode unter Verschluss brachte, fiel diese Möglichkeit weg. Andrew S. Tanenbaum, Informatik-Professor an der Freien Universität Amsterdam, entschloss sich daher, für seine Studenten eine eigene Version von UNIX zu schreiben, die nichts mit dem urheberrechtlich geschützten Code von AT&T zu tun hatte. Nach zwei Jahren harter Arbeit brachte er sein System unter dem Namen Minix heraus. Es war weniger für die praktische Arbeit, sondern in erster Linie als Lehrobjekt gedacht. Dennoch wurde es von vielen Studenten auch praktisch auf dem heimischen PC eingesetzt, da es im Gegensatz zu den kommerziellen UNIX - Varianten für einen moderaten Preis zu haben war. Allerdings stieß Minix in diesem Einsatzgebiet sehr schnell an seine Grenzen.

Viele seiner Anwender machten Tanenbaum Vorschläge und schickten Patches für Erweiterungen und Verbesserungen. Tanenbaum allerdings war damit sehr zurückhaltend. Da er Minix in erster Linie als Tutorial sah, kam es ihm mehr auf eine knappe und klare Struktur als auf eine möglichst umfassende Funktionalität an. Ein Minix-Anwender mit Namen Linus Torvalds gab sich damit nicht zufrieden. Das GNU-System war bis auf den Kernel vollständig, aber das Release des GNUKernels mit Namen HURD schien noch auf sich warten zu lassen. Um die zeitliche Lücke bis dahin zu füllen, begann er selbst einen Kernel zu schreiben, der sehr rasch unter dem Namen Linux Verbreitung fand und eine große Entwickler- und Benutzergemeinde zusammenbrachte. Da die meisten Entwickler auf UNIX-Varianten arbeiteten, auf denen die GNU-Werkzeuge liefen, lag es nahe, den Linux-Kernel so einzurichten, dass er zusammen mit den GNU-Werkzeugen verwendet werden konnte: GNU/Linux.

Zur gleichen Zeit löste sich BSD aus seiner ursprünglichen Abhängigkeit von AT&T: Eine Gruppe von BSD-Entwicklern ersetzte alle Anweisungen im Quellcode, die noch AT&T beigesteuert waren, durch neue und erstritt in einem langwierigen Gerichtsverfahren für BSD die Freiheit. Daraus gingen die Projekte FreeBSD, NetBSD und OpenBSD hervor, die auch eine beträchtliche Verbreitung gefunden haben und manchmal als "Linux-Vettern" bezeichnet werden.

Wie die Geschichte zeigt, gibt es nicht das eine Betriebssystem UNIX. Vielmehr handelt es sich um eine "Familie" von Betriebssystemen. Linux in Jahreszahlen Seither hat sich Linux zu einem bedeutenden UNIX entwickelt; Kommerzielle UNIX-Anbieter haben Marktanteile an Linux verloren und mussten neue Strategien entwickeln. Nicht selten mündeteten diese überlegungen in offener Unterstützung für Linux, dessen weitere Verbreitung ohnehin nicht mehr zu stoppen war. Im Folgenden nun ein Abriss wichtiger Jahreszahlen in der Erfolgsgeschichte von Linux:
  • 01.01.1991: Der 21-jährige finnische Student Linus Benedict Torvalds beginnt, aufbauend auf dem Minix Betriebssystem, ein unixartiges Betriebssystem für AT-386-Computer zu schreiben.

  • 01.02.1992: Linus Torvalds verteilt die Version 0.12 seines Kernels per anonymous FTP im Internet, was zu einem sprunghaften Anstieg der Zahl interessierter Benutzer führt. Da diese Zahl so groß wird, dass die nötige Kommunikation nicht mehr per Email zu bewältigen ist, wird in den Usenet News die Gruppe alt.os.linux ins Leben gerufen. Dies hat zur Folge, dass eine explosionsartige Weiterentwicklung des Systems im ganzen Internet entsteht und von Linus Torvalds fortan koordiniert wird.

  • 01.03.1993: Bereits über 100 Programmierer arbeiten am Linux-Code mit. Durch Anpassung des Linux-Kernels an die GNU-Umgebung der Free Software Foundation (FSF) im Jahre 1993 wachsen Möglichkeiten von Linux erneut stark an, da man nun auf eine große Sammlung an vorhandener freier Software und Tools zurückgreifen kann, die unter Linux laufen.

  • 01.04.1994: Mit der Linux-Version 1.0 wird der Betriebssystem-Kernel netzwerkfähig und die Anzahl der Linuxnutzer steigt auf 100.000 an. Ein wichtiger Schritt, der ebenfalls im Jahre 1994 geschieht, ist auch die Anpassung einer grafischen Benutzerschnittstelle (GUI) auf Linux. Diese wird von einer weiteren "Non-Profit-Gruppe" dem XFree86-Projekt, beigesteuert. Linus Torvalds stellt auch den Quelltext des Linux-Kernels offiziell unter die GNU General Public License (mehr dazu im folgenden Abschnitt 2.1.2). Somit ist die freie Existenz von Linux gesichert.

  • 01.05.1995: Linux wird auf die Plattformen Digital (DEC) und Sun Sparc portiert. Damit kann sich das neue Betriebssystem nun mit vollem Schwung auf den vielen Plattformen ausbreiten.

  • 01.06.1996: Mit der neuen Version 2.0 des Linux-Kernels können nun mehrere Prozesse gleichzeitig angesteuert werden. Linux verliert langsam seinen Bastlerstatus und wird zu einer ernst zu nehmenden Alternative für Firmen.

  • 01.07.1997: Nun erscheinen wöchentlich neue, aktualisierte Versionen des Linux-Kernels. Verschiedene namenhafte Firmen beginnen ihre Software auf Linux portieren: Netscape seinen Webbrowser, Applixware seine Office-Anwendung und die Software AG ihre Datenbank Adabas D. Damit gibt es immer mehr kommerzielle Software-Pakete für Linux.

  • 01.08.1998: Das Desktop-Projekt KDE wird gestartet. Es arbeiten etwa 750 Programmierer am dieser heute am weitesten verbreiteten Desktopumgebung. Viele namenhafte Hardware- und Softwarehersteller kündigen die Portierung ihrer Produkte auf Linux an. Darunter finden sich Firmen wie IBM und Compaq (fusionierte im Jahr 2002 mit Hewlett Packard), die Linux als Betriebssysteme auf ihren Computern unterstützen. Informix (übernommen durch IBM im Jahr 2001) und Oracle entwicklen ihre Datenbanken fortan auch unter Linux. Netscape gibt die Quellen seines Webbrowsers frei und lässt die zukünftige Entwicklung durch das Mozilla-Projekt vorantreiben.

  • 01.09.1999: Die Kernelversion 2.2 erscheint. Sie verfügt über einen verbesserten SMP-Support und einen überarbeiteten Netzwerkcode. Ein neues Desktop-Projekt mit dem Namen GNOME wird begonnen. IBM kündigt die Portierung von Lotus Domino Notes an und propagiert seine Linux-Strategie.

  • 01.10.2000: KDE 2.0 erscheint. IBM kündigt für 2001 Investitionen in Linux in der Höhe von einer Milliarde US-Dollar an. Sun veröffentlicht den Quellcode von StarOffice unter der LGPL (Lesser GPL) und legt damit den Grundstein für OpenOffice.

  • 01.11.2001: Die Kernelversion 2.4 erscheint. Der Kernel unterstützt bis zu 64 Gbyte Arbeitsspeicher und 64Bit-Dateisysteme. Ebenso werden die USB-Schnittstelle und das Journaling Filesystem (JFS) unterstützt. Linux ist portiert auf den IBM Großrechner iSeries (ehemals AS/400).

  • 01.12.2002: Das OpenOffice-Projekt bringt OpenOffice in der Version 1.0 auf den Markt. Es ist ein komplettes Office-Paket mit Textverarbeitung, Tabellenkalkulation, Präsentationsmodul und läuft nicht nur unter Linux. Der Open Source Browser Mozilla wird nach vier Jahren in der Version 1.0 veröffentlicht. Auch bei den Desktops wird die nächste Runde eingeläutet: KDE 3.0 erscheint im Frühling, GNOME 2.0 zur Jahresmitte.

  • 13.01.2003: Linus Torvalds wechselt von seinem bisherigen Arbeitgeber Transmeta in das Open Source Development Lab (OSDL). Dort wird er in Zukunft auch beruflich seine Zeit der Arbeit am Linux-Kernel widmen. Linux findet zusehends Verbreitung auf Embedded Systemen. Der Münchener Stadtrat hat sich am 28.5. auf Grund einer Studie für die Umstellung seiner 14.000 Computer von Microsoft Windows auf Linux entschieden. KDE Desktop 3.1 erscheint. OpenOffice wird in der Version 1.1 veröffentlicht, welches etliche Erweiterungen gegenüber den Vorgängerversionen bietet. Samba erscheint in der Version 3.0, welche gerade im Einsatzbereich als Domain-Controller viele Erweiterungen und Verbesserungen erfahren hat. Auch eine Integration in das von Windows 2000 eingeführte "Active Directory" ist nun möglich. GNOME Desktop 2.4 erscheint. Die Entwicklerserie 2.5 des Linux-Kernels wird geschlossen und in die Serie 2.6.0-test übergeführt. Am 17. Dezember wird Version 2.6.0 des Linux-Kernels freigegeben.

  • Ende 2004: Kernel-Version 2.6.10

2.1.2. GPL & Co. Ist Linux frei?

Linux ist "frei" - aber was bedeutet das eigentlich? Oft wird frei mit kostenlos verwechselt. Es stimmt zwar, das Linux auch kostenlos verfügbar ist (zumindest über das Internet); der Begriff "frei" bezieht sich aber auch und vor allem auf die Verfügbarkeit des gesamten Quellcodes (Open Source). Damit sind gewisse Komplikationen verbunden: Was passiert, wenn eine Firma den Linux- Code verwendet, in einigen Punkten erweitert und das System anschließend verkauft? Auch das ist erlaubt, allerdings mit einer Einschränkung; Der Programmcode des neuen Systems muss abermals frei verfügbar sein. Diese Regelung stellt sicher, dass Erweiterungen am System allen Anwendern zugute kommen. Ziel der Entwickler von GNU und Linux war es also, ein System zu schaffen, dessen Quellen frei verfügbar sind und es auch bleiben. Um einen Missbrauch auszuschließen, ist Software, die im Sinne von GNU entwickelt wurde und wird, durch die GNU General Public License (GPL) geschützt. Hinter der GPL steht die Free Software Foundation (FSF). Diese Organisation wurde gegründet, um qualitativ hochwertige Software frei verfügbar zu machen.

GNU General Public License (GPL)

Die Kernaussage der GPL besteht darin, dass zwar jeder den Code verändern und sogar die resultierenden Programme verkaufen darf, dass aber gleichzeitig der Anwender beziehungsweise Käufer das Recht auf den vollständigen Code hat und diesen ebenfalls verändern und wieder kostenlos weitergeben darf. Jedes GNU-Programm muss zusammen mit der vollständigen GPL weitergegeben werden. Durch die GPL geschützte Software ist also nicht mit Public-Domain-Software zu verwechseln, die vollkommen ungeschützt ist. Die GPL schließt damit aus, dass jemand ein GPL-Programm weiterentwickeln und verkaufen kann, ohne die Veränderungen öffentlich verfügbar zu machen. Jede Weiterentwicklung ist somit ein Gewinn für alle Anwender. Die deutsche übersetzung finden Sie hier.

GNU Libary General Public License (LGPL)

Neben der GPL existiert noch die Variante LGPL (Libary GPL). Der wesentliche Unterschied zur GPL besteht darin, dass eine derart geschützte Bibliothek auch von kommerziellen Produkten genutzt werden darf, deren Code nicht frei verfügbar ist. Ohne die LGPL könnten GPL-Bibliotheken nur wieder für GPL-Programme genutzt werden, was in vielen Fällen eine unerwünschte Einschränkung für kommerzielle Programmierer wäre. Die LGPL wurde durch ihren Nachfolger, der GNU Lesser General Public License, zu Beginn des Jahres 1999 abgelöst.

Andere Lizenzmodelle im Linux-Umfeld

Durchaus nicht alle Teile einer Linux-Distribution unterliegen den gleichen Copyright-Bedingungen! Während der Kernel und viele Tools der GPL unterliegen, gelten für manche Komponenten und Programme andere rechtliche Bedingungen. Im folgenden sind beispielhaft vier Fälle angeführt:
  • Beispielsweise gilt für das X Window System eine eigene Lizenz, da dieses ursprünglich vom MIT entwickelt wurde. Die jetzige Lizenz ist von einer früheren Lizenz des MIT abgeleitet.

  • Für manche Netzwerk-Tools gilt die BSD-Lizenz. Dabei handelt es sich um das Lizenzmodell, welches für die bereits erwähnten Betriebssysteme OpenBSD, NetBSD und FreeBSD verwendet wird. Dieses Modell ist insofern liberaler als die GPL, als die kommerzielle Nutzung ohne die Freigabe des Codes zulässig ist. Die Lizenz ist daher vor allem für kommerzielle Programmierer interessant, die Produkte entwickeln möchten, deren Code sie nicht veröffentlichen wollen.

  • Für einige Programme gelten Doppellizenzen. Beispielsweise können Sie den Datenbank- Server MySQL für OpenSource-Projekte beziehungsweise für die innerbetriebliche Anwendung gemäß der GPL kostenlos einsetzen. Wenn Sie hingegen ein kommerzielles Produkt auf der Basis von MySQL entwickeln und mit MySQL verkaufen möchten (ohne Ihren Quellcode zur Verfügung zu stellen), kommt die kommerzielle Lizenz zum Einsatz. Das bedeutet, dass die Weitergabe von MySQL in diesen Fall kostenpflichtig wird.

  • Andere Programme sind dediziert kommerziell, obwohl auch in solchen Fällen die kostenlose Nutzung meist zulässig ist. Ein bekanntes Beispiel ist der Adobe Acrobat Reader zum Lesen von Dokumenten im PDF Format: Zwar ist das Programm unter Linux kostenlos erhältlich (und darf auch in Firmen kostenlos eingesetzt werden), aber der Quellcode zu diesem Programm ist nicht erhältlich.
Manche Distributionen kennzeichnen die Produkte, bei denen die Nutzung oder Weiterentwicklung eventuell lizenzrechtliche Probleme verursachen könnte. So befinden sich bei SuSE Linux alle derartigen Programm-Pakete in der Serie pay oder werden nicht mitgeliefer (z.B. Grafikkartentreiber von NVidia). Bei Debian Linux werden solche Pakete gleich gar nicht mitgeliefert oder sie befinden sich im Verzeichnis "non-free".

Im Allgemeinen können Sie davon ausgehen dass Sie alle Programme, die Sie mit einer Linux- Distribution erhalten haben, auch kostenlos nutzen dürfen. Es ist aber nicht immer so, dass Sie davon abgeleitete eigene Produkte ohne weiteres weiterverkaufen dürfen. Wenn Sie Software- Entwickler sind, müssen Sie sich in die bisweilen sehr verwirrende Problematik der unterschiedlichen Software-Lizenzen einarbeiten.

2.1.3. Distributionen

Als Linux-Distribution wird eine Einheit bezeichnet, die aus dem eigentlichen Betriebssystem (Kernel und systemnahe Software) und seinen Zusatzprogrammen besteht. Eine Distribution ermöglicht eine einigermaßen rasche und bequeme Installation unter Linux. Alle Distributionen werden in der Form von CD-ROMs oder auch DVD-ROMs verkauft. Die meisten Distributionen sind darüber hinaus auch im Internet verfügbar. Wegen der riesigen Datenmengen (Hunderte von Megabytes bis hin zu mehreren Gigabytes) ist das Kopieren einer Distribution via Internet oder eine direkte Installation über das Netz aber zumeist nur in Universitäten bzw. Firmen mit Breitbandanbindung an das Internet möglich. Allerdings ist es auch möglich Zuhause per DSL in einer relativ kurzen Zeit (mehrere Stunden) eine Distribution übers Internet zu installieren.

Die Distributionen unterscheiden sich vor allem durch folgende Punkte voneinander:
  • Umfang, Aktualität: Die Anzahl, Auswahl und Aktualität der mitgelieferten Programme und Bibliotheken unterscheidet sich von Distribution zu Distribution. Manche Distributionen überbieten sich in der Anzahl der mitgelieferten CD-ROMs. Um den Anwendern bei der Installation bzw. späteren Updates ein ständiges CD-Wechseln zu ersparen, werden manche Distributionen auch als DVD-ROMs ausgeliefert. Vorreiter war hier die Distribution der Firma SuSE.

  • Installations-und Konfigurationswerkzeuge: Die mitgelieferten Programe zur Installation, Konfiguration und Wartung des Systems helfen dabei, Hunderte von Konfigurationsdateien des Systems auf einfache Weise richtig einzustellen. Funktionierende Installations- und Konfigurationstools stellen eine enorme Zeitersparnis dar.

  • Konfiguration des Desktops (z.B. KDE, Gnome): Manche Distributionen lassen dem Anwender die Wahl zwischen KDE, Gnome und eventuell auch verschiedenen Window Managern. Andere legen den Anwender auf eines dieser Systeme fest. Es gibt aber auch Unterschiede in der Detailkonfiguration von KDE oder Gnome - zum Beispiel inwieweit deren Startmenüs mit den tatsächlich installierten Programmen übereinstimmen.

  • Hardware-Erkennung und -Konfiguration: Linux kommt zwar nicht mit allen PC-Hardware- Komponenten zurecht, aber doch mit ziemlich vielen. Angenehm ist natürlich, wenn die Distribution die vorhandene Hardware automatisch erkennt und damit umgehen kann. Gelingt dies nicht, ist oft eine mühsame Konfiguration in Handarbeit erforderlich, die Linux-Einsteiger meist überfordert.

  • Landesspezifische Anpassung: Manche Distributionen vermitteln noch immer den Eindruck, Englisch sei die einzige Sprache dieserWelt. Andere Distributionen sind speziell für den Einsatz in nicht englischsprachigen Ländern vorbereitet. Das betrifft nicht nur das Tastatur- Layout, sondern auch die verfügbaren Zeichensätze, die Sprache der Online- Dokumentation u.v.m. Ist man jedoch der englischen Sprache nicht abgeneigt, so gibt es Anpassungen für US- und UK-Englisch, ja sogar für Irisch-Englisch (Debian). In der Zwischenzeit gibt es sogar übersetzungen für kleinere Sprachräume, z.B. KDE auf Plattdeutsch.

  • Paketsystem: Die Verwaltung von Linux-Anwendungsprogrammen erfolgt durch Pakete (Packages) als modulare Einheiten. Das Paketsystem hat ein Einfluss darauf, wie einfach die Nachinstallation zusätzlicher Programme beziehungsweise die Aktualisierung (Update) vorhandener Programme ist. Zur Zeit sind drei zueinander mehr oder weniger inkompatible Paketsysteme üblich:
    • RPM (verwendet von Caldera, Mandrake, Red Hat, SuSE und TurboLinux)
    • DEB (verwendet von Debian, Corel, Progeny und Storm Linux)
    • TGZ (verwendet von Slackware)
    Es gibt jedoch die Möglichkeit, z.B. RPM in Debian-Pakete umzuwandeln und vice-versa.

  • Wartung, Beseitigung von Sicherheitslücken: Linux ist ein sich dynamisch veränderndes System. Oft gibt es nach der Fertigstellung einer Distribution noch wichtige Neuerungen; immer wieder werden Sicherheitsmängel in diversen mitgelieferten Programmen entdeckt. Eine gute Distribution zeichnet sich dadurch aus, dass sie (insbesondere bei Sicherheitsproblemen) sehr rasch Updates im Internet zur Verfügung stellt. Manche Distributionen versuchen mittlerweile einerseits den Vorgang von Sicherheits-Updates weitestgehend zu automatisieren, und daraus andererseits einen kostenpflichtige Zusatzleistung zu machen. Wie weit sich diese Idee durchsetzen wird, ist momentan noch nicht abzusehen.

  • Live System: Einige wenige Distributionen ermöglichen den Betrieb von Linux direkt von einer CD-ROM oder DVD. Das ist zwar langsam und inflexibel, ermöglicht aber ein vergleichsweise einfaches Ausprobieren von Linux. Zudem stellt eine Live CD-ROM eine ideale Möglichkeit dar, ein auf der Festplatte vorhandenes aber defektes Linux-System zu reparieren.

  • Microsoft Windows-Installation: Einige Distributionen ermöglichen die Installation von Linux in ein Verzeichnis bzw. in eine große Datei einer MS Windows-9x/SE/ME-Partition. Das ist langsam und hat zahllose Nachteile, erspart aber die Partitionierung der Fesplatte. Wie beim Live System ist auch diese Variante vor allem zum Ausprobieren interessant.

  • Hardware-Unterstützung: Alle Distributionen für Intel-kompatible Prozessoren laufen auf jedem Standard-PC. Wenn Sie spezielle Hardware verwenden (Multiprozessor-Mainboards, RAID-Festplattensysteme, Notebooks etc.), hängt es aber stark von der Distribution ab, wie gut derartige Hardware von den Installations- und Konfigurations-Tools unterstützt wird. Hier sind große, weit verbreitete Distributionen meist im Vorteil. Von SuSE und RedHat gibt es Beispielsweise spezielle Enterprise-Distributionen welche auch Großrechner-Architekturen wie z.B. die "zSeries" von IBM unterstützen.

  • Ziel-Plattform (CPU-Architektur): Viele Distributionen sind nur für Intel-kompatible Prozessoren erhältlich. Es gibt aber auch Distributionen für andere Rechnerplattformen, zum Beispiel DEC Alpha, SUN Sparc und Macintosh PowerPC.

  • Dokumentation: Manche Distributionen werden mit Handbüchern (in elektronischer oder gedruckter Form) ausgeliefert.

  • Support & Service: Bei manchen Distributionen bekommen Sie kostenlos Hilfe bei der Installation (via Email oder Telefon). Das Ausmaß des gebotenen Supports schlägt sich meist sehr direkt auf den Preis nieder.

  • Mitgelieferte kommerzielle Software: Bei manchen Distributionen werden nicht nur die frei verfügbaren Linux-Pakete mitgeliefert, sondern auch lizenzpflichtige Programme. Auch dies erhöht den Preis der Distributionen.

  • Lizenz: Die meisten Distributionen sind uneigenschränkt kostenlos über das Internet erhältlich. Bei einigen Distributionen gibt es hier aber Einschränkungen. Beispielsweise stellen nicht alle Distributionen so genannte ISO-Images zur Verfügung, mit denen sich Anwender leicht selbst die Installations CD-ROMs brennen können (d.h. ohne die Distribution zu kaufen).
Manche Distributionen erlauben zwar die kostenlose Weitergabe, nicht aber den Weiterverkauf von CD-ROMs. (Da Linux und die meisten mitgelieferten Programme an sich frei erhältlich sind beschränkt sich das Verkaufsverbot meist auf die Installations- oder Konfigurationssoftware; bei SuSE galt dies beispielweise bis vor kurzem für das Programm YaST. Dieses steht alledings seit der Version SuSE Linux 9.1 unter der GPL und darf somit auch frei kopiert werden.) Weitergabeeinschränkungen gibt es auch, wenn mit der Distribution kommerzielle Software mitgeliefert wird. Am restriktivsten war Caldera: Dessen Linux-Distributionen dürfen nur auf einen einzigen Rechner installiert werden, was in der Linux-Welt vollkommen unüblich ist.

Die Behauptung Linux sei frei, steht scheinbar im krassen Widerspruch zu dem Preis, die für die meisten besseren Distributionen verlangt wird (oft 50 Euro und mehr). Der Grund ist aber leicht verständlich: Obwohl Linux und die meisten Anwendungsprogramme tatsächlich kostenlos über das Internet bezogen werden können, erfordert die Zusammenstellung einer aktuellen Distribution eine Menge Zeit und "Know-how". Ein gutes Installationsprogramm allein (das auch programmiert und gewartet werden muss) ist den Preis einer Distribution oft schon wert! Es kann von allem Linux- bzw. Unix-Neulingen eine Menge Zeit bei der Installation und Konfiguration ersparen. Auch die Produktion von einer oder mehreren CD-ROMs, oft begleitet von einem Handbuch, kostet Geld. Nicht zu vernachlässigen ist schließlich das Angebot eines persönlichen Supports bei Installationsproblemen. Teuer wird eine Distribution auch dann, wenn kommerzielle Software mitgeliefert wird.

Die "richtige" Linux-Distribution

Die Frage, welche Distribution die beste sei, welche wem zu empfehlen sei, artet leicht in einen Glaubenskrieg aus. Wer sich einmal für eine Distribution entschieden und sich an deren Eigenheiten gewöhnt hat, steigt nicht so schnell auf eine andere Distribution um. Ein Wechsel der Distribution ist nur durch eine Neuinstallation möglich, bereitet also einige Mühe. Kriterien für die Auswahl einer Distribution sind die Aktualität ihrer Komponenten (achten Sie auf die Versionsnummer des Kernels und wichtiger Programme, etwa des C-Compilers), die Qualität der Installations- und Konfigurationstools, der angebotene Support, mitgelieferte Handbücher etc. Dass die meisten Linux-Distributionen wirklich uneingeschränkt frei verfügbar sind, erkennen Sie unter anderem daran, dass es von vielen kommerziellen Distributionen "Billig" CD-ROMs mit den sogenannten FTP-Versionen, GPL-Versionen oder Download- Versionen gibt. Der Name dieser Version ergibt sich daraus, dass es sich um jene Dateien handelt, die kostenlos im Internet (meist auf einem FTP-Server) verfügbar sind. Diesen Versionen fehlen die kommerziellen Komponenten, die von der jeweiligen Distribution lizensiert wurden. Außerdem gibt es keine Dokumentation und keinen Support. Lassen Sie sich aber vom günstigen Preis der FTP-Versionen nicht blenden: Gerade für Einsteiger ist ein gutes Handbuch oder die Möglichkeit, während der ersten Monate eine Support- Abteilung kontaktieren zu können, sehr wertvoll.

Der folgende überblick über die wichtigsten verfügbaren Distributionen (in alphabetischer Reihenfolge und ohne Anspruch auf Vollständigkeit!) soll eine erste Orientierungshilfe geben:
  • Caldera: Caldera Open Linux war eine der ersten Linux-Distributionen, die sich explizit an kommerzielle Anwender wandte (Mittlerweile erheben alle Mitbewerber ebenfalls diesen Anspruch.). Die Distributionwurde jedoch im August 2002 in die Produktpalette vom UNIXAnbieter SCO eingegliedert und besteht seitdem in dieser Form nicht mehr.

  • Corel: Corel Linux wurde im Jahr 1999 sehr medienwirksam eingeführt und sollte eine sehr einfache und benutzerfreundliche Distribution werden. Obwohl dies ansatzweise sehr gut gelang, blieb Corel Linux der Erfolg verwehrt. Im September 2001 verkaufte Corel seine Linux-Abteilung an die Firma Xandros.

  • Debian: Während sich hinter den meisten hier geannten Distributionen Firmen stehen, die mit ihren Distributionen Geld verdienen möchten, stellt Debian in dieser Beziehung eine Ausnahme dar: Die Distribution wird von engagierten Linux-Anwendern zusammengestellt, die größten Wert auf Stabilität und die Einhaltung der Spielregeln "freier" Software legen. Manche Ideen dieser Distribution - etwa die professionelle Paketverwaltung - waren für andere Distributionen richtungsweisend und sind diesen in manchen Aspekten immer noch voraus. (Versuchen Sie einmal, ihre Distribution zu aktualisieren, ohne den Rechner neu zu starten!) Debian ist im Laufe der letzten Jahre zwar zunehmend benutzerfreundlicher geworden, für Linux-Einsteiger ist diese Distribution aber wegen des schwer zu bedienbaren Paketverwaltungsprogramms dselect nach wie vor ungeeignet (vgl. Progeny Debian).

  • Mandrake: Mandrake Linux ist gewissermaßen eine benutzerfreundliche Variante zu Red Hat Linux. Die Distribution ist von Red Hat abgeleitet und insofern weitgehend kompatibel, als die meisten Software-Pakete untereinander austauschbar sind. Mandrake Linux zeichnet sich aber durch eigenständige und einfacher zu bedienende Installations- und Konfigurationsprogramme aus. Ein weiterer Vorteil besteht darin, dass mit Mandrake Linux in der Regel mehr und aktuellere Softwarepakete mitgeliefert werden (manchmal auf Kosten der Stabilität). Hinter Mandrake steht die Firma MandrakeSoft mit Firmensitz in Frankreich.

  • Progeny Debian: Wie der Name bereits andeutet, ist diese Distribution von Debian abgeleitet. Progeny Debian ist eine sehr neue Distribution (die erste Version wurde im Jahr 2001 ausgeliefert) und unterscheidet sich von Debian vor allem durch komfortablere Installationsund Konfigurationswerkzeuge. Da aber sämtliche Zusatzfunktionen von Progeny Debian in die Entwicklung von Debian Linux nach und nach eingeflossen sind, wurde die Entwicklung einer seperaten Distribution eingestellt.

  • Red Hat: Die Red Hat Distribution ist einer der am besten gewarteten Linux-Distributionen, die zurzeit erhältlich sind. Die Distribution dominiert insbesondere den amerikanischen Markt. Die Paketverwaltung auf Basis des RPM-Formats (eine Eigenentwicklung von Red Hat) wurde mittlerweile von vielen anderen Distributionen übernommen. Neben der Red Hat Orginaldistribution gibt es eine ganze Reihe davon abgeleiteter Distributionen, die sich durch diverse Verbesserungen oder Sprachanpassungen (z.B. eine Version in spanischer Sprache) auszeichnen. Red Hat Linux ist insbesondere für die Verwendung als Server sehr beliebt, weil Sicherheits-Updates oft rascher verfügbar sind als bei anderen Distrbutionen. Auch legt die Firma Red Hat bei der Auswahl von Paketen und Versionen für eine Distribution ein größeres Augenmerk auf Stabilität (anstatt einfach die aktuellste verfügbare Versionen mitzuliefern). Im Vergleich zu anderen Distributionen sind die Konfigurationshilfen allerdings unübersichtlich organisiert und zum Teil schwierig zu bedienen. Red Hat ist also nicht unbedingt die optimale Distribution für Linux-Einsteiger.
    Die Bezeichnung Red Hat Linux beschreibt allerdings nur noch die kommerziell vertriebene Distribution. Die Fedora Community ist für das Fedora Core Linux zuständig, welches von der letzten frei verfügbaren Red Hat Distribution abgeleitet wurde.

  • Slackware: Die Slackware war eine der ersten verfügbaren Linux-Distributionen. Bezüglich Wartung und Installationskomfort kann sie allerdings nicht mehr mit den anderen hier genannten Distributionen mithalten. Viele Slackware-Anwender bevorzugen ihre Distribution aber gerade deswegen, weil das Augenmerk eher auf Kontinuität und Stabilität denn auf schöne Installations- und Konfigurations-Tools gelegt wird.

  • Storm Linux: Diese Distribution ist von Debian abgeleitet, bietet aber attraktivere Installationsund Konfigurationstools als diese. Jedoch ist seit April 2001 die Homepage vom Distributor Stormix Technologies inaktiv. Die Distribution ist offiziell nicht mehr verfügbar und es wird auch kein Support mehr gegeben.

  • SuSE: SuSE-Linux ist dank der hohen Aktualität, der riesigen Anzahl vorkonfigurierter Pakete, den umfassenden Handbüchern und der hervorragenden Wartung die in Europa am weitesten verbreitete Distribution. SuSE-Linux ist in zahlreichen Sprachen (Deutsch, Englisch etc.) erhältlich. SuSE ist eine sehr benutzerfreundliche Distribution. Das Administrationstool YaST hilft nicht nur bei vielen Konfigurationsproblemen, es löst auch ähnlich wie Debian automatisch eventuelle Abhängigkeitskonflikte zwischen Software-Paketen, die bei der Paketinstallation auftreten können. YaST steht seit der Version SuSE Linux 9.1 unter der GPL; dies war jedoch lange Zeit nicht so. Aus diesem Grund durfte man SuSE-Linux zwar im Freundeskreis frei kopieren, es war aber nicht zulässig, SuSE CD-ROMs billig zu verkaufen (wie dies bei vielen anderen Distributionen üblich ist). Zu den größten Nachteilen von SuSE zählte das Konfigurationskonzept (vgl. Datei /etc/rc.config), das inkompatibel zu allen anderen Distributionen war und vor allem bei der Administration stört. Man findet es nur bei den älteren Linux-Distributionen, da dieses Konzept in den neueren Versionen ersetzt wurde (Die Abkürzung SuSE steht übrigens für Gesellschaft für Software und Systementwicklung).

  • Turbo Linux: Diese von der Firma Pacific HighTech (PHT) zusammengestellte Distribution wurde speziell für die Verwendung in Asiatischen Raum optimiert und ist dort (nach eigenen Angaben) Marktführer. Die Distribution ist aber auch in einer englischen Version erhältlich.

  • Minimal-Distributionen: Neben diesen großen Distributionen gibt es im Internet einige Zusammenstellungen von Miniatursystemen (bis hin zum kompletten Linux-System auf einer einzigen Diskette!). Diese Distributionen basieren zumeist auf alten (und daher kleineren) Kernel-Versionen. Sie sind vor allem für Spezialaufgaben konzipiert, etwa für Wartungsarbeiten oder um ein Linux-System ohne eigentliche Installation verwenden zu können (direkt von einer oder mehreren Disketten oder einer CD-ROM/ DVD-ROM). Das ist praktisch, wenn Sie Linux vorrübergehend auf einen fremden Rechner nutzen möchten, dessen Festplatte Sie nicht neu partitionieren wollen oder dürfen. Zwei gute Beispiele für Linux-Distributionen diesen Types ist das Linux Router Project (Auf einer einzigen Diskette sind alle Programme vorhanden, um einen alten 486er PC in einen Router für ein kleines Netzwerk umzuwandeln.) und KNOPPIX (Eine recht vollwertige Distribution, die sich von einer CD-ROM oder DVD-ROM starten läßt und das vorhandene System meist vollständig erkennt!).
Einen ziemlich guten überblick über die momentan verfügbaren Linux-Distributionen (egal, ob kommerziellen oder anderen Ursprungs) finden Sie im Internet auf den folgenden Seiten:

Viele Distributionen, kein Standard !?!

Wie aus dem vorangegangenen Abschnitten ersichtlich ist, gibt es nicht "das Linux". Man hat die Auswahl aus einer Vielzahl von Distributionen, die zwar gewisse Gemeinsamkeiten haben (z.B. Kernel, Paketverwaltung etc.), aber viele Unterschiede (Konfigurationstools, Softwareumfang etc.). Diese Tatsache kann sich als besonders lästig herausstellen bei der Installation von Programmen, die nicht mit der Distribution mitgeliefert werden (und insbesondere bei kommerziellen Programmen). Eine fehlende oder veraltete Programmbibliothek ist oft die Ursache dafür, dass ein Programm nicht läuft. Die Problembehebung ist insbesondere für Linux-Einsteiger fast unmöglich. Manche Firmen gehen inzwischen so weit, dass ihre Softwareprodukte nur eine ganz bestimmte Distribution unterstützen. Natürlich entscheidet sich jede Firma für eine andere Distribution.

Um diese Probleme zu beseitigen, wurde vor einigen Jahren das Linux Standard Base Project (LSB) ins Leben gerufen. Im Juli 2001 haben die Projektteilnehmer die LSB-Spezifikation 1.0 veröffentlicht. Es handelt sich dabei um Vorgaben, die alle LSB konformen Distributionen einhalten müssen. Dabei ist die Spezifikation in einem gemeinsamen Teil und architekturbezogenen Teil zu unterscheiden. Die aktuelle Spezifikation besteht in der Version 1.3. Die zurzeit aktuelle Version SuSE 9.1 Professional ist zum Beispiel für 32bit Intel-kompatible Architekturen mit dem 1.3 Standard konform. Ein anderer Schritt in Richtung Standardisierung von den unterschiedlichen Distributionen ist UNITEDLINUX. Dabei handelt es sich um eine Distribution, die von den Firmen Connectiva S.A., SCO Group, SuSE Linux AG und Turbolinux Inc. unterstützt wird. Im November 2002 wurde die Version 1.0 herausgegeben. Ziel ist es, einen weltweiten Linux-Standard zu schaffen.

Abschließend kann man sagen, dass zwar jede Distribution ihre Eigenheiten hat, aber dennoch die Gemeinsamkeiten überwiegen. Schließlich nutzen alle Distributionen zum Beispiel die zuvor genannnten GNU-Werkzeuge.

 
 2.2 Abgrenzung Betriebssysteme  
 

In diesem Abschnitt sollen ein wenig die Unterschiede zwischen Linux und anderen Betriebssystemen aufgezeigt werden. Die Auflistung stellt lediglich eine Auswahl dar und hat keinen Anspruch auf Vollständigkeit, da das den Rahmen diese Kurses sprengen würde:
  • Apple MacOS: Das Apple eigene Betriebssystem MacOS ist für die von Apple hergestellten Rechner vorgesehen. Der Grund liegt darin, dass diese Rechner keine Intel-kompatible Architektur haben, sondern es sich bei diesen um PowerPCs handelt. Es bietet eine enorm hohe Benutzerfreundlichkeit und wird bevorzugt für Multimedia-Anwendungen eingesetzt. Bemerkenswert ist, dass in der neuesten Version des Betriebssystems (MacOS X; röm. 10) das gesamte Betriebssystem auf einen FreeBSD-Kernel portiert wurde.

  • Microsoft Windows XP: Das aktuelle Desktop PC Betriebssystem von der Firma Mircosoft besitzt eine umfangreichere Unterstützung von verschiedensten Hardwarekomponenten im Vergleich zu seinem Vorgänger Windows 2000. Ebenfalls unterstützen die meisten Software- Hersteller, je nach Anwendungsgebiet der Software, primär das Microsoft Betriebssystem, da dieses die weiteste Verbreitung genießt. Des weiteren wurden die Benutzerfreundlichkeit und Multimedia-Funktionalität verbessert. Jedoch kann in dieser aktuellen Version von Microsoft Windows maximal ein Benutzer zu jedem Zeitpunkt angemeldet sein. Weiterhin ist zu bemerken, dass Windows XP, wie auch seine Vorgänger, Opfer vieler Viren- und Wurm- Attacken durch das Internet ist, was sich unter dem Aspekt der Lauffähigkeit und Stabilität nachteilig auswirkt.

  • Sun Solaris, IBM AIX, HP-UX: Hierbei handelt es sich, wie bereits in der Geschichte von Linux eingeführt, um "Ableger" des klassischen UNIX. Sie wurden im Laufe der Jahrzehnte durch die jeweiligen Firmen weiterentwickelt. Sie werden vornehmlich als Betriebssystem für die Großrechner der jeweiligen Firma eingesetzt.

  • zOS: Das 64Bit-Betriebssystem für IBM zSeries-Mainframes ist ein typisches Großrechnerbetriebssystem. Das Betriebssystem ist sehr hardwarenah für eben die Mainframes von IBM entwickelt worden und nutzt deren Möglichkeiten vollständig aus. Im Vergleich zu PCDesktop Betriebssystem, oder auch UNIX-Varianten für andere Großrechner, verfolgt zOS komplett andere Konzepte: Installation und Wartung von Programmen ist sehr sicher ausgelegt, ebenso sind wichtige (und auch viele weniger wichtige) Systemfunktionen redundant mit hohen Sicherheitsfunktionen ausgestattet.

  • zVM: VM steht für "Virtuelle Maschine" - mit diesem Großrechnerbetriebsystem von IBM kann man in virtuellen Umgebungen (ähnlich VMware) nahezu beliebige Betriebssysteme laufen lassen, so unter anderem auch Linux-Systeme. Diese müssen jedoch speziell für die Großrechnerarchitekturen (also z.B. zSeries) kompiliert sein, da Intel x86-Programme einen komplett anderen Binärcode haben.

  • u.v.m.
Dieser Abschnitt macht deutlich, dass Linux zum jetztigen Zeitpunkt sicherlich nicht für alle Anwendungsgebiete geeignet ist, aber mehr und mehr an Attraktivität für die verschiedenen Einsatzgebiete von Betriebssystemen gewinnt.

 
 2.3 Aufgaben und Aufbau eines Betriebssystems  
 

Der folgende Abschnitt soll einen kleinen überblick über die Aufgaben und den Aufbau eines Betriebssystems liefern. Ein umfassende und ausführliche Klassifizierung von Betriebssystemen würde sicherlich zum Einen den Rahmen dieses Kurses sprengen, zum Anderen das Ziel dieses Kurses verfehlen. Im Folgenden soll es Ihnen ermöglichen die noch folgenden Themengebiete in dem Gesamtkontext eines Betriebssystems, im Besonderen den von Linux, einzuordnen.

2.3.1. Aufgaben eines Betriebssystems

Ein Betriebssystem hat folgende grundlegende Aufgaben:
  • Verbergen der Komplexität der Maschine vor dem Anwender (Abstraktion): Es gibt eine Vielzahl verschiedener Rechnerarchitekturen (Intel-kompatibel, PowerPC,...) und eine Vielzahl unterschiedlichster Hardwarekomponenten (Festplatten, Grafikkarten, Netzwerkkarten, Drucker,...). Beides erscheint in Variationen, dadurch daß es eine große Zahl an Herstellern für Rechnersysteme und Hardwarekomponenten gibt. All dies bleibt dem Benutzer des Betriebssystems verborgen.

  • Bereitstellen einer Benutzerschnittstelle: Dem Benutzer muss eine Schnittstelle bereitgestellt werden, mit der mit dem Betriebssystem interagieren kann. Ein konkretes Beispiel wäre zum Beispiel eine grafische Oberfläche mit einen Navigationsmenü und grafischen Symbolen (vgl. KDE Desktopumgebung oder ein Kommandozeilen-Interpreter), in dem definierte Kommandos per Tastatur eingegeben werden (wie sie zum Beispiel ausschließlich beim "klassischen" UNIX zur Verfügung stand).

  • Bereitstellen einer normierten Programmierschnittstelle: Das Betriebssystem stellt eine Menge von Grundfunktionen bereit, mit denen programmiert werden kann, um das Betriebssystem um zusätzliche Funktionen zu erweitern. Auf diese Schnittstellen greifen zum Beispiel die Entwickler von Anwendungssoftware (z.B. ein Text Editor) zurück.

  • Verwaltung der Ressourcen der Maschine: Mit Resourcen ist die gesamte Hardware gemeint, auf die das Betriebssystem aufsetzt und Zugriff hat, zum Beispiel Prozessor(-en), Hauptspeicher, Festplatten und andere Medien, Drucker, etc., aber auch logische Ressourcen wie zum Beispiel die Rechenzeit. Ein Beispiel wäre das Senden von Druckaufträgen an einen Drucker durch den Benutzer. Da der Drucker nur ein Dokument zu einem Zeitpunkt ausdrucken kann, regelt das Betriebssystem die Abarbeitung der Druckaufträge unabhängig von der Anzahl.

  • Verfolgung von Schutzstrategien bei dieser Ressourcenbereitstellung: Am Beispiel der Ressource Arbeitsspeicher: auf einem Betriebssystem sind meistens mehrere Anwendungen installiert, die durchaus zum gleichen Zeitpunkt laufen können. Dabei benötigt jede Anwendung zur Laufzeit Speicherbereiche aus dem Arbeitsspeicher des Rechners, um zum Beispiele Werte temporär abzulegen (zum Beispiel eingelesene Eingaben von der Kommandozeile). Der Arbeitsspeicher wird jedoch nicht direkt durch die Anwendung allokiert, sondern die Anwendung fordert einen Speicherbereich benötigter Größe.

  • Koordination von Prozessen: Ein Prozess ist ein Programm während der Ausführung. Ein Prozess kann sowohl aus Anwendungen resultieren, die durch den Benutzer gestartet worden sind, als auch durch systemnahe Programme, die schon beim Start des Betriebssystems initialisiert und gestartet werden. Im laufenden Betrieb des Betriebssystems sind meist Prozesse gleichzeitig aktiv (vgl. Multi-Tasking-Fähigkeit von UNIX). Das Betriebssystem koordiniert dabei die Interaktion zwischen den Prozessen. Ein Beispiel wäre das Warten eines Prozesses auf den Abschluss eines anderen Prozesses.
Die zuvor beschriebenen Aufgaben machen eines deutlich: die Aufgaben eines Betriebssystems haben unterschiedliche Granularität, das heißt einen unterschiedlich Grad der Abstraktion hinsichtlich des Rechnersystems und seiner Hardwarekomponenten. Der logische Schluss ist ein Schichtenmodell des Betriebssystems, in dem die unterschiedlichen Aufgaben erfüllt werden.

2.3.2. Aufbau eines Betriebssystems

Die im folgenden dargestellte Abbildung zeigt das Wettstein'sche Schichtenmodell nach Prof. em. Dr. Horst Wettstein. Von der untersten Schicht "Infrastruktur" bis hin zur obersten Schicht "Steuerung" steigt der Grad der Abstraktion zum eigentlichen Rechnersystem und dessen Hardwarekomponenten. Dabei handelt sich um ein sehr abstraktes Schichtenmodell, in dass sich eigentlich jedes bestehende Betriebssystem einteilen läßt.

Wettstein'sches Schichtenmodell
Abbildung 2.1.: Wettstein'sches Schichtenmodell [23]


Die einzelnen Schichten sind wie folgt zu verstehen:
  • Infrastruktur: Auf dieser untersten Schicht sind grundlegende Dinge wie Prozesse, Adreßräume (vgl. Arbeitsspeicher) und die Kommunikation zwischen Prozessen definiert. In dieser Schicht findet man auch die bereits oben genannte Programmierschnittstelle.

  • Dienste: Mit der Dienstschicht werden Dinge wie zum Beispiel das Dateisystem, die Partitionierung der Festplatte, Treiber für Hardwarekomponenten, Bildschirmfenster (im Falle einer grafischen Benutzerschnittstelle) oder die Möglichkeit eine Datei anzulegen verbunden.

  • Anwendungen: Diese Schicht ist die Nutz-Schicht mit den Anwendungen, die der Benutzer des Rechnersystems ausführen will. Ein anschauliches Beispiel wäre ein auf dem Betriebssystem installierter Text Editor.

  • Steuerung: In dieser Schicht wird die Steuerung des Rechners durch den Benutzer ermöglicht, insbesondere das Starten von Anwendungen. Bei einem Betriebssystem mit einer grafischen Benutzerschnittstelle würde ein Klick mit der Maus durch diese Schicht ermöglicht.
Nach dieser genaueren Betrachtung des Wettstein'schen Schichtenmodells wird ein weiterer Aspekt deutlich: Jede übergeordnete Schicht greift auf Funktionen der Unterschicht zu.

Ein Beispiel:
  • Der Benutzer startet ein Textverarbeitungsprogramm durch einen Klick mit der Maus auf das dazugehörige grafische Symbol innerhalb der grafischen Benutzerschnittstelle (Steuerung).

  • Das installierte Textverarbeitungsprogramm wird gestartet (Anwendungen).

  • Die grafische Oberfläche (Fenster, Schaltflächen, etc.) des Textverarbeitungsprogramms baut sich innerhalb der grafischen Benutzerschnittstelle auf (Dienste).

  • Das Textverarbeitungsprogramm erhält einen eigenen Prozess und einen eigenen Adressraum im Arbeitsspeicher (Infrastruktur).
Die folgende Abbildung zeigt das konkrete Schichtenmodell eines UNIX-Systems.

Unix Schichtenmodell
Abbildung 2.2.: Die Schichten eines UNIX-Systems [20]


Die neuen Begriffe, die Sie dieser Abbildung entnehmen können, werden in die den folgenden den Kapiteln näher erläutert.