LINUX Ein Überblick
Transcrição
LINUX Ein Überblick
PROSEMINAR LINUX W INTERSEMESTER 2001/02 Leitung: Prof. Dr. Christoph Strelen Werner Sandmann Kay Michael Masslow Verena Wolf LINUX Ein Überblick THOMAS BERNDT [email protected] -bonn.de Version 1.0 3 Oktober 2001 1 0 Inhalt 1 Grundaufbau 3 1.1 System Features. . . . . . 1.2 Software Features. . . . . 1.2.1 Textverarbeitung unter 1.2.2 Programmierung . . . . 1.2.3 Das X Window System. . 1.3 Linux im Netzwerk. . . . . 2 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 5 6 7 8 9 2.1 2.2 Die Free Software Foundation . . . . . . . . . . 9 Die GNU – General Public License (GPL) . . . . . 9 Historie 10 Linus Torvalds . . . . . . . . . . . . . . . . . 10 Linux – Ein historischer Abriss. . . . . . . . . 10 Distributionen 4.1 Das 4.2 Die 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 5 . . . . . . Copyright 3.1 3.2 4 . . . . . . Linux . . . . . . . . . 15 Konzept . . . . . . . . . . wichtigsten Distributionen. Redhat Linux. . . . . . . . S.u.S.E Linux . . . . . . . Caldera OpenLinux . . . . . Mandrake Linux. . . . . . . Debian GNU/Linux. . . . . . Slackware Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Installation 5.1 Wahl der Distribution . . . . . . . 5.2 Berücksichtigung der Hardware . . . 5.3 Backup des alten Systems (optional) 5.4 Partitionierung . . . . . . . . . . 5.4.1 Repartitionierung . . . . . . . 5.4.2 FDISK . . . . . . . . . . . . . 5.5 Die Swap Partition. . . . . . . . . 5.6 Laufwerke unter Linux . . . . . . . 5.7 Installation. . . . . . . . . . . . 5.7.1 Booten des Linux Kernels. . . . 5.7.2 Booten von Diskette . . . . . . 5.7.3 Booten von CD . . . . . . . . . . 15 . 16 . 16 . 17 . 17 . 17 . 18 . 18 19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 . 20 . 20 . 21 .21 .22 . 23 . 23 . 23 .24 . 24 .25 2 1 Grundaufbau 1.1 System Features Wie alle UNIX-Derivate gehört auch Linux in die Sparte der Multitasking- / MultiuserBetriebssysteme. Das bedeutet, mehrere User können sich auf dem selben System simultan einloggen und dort unabhängig voneinander Programme ausführen. Linux ist kompatibel zu allen wichtigen UNIX-Standards, wie z.B. IEEE POSIX.1, UNIX System V und dem Berkeley System Standard. Durch diese Kompatibilität ist ein Großteil der frei verfügbaren UNIX-Software auf Linux einsetzbar. Jede für UNIX entwickelte Software lässt sich ohne größere Probleme unter Linux kompilieren. Die Quelltexte des gesamten Betriebssystems sind offengelegt. Angefange n beim Kernel, über Gerätetreiber, Bibliotheken bis hin zu den Applikationen und Entwicklungswerkzeugen sind alle Quelltexte einzusehen. Eine einfache Anpassung bzw. Modifikation des Systems zugunsten der Kompatibilität mit UNIX und anderen Betriebssystemen wird dadurch unterstützt. Die Interna des Betriebssystems unterstützen erweiterte Funktionen, wie etwa POSIX job control, Pseudoterminals sowie virtuelle Konsolen. Ursprünglich entwickelt auf einer i368er Plattform, hat Linux heute ein hohes Maß an Portabilität auf andere Plattformen erreicht. Kernel für (Strong-)ARM, MIPS, DEC Alpha, Motorola 680x0, PowerPC, (Ultra-)SPARC, Netwinder und Hurd sind inzwischen verfügbar. Durch die in den Kernel integrierte Funktionalität zur schnellen 387-FPU-Emulation kann Linux sogar auf Computern ohne mathematischen Coprozessor genutzt werden. Dateisysteme Neben dem eigens für Linux entwickelten „ext2“ Dateisystem werden auch das „Xenix“ und „UNIX System V“ Dateisystem unterstützt. Zusätzlich kann Unterstützung für nahezu jedes weitere Dateisystem implementiert werden. Die Liste dieser Dateisysteme umfasst auch Support von MS-DOS, Windows FAT16 / FAT32 und NTFS-Dateisystemen. Der ISO-9660-CD-ROM Dateisystemstandard wird ebenfalls unterstützt. Netzwerkfähigkeit Die Netzwerkfähigkeiten umfassen Datentransfers über TCP/IP und UUCP. Daten können sowohl über SLIP (Serial Line Internet Protocol), PPP (Point-to-Point Protocol), PLIP (Parallel Line Internet Protocol) als auch über das Network File System (NFS) ausgetauscht werden. Dabei steht die gesamte Bandbreite an TCP/IP Clients und Diensten zur Verfügung. Mehr zu den Netzwerkfähigkeiten von Linux findet sich im Abschnitt 1.3. Speicherverwaltung Die von Linux verwendete Speicherverwaltung besitzt herausragende Eigenschaften. Der Standardkernel unterstützt das Prinzip der sogenannten “demand-paged, loaded executeabels“. Hierbei werden nur die benötigten Teile eines laufenden Programms von der Festplatte in den Hauptspeicher geladen. Laufen mehrere Instanzen eines Programms gleichzeitig, so können bereits im Speicher vorhandene Programmteile einer fremden Instanz referenziert und genutzt werden, ohne diese mehrfach in den Speicher laden zu müssen. Dies, sowie das Konzept der dynamically shared libraries (DLLs) führt zu einer erheblichen Entlastung des Hauptspeichers. 3 Wie auch Windows kann Linux die Größe des tatsächlich vorhandenen Hauptspeichers mit disk paging virtuell erweitern. Benötigt das System mehr Speicher werden selten oder nicht mehr genutzte Speicherinhalte in Form von „Speicherseiten“ (pages) auf eine Swap-Partition der Festplatte ausgelagert. Nichtsdestotrotz ist das disk paging, oder auch swaping, kein Ersatz für einen größeren (schnellen) Hauptspeicher. Vergleichbar ist dies mit der von Windows erstellten Auslagerungsdatei. Linux legt die Speicherauslagerung jedoch nicht als Datei im bestehenden Dateisystem ab, sondern auf einer eigenen Festplattenpartition. Bei Zugriff auf die Daten erhöht dies geringfügig die Zugriffszeit auf die ausgelagerten Speicherinformationen. Disk-Cache Anders als Windows nutzt Linux den gesamten zur Verfügung stehenden Speicher für den Disk-Cache. Während sich Windows an eine feste Größenvorgabe hält und den Cache unabhängig vom sonstigen Speicher verwaltet, teilt sich Linux den gesamten Speicher für Programmausführung und „Caching“. So steht der gesamte, nicht für die Programmausführung belegte Speicher für den Disk Cache zur Verfügung. Bei einer von Linux unterstützen Maximalgröße des Hauptspeichers von derzeit 64GB können auf diese Weise ganze Festplatten zwischengespeichert werden. Ein schneller Zugriff auf die Daten ist damit gewährleistet. Debugging Programmierer finden mit Linux eine ideale Entwicklungsumgebung vor. Insbesondere das Auffinden von Programmfehlern wird durch das Erstellen eines Kernelabbilds im Falle eines Absturzes erleichtert. Anhand eines solchen Abbilds lassen sich Fehler, die zum Absturz des Systems führen, leicht ausfindig machen und beheben. 1.2 Software -Features Linux bildet eine vollständige UNIX-Umgebung nach. Alle grundlegenden UNIX-Befehle und Standardwerkzeuge sind unter Linux vorhanden. Darüber hinaus bietet Linux eine Fülle von Texteditoren und Shells. Zu den bekanntesten Editoren gehören vi, ex, pico, jove und der GNU- emacs-Editor. Von Letzterem gibt es sehr viele Varianten sowohl für Konsole als auch das X-Window-System. Viele Programme sind GNU-Portierungen der UNIX-Originale. Sie zeichnen sich insbesondere durch ihre Kompatibilität zu den ursprünglichen Programmen aus, warten aber häufig mit einem erweiterten Funktionsumfang auf. Oftmals sind die GNU- Tools den eigentlichen UNIX-Programmen dadurch deutlich überlegen. Die Kompatibilität zu UNIX überzeugt insbesondere bei Nutzung der Shells. Eine Shell ist ein Programm, welches Eingaben vom Benutzer empfängt und diese ausführt (ähnlich der DOS-Eingabeaufforderung). Kann man eine bestimmte Shell unter Linux bedienen, so besteht die Möglichkeit, mit der gleichen Shell (und damit dem gleichen Befehlssatz) auch ein UNIX-System zu steuern. Da es sich bei den Shells unter Linux größtenteils um UNIX-Portierungen handelt, ist die Wahrscheinlichkeit, eine passende Shell auf einem UNIX-System vorzufinden, hoch. 4 Anders als auf DOS können unter Linux mehrere Shells genutzt werden. Doch nicht allein die Anzahl der Shells ist entscheidend. Es können zudem auch mehrere Shelltypen benutzt werden. (Ab Windows 95 bietet sich z.B. an, mehrere DOS Eingabeaufforderungen zu öffnen. Es handelt sich jedoch immer um dieselbe „Shell“, versehen mit den selben Features, dem selben Befehlssatz und den selben (beschränkten) Möglichkeiten). Unter Linux stehen mehrere Typen von Shells zur Verfügung. Hauptsächlich unterscheiden sie sich durch den Befehlssatz und die verwendete Syntax. Beispielsweise verwendet die C-Shell (csh) eine Befehlssyntax, die stark an die Programmiersprache C erinnert. Die klassische Bourne-Shell (sh) benutzt hingegen eine andere Befehlssyntax. Inwieweit sich das Arbeiten mit Linux komfortabel und effektiv gestalten läßt, hängt stark von der Wahl der Shell ab. Die Vorteile der einen Shell sind oft die Nachteile einer anderen. Die GNU-Bourne-Again-Shell (bash) muss gesondert erwähnt werden. Sie ist eine vom GNU-Projekt weiterentwickelte Neuauflage der Bourne-Shell (sh); die Namensgebung weist humorvoll darauf hin. Es handelt sich um die wohl am häufigsten verwendete Shell. Sie wurde gegenüber dem Original um einige Befehle und Möglichkeiten erweitert und besitzt das Potential als Allround-Shell genutzt zu werden. Sie unterstützt job control, besitzt eine Befehlshistory und verfügt über Befehls- und Dateinamenkomplettierung. Auch die Umleitung der Ein- und Ausgaben, sowie Shell-Skripts (ähnlich den MS-DOS batch Dateien) wird unterstützt. Da es sich bei Linux um ein Multitasking- / Multiuser-Betriebssystem handelt, ist darauf zu achten, dass zumindest eine Auswahl an Shells und Texteditoren installiert wird. So hat jeder Benutzer potentiell die Möglichkeit, mit einer vertrauten Shell bzw. einem vertrauten Texteditor zu arbeiten. 1.2.1 Textverarbeitung unter Linux Unter Linux steht dem Nutzer eine Vielzahl von Textverarbeitungsprogrammen zur Verfügung. Man unterscheidet hier zwischen word processing und text processing Lösungen. Während sich auf Windows und OS/2 fast ausschließlich das Konzept des word processings in Form von WYSIWYG (What-You-See-Is-What-You-Get) Software durchgesetzt hat, findet sich unter Linux zusätzlich eine konzeptuell völlig andere Form der Textverarbeitung, das so genannte text processing. Textverarbeitungen auf WYSIWYG Ba sis erfreuen sich großer Beliebtheit. Der Nutzer kann seine Arbeit im endgültigen Layout direkt am Bildschirm betrachten und bearbeiten. Die gedruckte Form des Dokuments gleicht nachher exakt der Bildschirmpräsentation. Nichtsdestotrotz unterliegt WYSIWYG Software Beschränkungen - insbesondere bei Aspekten des Textlayouts. Beispielsweise können mathematische Gleichungen nur mit erhöhtem Aufwand oder dem Einsatz zusätzlicher Programme bzw. PlugIns in angemessener Form zu Papier gebracht werden. Ein Beispiel hierfür bietet der mit Microsoft Office ausgelieferte Formeleditor. 5 Die auf das Prinzip des text processings aufbauenden Softwarelösungen gehen einen anderen Weg. Der Benutzer setzt sein Dokument in einem beliebigen Texteditor auf und nutzt dabei eine Seitenbeschreibungssprache, d.h. er fügt in den eigentlichen Text control codes ein. Diese bestimmen später das Erscheinungsbild des Textes. Das so formatierte Dokument wird mit Hilfe eines separaten Programms (Compiler) in eine druckreife Version konvertiert. Textverarbeitungen dieser Art erfreuen sich unter Linux großer Beliebtheit. Die Mächtigkeit dieser Tools übersteigt die einer WYSIWYG-Anwendung meist um ein Vielfaches. Mit dem Konzept der Seitenbeschreibungssprache hat man eine komplexe Programmiersprache zur Hand. Das Erstellen ungewöhnlicher Layouts und komplexer wissenschaftlicher Formeln ist damit möglich. Bei WYSIWYG-Software ist eine Suche bestimmter Funktionen bzw. Buttons bisweilen schwierig. Essentielle Anwendungen sind hier Programme wie z.B. groff , TEX bzw. LaTEX. Bei groff handelt es sich um eine Weiterentwicklung des klassischen troff, ursprünglich entwickelt von den Bell Labs. Dieses text processing System wird bis heute auf vielen UNIX-Rechnern weltweit eingesetzt. Die von groff genutzte Seitenbeschreibungssprache ist zwar sehr gewöhnungsbedürftig, groff hat jedoch den Vorteil, die Ausgabe als ASCII-Text bereitzustellen. Lesbarkeit und Ausgabe in Konsolen wird damit erhöht. TEX, sowie der Dialekt LaTEX, zielen eher auf eine professionelle Erstellung von Printmedien ab. Ihre Ausgabe ist graphischer Natur. Sie lässt sich jedoch mit Anwendungen wie xdvi auch auf Bildschirmen (vor einer Ausgabe auf Printmedien) lesen. Kommerzielle Software für den WYSIWYG-Einsatz ist auch unter Linux zu finden. Hierzu gehören Vertreter von Core, Applix und Star Division. Sun Microsystems bietet mit seinem StarOffice ein Office-Paket an, welches für den privaten Gebrauch kostenfrei genutzt werden kann. Das Paket ist zu großen Teilen kompatibel zu den von Microsoft Office genutzten Dateiformaten und bietet ein ähnliches GUI. 1.2.2 Programmierung Linux bietet sich in hervorragender Weise als Programmierplattform an. Mit den Standardbibliotheken, Compilern und Debuggern unter Linux stehen all die Programmierwerkzeuge zur Verfügung, die auch auf den meisten UNIX-Systemen zur Anwendung kommen. Der POSIX.1 Standard erlaubt zudem eine leichte Portierung von Linux-Software auf UNIX-Systeme. Folglich können UNIX-Softwareprojekte auf der Basis von Linux entwickelt werden. Viele UNIX-Programmierer nutzen dies, um Softwareprojekte zu Hause zu entwickeln oder Ihre Arbeit nach Dienstschluss voranzutreiben. In der gewohnten Umgebung schreiben sie Ihre Programme und portieren ihre Arbeit später auf das UNIX-System ihrer Firma. Diese Möglichkeit schafft nicht nur erhöhte Produktivität, sondern spart auch Geld. Nicht jeder Arbeitnehmer ist bzw. kann zu Hause mit einer teueren UNIX-Workstation ausgerüstet werden. ;-) 6 Linux eignet sich darüber hinaus bestens als Lehrbetriebssystem. Der interne Aufbau von Betriebssystemen kann Studenten, dank der frei verfügbaren Kernel-Sourcen (Quelltexte), sowie der frei verfügbaren Programmierwerkzeuge, leicht nahegebracht werden. Zusammen mit Linux hat man Zugang zu praktisch jeder gängigen Programmiersprache und damit zu deren Standardbibliotheken, Compilern, Debuggern und anderen wichtigen Entwicklungswerkzeugen. In der Linux- und UNIX-Welt sind die meisten Betriebssysteme und Programme mit C bzw. C++ geschrieben. Neben C finden sich noch weitere Entwicklungsumgebungen für FORTRAN, Pascal, Java, LISP, Scheme, Smalltalk und Modula-2. Auch Assembler für diverse Hardwareplattformen gehören zur Ausstattung. 1.2.3 Das X-Window-System Mit dem X-Window-System, oder einfach nur X, besitzt Linux das UNIXStandardinterface für graphische Anwendungen. Mit diesem GUI (Graphical User Interface) lassen sich grafische Applikationen nutzen. Es können so beispielsweise mehrere verschiedene Konsolen und Shells simultan ausgeführt werden. Die Darstellung der Programme erfolgt jeweils in Fenstern. Das Konzept ähnelt stark dem von MS Windows verwendeten System zur graphischen Darstellung, ist jedoch weitaus flexibler. Entwickelt am MIT (Massachusetts Institute of Technology), basiert das X-WindowSystem auf einer Client- / Server-Architektur. Der X-Server ist hierbei zuständig für die Erstellung der Grafik. Clients in Form von Anwendungsprogrammen oder Fenstermanagern kommunizieren mit dem X-Server und fordern diesen beispielsweise auf, Fenster mit einer bestimmten Größe und Eigenschaft, oder aber ganze Desktopumgebungen zu erstellen. Durch die in den X-Server fest integrierte TCP/IP-Schnittstellenfunktionalität können graphische Anwendungen auch von entfernten Computern genutzt werden. Der Berechnungsaufwand geht dabei zu Lasten des Rechners, auf dem die ausgeführte Software vorliegt. Die graphische Ausgabe des Programms erfolgt auf dem lokalen Rechner. Dank dieser Funktionalität können Programme, die eines enormen Rechenaufwands bedürfen, auf einfachen Workstations genutzt und kontrolliert werden. Beispielsweise werden riesige Datenbanken, Server und Cluster (Ansammlung von vernetzten Rechnern, die sich Rechenlast teilen) oftmals auf diese Weise von entfernten Terminals gesteuert. Fehlende Schutzmechanismen vorausgesetzt, könnte gleiches in einem CIP-Pool der Universität dazu missbraucht werden, auf den dort vorhandenen Rechnern die dreimillionste Nachkommastelle der Kreiszahl ? zu berechnen. Selbstverständlich geht dies auf Kosten der Systemleistung anderer Computer. Viele Firmen vertreiben proprietäre Versionen oder Erweiterungen des X-WindowSystems auf kommerziellem Wege. Die für Linux verwendete Version von X, das Xfree86 System (eine Abwandlung des X11R6), ist, wie der Name schon impliziert, eine „freie“ Variante. Linux bleibt also auch in diesem Aspekt der Philosophie „freier Software“ treu. 7 Die Xfree86-Distribution unterstützt eine Vielzahl von Videokarten, darunter VGA, SVGA und hardwarebeschleunigte Grafikkarten, etwa die gesamte TNT / GeForce Serie der Firma Nvidia. Des Weiteren sind Bibliotheken und Entwicklungswerkzeuge enthalten, um selbst X- Anwendungen zu programmieren. 1.3 Linux im Netzwerk Linux unterstützt in erster Linie zwei Netzwerkprotokolle: 1. TCP/IP (Transfer Control Protocol / Internet Protocol) 2. UUCP (UNIX-to-UNIX Copy) Mit TCP/IP steht das Standardprotokoll für Datenaustausch über das Internet zur Verfügung. Linux und eine Internetverbindung über TCP/IP reichen aus, um alle nur erdenklichen Internetdienste nutzen zu können. Die Bandbreite reicht dabei von Email (electronic mail), über FTP (File Transfer Protocol) bis hin zur Nutzung von telnet und newsgroup-Anwendungen. Die meisten TCP/IP-Verbindungen nutzen Ethernet-Netzwerke für den Datentransport. Linux unterstützt viele der bekannten Ethernet-Netzwerkkarten für DesktopPCs, aber auch Netzwerkadapter in PCMCIA-Bauform. Letztere findet in mobilen Rechnern Anwendung. Per SLIP (Serial Line Internet Protocol) und PPP (Point-to-Point Protocol) werden auch Internetverbindung über Modem/ISDN unterstützt. Verfügt der eigene PC über eine Ethernet-Internetdirektverbindung und eine Reihe von seriellen Einwahlports (Modems bzw. ISDN Adaptern), so kann er potentiell für andere Rechner als SLIP- oder PPP-Server konfiguriert werden. Innerhalb eines Netzwerkes können über NFS (Network File System) ganze UNIXDateisysteme für eine gemeinsame Nutzung freigegeben werden. Darüber hinaus bietet Linux mit Samba, AppleTalk und dem IPX-Netzwerkprotokoll Zugriff auf Windows, Macintosh und Novell-Netzwerke. Viele weitere, teils ältere oder weniger verbreitete, Netzwerkprotokolle stehen ebenfalls bereit. Einer Integration von Linuxsystemen als Clients oder leistungsfähige Server in praktisch jedes nur erdenkliche Netzwerk beliebte steht nichts im Wege. 8 2 Copyright 2.1 Die Free Software Foundation (FSF) Die Free Software Foundation (FSF) wurde 1985 von Richard Stallman gegründet. Sie setzt sich maßgeblich für die Verwirklichung und den Schutz eines Software-Konzepts ein, das es dem Nutzer gestattet, Einblicke in die von ihm genutzten Programmen zu bekommen, diese frei vervielfältigen, modifizieren sowie selbst vermarkten zu dürfen. In diesem Sinne propagiert die FSF die Nutzung ´freier Software` - insbesondere die Nutzung freier Betriebssysteme, die unter der GNU General Public License stehen (mehr zur GNU General Public License im nächsten Abschnitt). Die weitaus verbreitetste Variante eines solchen Betriebssystems ist Linux. Oft wird es auch als GNU/Linux bezeichnet. Im Gegensatz zu anderen Organisationen, die ´freie Software` ausschließlich vertreiben, hat sich die FSF das Ziel gesetzt, neue Software auf freier Basis zu entwickeln (bzw. deren Entwicklung zu fördern) und damit ein “vollständiges“ System bereitzustellen, welches die Nutzung proprietärhehr (Betriebssystem-)Software überflüssig macht. Neben der Entwicklung freier Software und deren Förderung schützt die FSF die Rechte derer, die Software im Sinne der FSF entwickeln. Zu diesem Zwecke stellt die FSF Lizenzen bereit. Die GNU General Public License ist eine dieser Lizenzen. Die FSF finanziert sich hauptsächlich aus den Erlösen ihrer Distributionspartner. Diese Erlöse stammen hier meist aus dem Verkauf von CD-ROMs und Handbüchern. 2.2 Die GNU - General Public License (GPL) Linux steht unter der GNU General Public License, auch GPL genannt. Die GPL wurde von der Free Software Foundation für das GNU Projekt ins Leben gerufen und stellt maßgeblich Konzepte zur Verfügung, welche die Verbreitung und Modifikation freier Software regulieren. Linus Torvalds veröffentlichte sein Betriebssystem Linux nicht von Anfang an unter dieser Lizenz, sondern wählte zunächst eine weitaus restriktiveren Form, welche zwar die freie Weitergabe seiner Software gestattete, es jedoch strikt untersagte kommerziellen Nutzen daraus zu erzielen. Der oft verwendete Begriff ´freie Software` bedarf einer Klärung. Bei ´freier Software` handelt es sich nicht, wie irrtümlich oft angenommen, um ´Public Domain` Software. Public Domain Software zeichnet sich durch das gänzliche Fehlen von Copyrights aus. Ferner ist die Software, wie aus dem Begriff bereits hervorgeht, Eigentum der Gemeinschaft. GPL- lizensierte Software hingegen unterliegt einem Copyright. Das bedeutet, der Eigentümer der Software ist durch international geltende Copyrightgesetze als solcher festgehalten. Des Weiteren ist GPL-lizensierte Software keine Shareware. Shareware unterliegt geltenden Copyrightgesetzen. Die Autoren stimmen einer kostenlosen Verbreitung der Software zu, für eine legale Nutzung der Programme muss jedoch eine Lizenz erworben werden. Die GPL hingegen erlaubt es den Usern die Software frei zu beziehen, zu nutzen, zu modifizieren, ja sogar eigene Versionen, der so modifizierten Software zu vertreiben. 9 Sie verpflichtet Programmierer dazu, Programme, die von GPL- lizensierter Software abgeleitet sind, ebenfalls unter die GPL zu stellen. Dieser Aspekt macht es unmöglich, dass Software modifiziert und anschließend unter einer restriktiveren Lizenz vermarktet wird. GPL Software kann also sowohl von Privatpersonen, als auch von Unternehmen frei bezogen, sowie von ihnen frei oder gegen Entgeld vertrieben werden. Beim Vertrieb der Software ist es dem Händler dabei nicht gestattet, das Recht des Käufers einzuschränken, die Software seinerseits erneut zu gleichen Bedingungen weiterzugeben. Bei jeder Weitergabe, müssen die Quellen frei zugänglich sein. 3 Historie 3.1 Linus Torvalds Linus Benedict Torvalds ist der „Erfinder“ von Linux. Er wächst in der schwedisch sprechenden Minderheit Finnlands als erstgeborenes Kind in einer chaotischen Studenten- und Journalistenehe auf, die kurz darauf zerbricht. Die Mutter arbeitet in Helsinki für eine Nachrichtenagentur, der Vater ist freier Journalist im Umfeld der kommunistischen Partei Finnlands. Während sich seine jüngste Schwester durch die Flucht in den Katholizismus von der atheistischen Familie absetzt, entdeckt Linus den Computer, zuerst ein Commodore VIC-20, dann einen Sinclair QL. Ohne Sozialkontakte stürzt er sich auf die Maschinen und lernt sie bis ins letzte Detail kennen. Die absolute Macht über diese einfachen Computer fasziniert ihn - Er fühlt sich als Gott der Maschine. Nach dem Schulabschluss und dem Armeedienst entscheidet sich Torvalds für ein Informatikstudium und einen teueren Allerwelts-PC mit Intel Prozessor. Auch diesen will er in allen Details erkunden und kennen lernen. Das Abenteuer beginnt... 3.2 Linux – Ein historischer Abriss Es wäre ein Leichtes, die Anfänge des Betriebssystems Linux, auf das Erscheinungsdatum der Versionsnummer 0.01 zu datieren, jedoch nicht ausreichend genug, um die Geschichte des Betriebssystems erschöpfend zu dokumentieren. Da es sich bei Linux um ein UNIX Derivat handelt widmen wir uns zunächst den Anfängen von UNIX. Die Suche nach der Grundidee, auf der Linux basiert, führt uns zurück in das Jahr 1969. Das Stichwort mit dem die Geschichte beginnt lautet: “Multics“. Multics ist ein von den Bell Laboratories (AT&T und Western Electronics) entwickeltes frühes Betriebssystem, das seiner Zeit noch mit Lochkarten operiert. Die bereits existierenden Ansätze werden mit Unterstützung von AT&T und Western Electric unter der Mitarbeit von Ken Thompson und Dennis Richie weiterentwickelt. Obwohl sich das Unternehmen Bell Laboratories bald aus der Entwicklung zurückzieht gibt Thompson das Projekt nicht auf und führt es mit nun unentbehrlich gewordener Unterstützung von AT&T weiter. Zum Entwicklerteam, gehören unter anderem auch Rudd Canaday und Brian Kernighan. Letzterer gibt dem Betriebssystem im Jahre 1970 den Namen UNIX. 10 Thompson der die Leitung über das Projekt übernimmt, legt 7 primäre Richtlinien für das Betriebssystem fest. Hierzu gehört die hierarchische Anordnung der Dateisysteme. (Für gute Übersichtlichkeit auch bei großer bzw. wachsender Datenmenge) Als weiteres Ziel wird eine Standardisierung der Ausgabe von Daten an Peripheriegeräte sowie in und aus Dateien angestrebt. Prozesse und Programme sollen die Möglichkeit besitzen miteinander zu kommunizieren, sollen aber unabhängig voneinander ablaufen. (Multitasking) Weitere Ziele sind die Implementierung persönlicher Shells, die Kompatibilität sowie Portabilität auf andere Hardware. Im Jahre 1971 ist das auf einer DEC PDP-7 entwickelte UNIX als Version 1 bereits auf eine PDP-11 portiert. Bis zur Version 4 entwickelt Dennis Ritchie die Programmiersprache C. Das aufwendig in Assembler programmierte Unix wird fast vollständig in C übersetzt, was der Portabilität zugute kommt. Da das so entstandene UNIX nur noch zu kleinen Teilen aus Assembler Routinen besteht, die aufgrund ihrer Natur stark hardwaregebunden sind, kann zum ersten mal die geforderte Hardwareunkabhängigkeit des Betriebssystems erreicht werden. Einer der wohl wichtigsten Schritte, nicht nur für die spätere Entwicklung von UNIX, sondern auch für die anderer Betriebssysteme. Heute liegt nahezu allen Betriebssystemen eine Programmierung mit C zugrunde. UNIX entsteht ursprünglich aus eher weniger erhabenen Beweggründen. Linus Torvalds schreibt in seiner kürzlich beim Hansa Verlag erschienenen Autobiographie “Just fo r Fun – Wie ein Freak die Computerwelt revolutionierte“: “... Wie bei so vielen anderen Entwicklungen im Computerbereich war sein Nährboden der Spieltrieb. Es brauchte jemanden der Computerspiele auf einer PDP-11 spielen wollte. Dafür nämlich wurde UNIX zunächst entwickelt – als Dennis’ und Kens persönliches Projekt, Space Wars zu spielen.“ Weil das Betriebssystem nicht als ernsthaftes Projekt betrachtet wird, gilt es bei AT&T lange Zeit nicht als kommerzielle Unternehmung. Tatsächlich ist AT&T zu dieser Zeit eine regulierte Monopolgesellschaft und darf aufgrund vertraglicher Bedingungen mit der USBundesregierung keine Computer verkaufen. UNIX hätte seinerzeit also ohnehin nicht kommerziell vermarktet werden können. Der Quellcode wird gegen geringes Endge ld Universitäten, Lehr- sowie Forschungsanstalten zur Verfügung gestellt. Die hiermit erreichte Quantifizierung derer, die an dem System arbeiten, hat im folgenden Verlauf eine ungeheuere dynamische Entwicklung von UNIX zur Folge. Schon 1975 wird die Version 6 als erstes UNIX-System veröffentlicht. Die wenig später darauf folgende Version 7 stößt auf großes Interesse und wird im späteren Verlauf unerwartet erfolgreich. Da es keine Standardisierung aufgrund mangelnden Informationsaustausches unter den diversen Firmen gibt, die an UNIX arbeiten, und auch eine zentrale Instanz fehlt, kommt es dazu, dass bald die verschiedensten Firmen eigene UNIX-Derivate entwickeln. 1984 wird AT&T schließlich per Gerichtsbeschluss gestattet UNIX zu vermarkten. AT&T ändert seine Lizenzpolitik umgehend und vertreibt nunmehr das Betriebssystem unter rein kommerziellen Gesichtspunkten als ´System V` (UNIX V). AT&T versucht damit eine internationale Standardisierung von UNIX zu erreichen. Die Firma Sun trägt mit der Vermarktung von SunOS zur gleichen Zeit stark zur Ausbreitung von UNIX bei. 11 Unabhängig von AT&T gelingt noch im gleichen Jahr ein großer Schritt in Richtung Standardisierung durch uneingeschränkten Informationsaustausch, als Richard Stallmann die Free Software Foundation (FSF) gründet. Sie ruft ein Projekt namens GNU ins Leben, welches zum Ziel hat ein freies UNIX System zu schaffen. Der Name GNU steht für „GNU is not UNIX“, und gehört zu den vielen rekursiven Akronymen, bei denen einer der Buchstaben für das Akronym selbst steht – eine Art InsiderWitz, den außer Informatikern kein Mensch versteht. Richard Stallmann schreibt das FreeSoftware-Manifest und die General Public License (GPL) Die GPL wird im späteren Verlauf zum Erfolgsgeheimnis von Linux, das praktisch vo n Grund auf unter die GPL gestellt wird. Die GPL legt fest, dass die durch sie lizensierte Software für jeden im Quellcode verfügbar sein muss und jeder das uneingeschränkte Recht besitzt diesen Code zu modifizieren, solange die Modifikationen ebenfalls als Quellen zur Verfügung gestellt werden. Hierdurch kommt es nunmehr zu regem Informationsaustausch seitens der Entwickler. Der eigentliche Anreiz zur Entwicklung von Linux geht auf das Jahr 1987 zurück. Die wachsende Popularität des Betriebssystems UNIX veranlasst AT&T die Verwendung der Quellcodes an den Universitäten zu untersagen. UNIX darf somit nicht mehr vom Anwender selbst kompiliert oder verändert werden. Eine Lizenz zur Nutzung von UNIX muss von nun an teuer erstanden werden. Dieser Umstand schmerzt besonders die Studenten, da an den Universitäten zumeist Gelder für eine teuere Lizenzierung von UNIX fehlen. In seiner Autobiographie schreibt Torvalds: “... Die Universität Helsinki ließ für die MicroVAX eine Lizenz für sechzehn Anwender springen. Das bedeutete, dass die Teilnehmerzahl an der ´C und UNIX`-Veranstalltung auf zweiunddreißig Studierende beschränkt war – ich nehme an, man stellte sich vor sechzehn Leute würden tagsüber und sechzehn nachts damit arbeiten...“ An der Freien Universität vo n Amsterdam entwickelt Professor Andrew Tanenbaum, Spezialist für Betriebssystemarchitektur, daraufhin “Minix“, ein kostengünstiges LehrBetriebssystem, dass die gleiche Funktionalität wie UNIX 7 bietet, jedoch unabhängig von dem, von AT&T verwendeten, Quellcode ist. Das Projekt findet großen Anklang und im Internet entsteht rasch die Newsgroup comp.os.minix, eine Gemeinde, die sich dem Minix Kernel annimmt, diesen verbessert und Anwendungen für das neue Betriebssystem programmiert. Da die Struktur von Minix und UNIX im Wesentlichen gleich ist, fällt es nicht schwer UNIX Programmierer zu finden, die willens sind für Minix zu programmieren. Immerhin wurde einem Großteil von Ihnen, kurz zuvor, der UNIX Quellcode von AT&T unsanft aus den Händen gerissen. Einer dieser begabten Programmierer ist Linus Torvalds der als Student für Computerwissenschaften an der Universität von Helsinki Minix nutzt und die Bücher von Professor Tanenbaum gelesen hat. Von Minix nicht vollständig zufriedengestellt ist er es, der sich die fixe Idee in den Kopf setzt ein “besseres Minix als Minix“ zu schaffen und so beginnt er 1991 damit einen UNIX ähnlichen Kernel für AT-386er zu programmieren. Als Linus davon im Internetforum berichtet, reagiert der Minix-Schöpfer Tanenbaum mit Häme. Das eng an die Intel- Architektur angelegte “Freax“ – so wollte Torvalds sein Linux ursprünglich nennen – sei unmodern, da es sich nicht auf andere Rechner übertragen lasse. Ohne den Ehrgeiz, es dem etablierten Akademiker zu zeigen, wäre Linux wohl nicht entstanden. Auf comp.os.minix kann man in diesen Tagen lesen: “... Zu dieser Zeit begann ich mit C zu arbeiten, und damit ging alles schneller. Etwa 12 gleichzeitig wurde es mir auch mit der größenwahnsinnigen Idee ernst, ´ein besseres Minix als Minix` zu schaffen. Ich hoffte, dass ich eines Tages in der Lage sein würde, gcc unter Linux zu kompilieren... ... Ich brauchte zwei Monate für ein Grundsystem, aber danach nur etwas länger für einen Festplattentreiber (voller Fehler, aber zufälligerweise funktionierte er auf meinem Rechner) und ein kleines Dateisystem. Etwa zu der Zeit stellte ich die Version 0.01 zur Verfügung (Ende August 1991): Sie war nicht schön, sie hatte keinen Treiber für Diskettenlaufwerke, und sie konnte kaum etwas Sinnvolles tun. Ich glaube nicht, dass irgendjemand diese Version jemals kompiliert hat. Aber ich hatte Feuer gefangen und wollte nicht aufhören, bevor ich Minix rausschmeißen konnte...“ Ganz im Sinne der FSF stellt er am 5. Oktober 1991 die erste offizielle Version 0.02 mit dem Namen Linux (einer Wortkreation gebildet aus einer Kombination seines Vornamens und UNIX) der Internet Gemeinde vor, und versucht Mitstreiter für die weitere Entwicklung zu finden. Er schreibt: “...Sehnt Ihr Euch nach den schönen Zeiten von Minix 1.1 zurück als Männer noch Männer waren und ihre eigenen Gerätetreiber schrieben? Fehlt Euch ein Projekt und verlangt es Euch danach, Eure Zähne an einem Betriebssystem zu wetzen, das Ihr nach Eueren Vorstellungen modifizieren könnt? Seid Ihr frustriert, wenn unter Minix alles funktioniert? Keine durchwachten Nächte mehr, um ein nettes Programm zum Laufen zu bringen? Dann könnte diese Mail genau für Euch bestimmt sein... ...Wie ich vor einem Monat bereits erwähnte, arbeite ich an einer freien Version eines Minixähnlichen Systems für AT-386er. Das System ist so weit gediehen, dass man damit arbeiten kann (oder auch nicht, je nachdem, was ihr haben wollt), und ich bin bereit, den Quellcode zwecks weiterer Verbreitung zur Verfügung zu stellen. Es handelt sich erst um die Version 0.02 ... aber ich habe bereits bash, gcc, GNU make, GNU sed, compress usw. zum Laufen gebracht. ...“ Seine Appelle fallen mit der zu dieser Zeit einsetzenden Revolution des Internets auf fruchtbaren Boden, und so trägt das Internet hauptsächlich dazu bei, dass Linux an Bekanntheit gewinnt. Die Rubrik comp.os.linux wird eröffnet und der hierüber in alle Welt verbreitete Quellcode hat binnen kürzester Zeit zur Folge, dass dank der aktiven Mithilfe vieler neuer Programmierer, dermaßen große Fortschritte erzielt werden können, dass die Versionsnummer nach Erscheinen von 0.03 umgehend auf Version 0.10 erhöht wird. Etwa im Frühjahr 1992 gelingt es dem Hacker Orest Zborowski das X-Window-Projekt, das seinen Ursprung am MIT (Massachusetts Institute of Technology) hat, nach Linux zu portieren. Damit erhält Linux zum ersten mal ein graphisches Benutzerinterface (GUI – Graphical User Interface) und wird somit für den Desktopbereich interessant. Damit das X-Window-System funktioniert bedarf es eines X-Servers, der mit den Clients kommuniziert. Als Clients sind hier Programme zu verstehen, die den X-Server auffordern z.B. ein Fenster mit spezifizierten Attributen wie Größe, Position Farbe, etc zu erstellen. Diese Kommunikation läuft über eine Schicht von Sockets, oder förmlicher, Unix Domain Sockets. Sie werden für die interne Kommunikation in UNIX Systemen, aber auch für die Kommunikation über Netzwerke und das Internet verwendet. Deshalb programmiert Orest die erste Socket Schicht für Linux, nur um darauf X zu portieren. Orests Beitrag bringt Linux jedoch nicht nur ein Fenstersystem alla ´Windows` ein, sondern öffnet auch das Tor zur Netzwerkfähigkeit des Betriebssystems. 13 Da die Grundstruktur für Sockets bereits gelegt ist und regelrecht nur darauf wartet um die noch fehlende Netzwerkfähigkeit des Betriebssystems erweitert zu werden. In seiner Überzeugtheit das Ziel nahezu erreicht zu haben und ein vollständiges Betriebssystem zu haben, dass neben einer graphischen Benutzeroberfläche auch Netzwerkfähigkeiten implementiert, wagt Linus einen kühnen Sprung in der Versionszählung und deutet im März 1992 (nur kurze Zeit, nachdem das X-Window-System implementiert wurde), mit der Version 0.95 die baldige Fertigstellung des offiziellen Release an. Wie sich später herausstellt, wäre es sinnvoller gewesen bei der Versionsnummervergabe nicht allzu optimistisch gewesen zu sein. In der Folgezeit wird es reichlich knapp an Versionsnummern und so heißt es einundhalb Jahre später noch immer: 0.99p114 – Die Versionsnummer hat sich inzwischen asymptotisch der 1.0 angenähert. Man scheint jedoch diesmal pessimistischer zu sein, immerhin hält Linus Torvalds es für nötig der Versionsnummer vier Dezimalstellen anzuhängen – reichlich Raum für neue Vorabversionen. Linus kommentiert dies später mit den Worten: “... Nun, wo die grafische Benutzerschnittstelle realisiert war, war ich sicher, dass wir unser Ziel, ein ausgewachsenes und obendrein netzwerkfähiges Betriebssystem freizugeben, zu etwa 95 Prozent erreicht hatten. Deshlab nannte ich die neue Freigabeversion 0.95 Junge, Junge, das war vielleicht vorschnell. Und blauäugig. Vernetzung ist ein ekelhaftes Geschäft, und wir mussten fast zwei Jahre investieren um sie ordentlich hinzubekommen und eine Form zu finden, in der wir sie freigeben konnten... ...Wegen meiner allzu optimistischen Benennung der Version 0.95 war ich in einem Dilemma. Im Laufe der zwei Jahre, die wir brauchten, um Version 1.0 auf die Reihe zu bekommen, sahen wir uns zu ein paar verrückten Zahlenspielereien gezwungen. Es gibt nicht viele Zahlen zwischen 95 und 100, und wir gaben ständig neue Versionen mit korrigierten Fehlern oder zusätzlichen Funktionen frei. Als wir bei Version 0.99 angekommen waren, fingen wir deshalb an Patch-Levels durch zusätzliche Nummern zu kennzeichnen, und als nächstes griffen wir auf das Alphabet zurück. ...“ 1994 gibt Torvalds dann endlich die lange erwartete Version 1.0 frei und dem Linux Fieber steht nichts mehr im Wege. Wie sehr Linux erwartet worden war, zeigen statistische Erhebunge n über die Beliebtheit von Newsgroups ein Jahr zuvor. Schon im Vorfeld hatte Linus die Statistiken verfolgt und mit angesehen, wie comp.os.linux, zuerst unter die Top40, und letztlich sogar unter die Top5 kam. Damals, wie auch heute war alt.sex die unschla gbare Nummer eins auf der Beliebtheitsskala. In seiner Autobiographie liest man: “... Irgendwann 1993 schafften wir es unter die Top5. An diesem Abend ging ich strotzend vor Selbstzufriedenheit ins Bett, bebend vor Aufregung, dass Linux fast so populär geworden war wie Sex. Meine eigene kleine Ecke der Welt hatte demgegenüber ganz sicher nichts Vergleichbares zu bieten. Ich hatte damals kein richtiges Leben. Wirklich nicht... ... Ich aß, ich schlief. Vielleicht ging ich zur Uni. Ich programmierte. Ich lass eine Menge EMails. Mir war klar, dass manche meiner Freunde mehr Sex hatten, aber das war okay. Offen gesagt die meisten meiner Freunde waren auch Loser.“ Als Torvalds zu einem seiner ersten Vorträge nach Holland eingeladen wird, versucht er, Professor A. Tanenbaum an der Universität Amsterdam mit einem großen Blumenstrauß zu überraschen – doch dessen Tür ist verschlossen. 14 Mit Vorstellung des Fenstermanagers KDE 1.0, im Jahre 1998 erfuhr Linux gewaltige Zuwachsraten. Sie übertrafen sogar deutlich die, des von Microsoft entwickelten Konkurrenzprodukts, Windows NT. Ein Jahr zuvor zog Linus Torvalds mit seiner Frau Tove von Helsinki nach Santa Clara in Kalifornien. Dort arbeitet er für die Firma Transmeta, aber noch immer ist er an der Entwicklung neuer Linux Kernel aktiv beteiligt. Über die Ziele von Transmeta blieb man lange Zeit im Ungewissen. Mitte Januar 2001 stellte die Firma dann ihr Produkt vor: Den Transmeta Crusoe RISC Prozessor, der nur etwa die Hälfte der Energie verbraucht, wie herkömmliche Prozessoren - Ideal geeignet für Handhelds, Notebooks und Handys. In diesem Zusammenhang hat Compaq erst vor kurzem mit Vorstellung des ersten Linux betriebenen PocketPC (iPaq) mit dem Vorurteil aufgeräumt, dass Linux ausschließlich auf leistungsfähigen Großrechnern, Mainframes und Clustern eingesetzt werden kann. Das Spektrum von Linux Portierungen reicht inzwischen von Amiga, Macintosh, DEC Alpha, PowerPC, bis hin zu PocketPCs mit MIPS und (Strong-)ARM CPUs. Sogar die ein oder andere Armbanduhr trägt inzwischen das Vermerk “Linux Inside“. Der ungeheueren Flexibilität des Betriebssystems scheinen keine Grenzen gesetzt zu sein. 4 Distributionen 4.1 Das Konzept Auf den ersten Blick scheint das Konzept der ´GNU Public License` in sich widersprüchlich zu sein. Warum sollte man GPL Software kaufen, wenn sie ohnehin aus anderen Quellen, beispielsweise über das Internet, frei beziehbar ist? Als gutes Beispiel dienen hier große Dirstibutoren von Linux. Als Wichtigste seien hier genannt die Redhat Software Incorporation, die S.u.S.E. Deutschland GmbH, die Caldera Systems Incorporation, MandrakeSoft, das Debian Project Team, sowie das Slackware Linux Project (mehr dazu den genannten Distributoren im Abschnitt 4.2). Diese Unternehmen bündeln das eigentliche Betriebssystem mit weiteren Anwendungsprogrammen, statten es (meist) mit benutzerfreundlichen Installations-Assistenten aus und vermarkten das so von ihnen zusammengestellte Produkt auf CDs oder DVD. Als Beispiel dient hier die recht umfangreich bestückte ´S.u.S.E. Linux 7.2 Professional` Distribution. Sie wird auf sieben CDs, einer DVD, sowie vier gedruckten Handbüchern vertrieben. Die beiliegende DVD beinhaltet dabei sämtliche Software der CD Kollektion und erspart bei der Installation lästiges Wechseln der Medien. Vorbei die Zeit, in denen man sich als Disc Jockey betätigen musste. ;-) Die Produkte anderer Distributoren sind ähnlich umfangreich, so dass die Hersteller zweifelsfrei gezwungen sind, für diese Aufwendungen finanziellen Ausgleich zu schaffen. Das an sich ´freie` Produkt wird letztendlich kommerziell vermarktet. Praktisch alle Distributoren bieten ihre Distribution dennoch für einen sehr moderaten Preis an. Ein ´Professional` Distribution von S.u.S.E kostet beispielsweise etwa 90 DM. 15 Studenten können eine noch weitaus günstigere ´Campus-Version` beziehen und werden positiv überrascht sein, eine ´Professional` Version frei Haus geliefert zu bekommen. Selbst ein durch Distributoren vertriebenes Linux muss keineswegs einen preislichen Vergleich mit den Konkurrenzprodukten von Microsoft scheuen. Viele Distributoren bieten ihre aktuellen Distributionen zudem zum kostenlosen Download im Internet an. Hier stehen dem User ein eigens dafür eingerichteter FTP Server mit extrem hoher Bandbreite zur Verfügung. Einem kostenlosen Download von mehreren Gigabyte steht somit (zumindest seitens der Distributoren) nichts im Wege. ;-) Der Vorteil von kommerziell vermarkteten Distributionen liegt klar auf der Hand. Die auf diesem Weg vertriebene Software erreicht auch Personen, die keinen Zugang zum Internet haben, oder deren Anbindung nur über geringe Bandbreite verfügt (Modem/ISDN). Hiermit wird es meist unmöglich, die teils riesigen Datenmengen ökonomisch online zu beziehen. Der Kauf einer Distribution stellt hier die eindeutig günstigere Alternative dar. 4.2 Die wichtigsten Distributionen Hier ein Überblick über die bedeutendsten Distributionen 4.2.1 Red Hat Linux Hersteller : FTP Server : Support : Red Hat Software, Inc. http://www.redhat.com Red Hat Linux für Intel i386er Red Hat Linux für DEC Alpha Red Hat Linux für Sun SPARC ftp://ftp.redhat.com/pub/redhat http://www.redhat.com/support/ Development : http://developer.redhat.com/ Beschreibung: Red Hat Linux ist außer für Intel, auch für Digital Alpha und Sun Microsystems SPARC Plattformen verfügbar. Es wird aus einem gemeinsamen Sourcen-Tree für alle drei Hardwareplattformen entwickelt. Auf allen Hardwareplattformen sind die selben Entwicklungswerkzeuge, wie z.B. C/C++ Compiler, Programmiersprachen und diverse Scriptsprachen vorhanden. Durch das weiterentwickelte Packet-Management mit RPM ist man einfach in der Lage, Pakete zu installieren, deinstallieren und zu updaten Distributionen : 16 4.2.2 S.u.S.E. Linux Hersteller : Distributionen : FTP Server : Support : Beschreibung: 4.2.3 4.2.4 S.u.S.E. Deutschland / S.u.S.E. USA http://www.suse.de / http://www.suse.com S.u.S.E. Linux für Intel i386er S.u.S.E. Linux für DEC Alpha S.u.S.E. Linux für PowerPC S.u.S.E. Linux für SPARC ftp://ftp.suse.de/ (Deutschland) ftp://ftp.suse.com/ (USA) http://www.suse.de/Support/sdb/ (deuts ch) http://www.suse.de/Support/sdb_e/index.html S.u.S.E. Linux, die meistverkaufte deutsche Linux-Distribution, bietet einen einfachen und sicheren Einstieg in die Linux-/Unix-Welt. Neben einer menügeführten Installation von CD oder der beigelegten modularen Bootdiskette verfügt S.u.S.E. Linux mit YaST / YaST2 (Yet another Setup Tool) über ein mächtiges Werkzeug zur komfortablen Installation und Administration des Linux-Systems. Zahlreiche neue X-Server bieten Unterstützung für aktuelle Grafikkarten. Caldera OpenLinux Hersteller : Caldera Systems, Inc. http://www.caldera.com Distributionen : FTP Server : Support : OpenLinux für Intel i386er ftp://ftp.calderasystems.com/pub/OpenLinux http://www.calderasystems.com/support/ MandrakeSoft Hersteller : Distributionen : FTP Server : Support : Beschreibung: MandrakeSoft http://www.mandrakesoft.com Mandrake Linux für Intel i386er Mandrake Linux für PowerPC ftp://ftp.linux-mandrake.com http://www.mandrakeexpert.com Das aktuelle Linux Mandrake 8.0 bietet 11 Fenstermanager und Desktopumgebungen. Darunter auch KDE 2.1.1, GNOME 1.4 und WindowMaker. Diese setzen auf dem neuen Xfree86 4.0.3 auf (3D Hardware Acceleration Support). Vollintegriert ist auch das neue Mandrake Control Center, welches leichten Zugriff auch alle Konfigurationen des Systems bietet. Die Kernelversion 2.4.3 sorgt für zahlreiche neue Features und PerformanceVerbesserungen. 17 4.2.5 Debian GNU/Linux Hersteller : Distributionen : FTP Server : Support : Beschreibung: 4.2.6 Debian Project Team http://www.debian.org/ Debian GNU/Linux für Intel i386er Debian GNU/Linux für ARM Debian GNU/Linux für DEC Alpha Debian GNU/Linux für Motorola 680x0 Debian GNU/Linux für PowerPC Debian GNU/Linux für SPARC ftp://ftp.debian.org/debian http://www.debian.org/support.html Debian enthält über 1500 fertig kompilierte Programmpakete. Enthalten sind z.B. WWW Server, Gimp, gcc, egcs, XFree86 und SQLServer. Debian ist für i386, Motorola m680x0, Alpha, SPARC und PowerPC verfügbar. An einer Unterstützung von UltraSparc, Netwinder und Hurd wird gearbeitet. Debian verfügt über einen sehr leistungsfähigen Paketmanager. Er erlaubt eine einfache Installation und einfaches Updaten bereits installierter Pakete unter Berücksichtigung von Abhängigkeiten. The Slackware Linux Project Hersteller : Slackware Linux Project http://www.slackware.com Distributionen : Slackware Linux für Intel i386er Slackware Linux für DEC Alpha Slackware Linux für SPARC FTP Server : Support : Beschreibung: ftp://ftp.slackware.com http://www.slackware.com/support/ Die Distribution enthält ein leicht zu installierendes Linux System, Source Code und ein Linux live Dateisystem. Slackware Linux ist kompatibel mit den meisten PCs mit mindestens einem 386SX. Die erweiterten Features bieten Unterstützung für symmetrisches Multiprocessing (mit bis zu 16 Prozessoren) und spezielle Codeoptimierung für 486, Pentium und Pentium Pro. Slackware unterstützt die meisten CDROM Laufwerke, Soundkarten, Ethernetkarten und Mäuse 18 5 Installation 5.1 Wahl der Distribution Die Wahl der Distribution ist schwierig und hängt von vielen Faktoren ab. Um eine Hilfestellung bei der Auswahl der richtigen Distribution zu geben, wird in diesem Abschnitt auf entscheidende Faktoren und Aspekte hingewiesen, die bei der Auswahl berücksichtigt werden sollten. Bei den folgenden Beispielen beschränken wir uns auf die im letzten Abschnitt aufgeführten Distributionen. Zunächst sollte die Fragestellung beantwortet werden, wofür das System später primär eingesetzt werden soll. Wird der Nutzen des Systems im Serverbereich liegen, oder ist der Aufbau einer benutzerfreundlichen, einfach zu bedienenden Workstation geplant? Linux als Netzwerk Server/Client Wird das System in ein Netzwerk integriert stellt, sich die Frage nach der Größe des Netzes, sowie nach der im Netz vorhandenen Hardware. Die Größe, sowie die Anzahl der verschiedenen Hardware Plattformen sind maßgebliche Faktoren für die Entscheidung zugunsten einer bestimmten Distribution. Jedes Netzwerk bedarf Wartung und Administration. Angenommen man ist Administrator eines großen Firmennetzwerkes mit mehreren hundert Workstations (Clients) und einer Vielzahl von Servern. Gehen wir des Weiteren davon aus, dass alle Workstations mit der gleichen, uns wohl bekannten Distribution operieren. Tritt nun ein Problem auf, ist man in der Lage schnell eine Lösung herbeizuführen, da man mit der verwendeten Distribution bestens vertraut ist. Man kennt die Stärken und Schwächen des Systems und kann angemessen darauf reagieren. Nun ein anderes Szenario: Jeder Mitarbeiter des Unternehmens nutzt eine andere Linux Distribution. Tritt ein Problem auf, ist man konfrontiert mit einer Unmenge von ´verschiedenen` Client Rechnern. Jede Distribution hat ihre Eigenarten, Tücken und Fehler. Selbst für einen erfahrenen Systemadministrator ist es unmöglich, all diese Eigenarten zu kennen und ein solches System sicher zu administrieren. Hier kommt die Überlegung ins Spiel, welche Plattformen in das Netz eingebunden werden sollen. In einer Firma finden sich sowohl Pentium PCs, als auch alte Macs und im Keller teilt sich eine moderne UltraSPARC mit einer Alpha die Serve raufgaben. Man möchte sich, aus oben bereits genannten Gründen, möglichst auf eine Distribution beschränken. Hier bietet sich z.B. die Distribution von Debian an. Diese bietet Unterstützung für praktisch jede Hardware Plattform, die sich in unserem Netzwerk findet. Leider gehört Debian Linux nicht zu den benutzerfreundlichsten Vertretern und es stellt sich die Frage, ob man nicht lieber eine S.u.S.E Distribution installiert. Man möchte schließlich, dass die Mitarbeiter des Unternehmens effektiv an den Computern arbeiten können und nicht schon beim Einloggen scheitern. Die persönlichen Präferenzen und Erwartungen eines Anwenders sind ebenfalls entscheidend. So wird ein ´Hacker`, der Spaß am kryptischen Arbeiten mit exotischen Shells hat, sicher mit einer Slackware Distribution glücklicher sein als mit einer S.u.S.E Installation. Wir gehen aber davon aus, dass unsere Firma nicht ausschließlich aus ´Hackern` besteht. ;-) 19 Gerade S.u.S.E ist in Deutschland sehr verbreitet, da S.u.S.E als erster Distributor Support für ISDN und auch für DSL in den Standard Kernel integrierte. Solche Features sind oft ausschlaggebend für eine Nutzung zu Hause. 5.2 Berücksichtigung der Hardware In Abschnitt 5.1 haben wir gesehen, dass die Wahl der Distribution stark von der Plattform abhängt, auf der das Betriebssystem installiert wird. Neben der Plattform spielt aber auch die darauf eingesetzte Hardware eine wichtige Rolle. Da Linux noch immer, zu großen Teilen, semi-professionell von Programmieren in aller Welt weiterentwickelt wird, resultiert daraus, dass häufig nur Treiber für Hardware bereitgestellt werden kann, die eine Vielzahl dieser User besitzt. Die Wahrscheinlichkeit, dass ´exotische` oder teuere Hardware nicht, oder noch nicht, unterstützt wird ist folglich hoch. Will man Linux nutzen, sollte man sich zunächst kundig machen, welche Hardware im PC verbaut ist. Nutzer von Windows 9x, ME sowie Windows 2000/NT können mit einem Blick in die Systemsteuerung (System/Gerätemanager) schnell einen Überblick gewinnen. Finden sich dort viele ´Exoten`, sollte man eine Installation von Linux vielleicht noch einmal überdenken. 5.3 Backup des alten Systems (optional) Ist auf dem Computer kein Betriebssystem installiert, oder soll es durch Linux ersetzt werden, kann dieser Abschnitt übersprungen werden. Soll das alte Betriebssystem hingegen beibehalten werden und mit Linux (vielleicht gar auf derselben Festplatte) koexistieren, bietet sich ein vollständiges Backup des alten Betriebsystems an. Bevor wir mit der eigentlichen Installation von Linux beginnen, muss Platz für das neue Betriebssystem geschafft werden. Eine Partitionierung der Festplatte(n), bzw. eine Größenanpassung der bestehenden Partition(en) steht bevor. Dabei werden Änderungen an der Partitionstabelle durchgeführt. Ein möglicher Fehler kann zu vollständigem, irreparablen Datenverlust führen. Unabhängig von dem bereits installierten Betriebssystem empfiehlt sich für das Backup die Nutzung eines sogenannten Disk Imagers. Dieses Programm ließt Partitionen bzw. komplette Festplatten des PCs sektorweise aus und sichern die so gelesenen Daten in eine Backupdatei. Mit Hilfe des Programms und der erstellten Datei lässt sich das ursprüngliche Festplattenabbild später wiederherstellen.. Besitzt man einen CD Writer, sollte das Backup auf einer bootfähigen CD gesichert werden. Neben den Bootdateien kann hier ebenfalls der Disk Imager abgelegt werden. Ein nützliches Tool für diesen Zweck, dass auch in der Shareware Version den benötigten Funktionsumfang bietet, findet sich auf: http://www.hdcopy.de/ Alternativ können auch die Produkte von Powerquest (DriveImage) oder Norton (Ghost) genutzt werden. Letztere besitzen eine graphische Oberfläche. Sie haben jedoch den 20 Nachteil weitaus größer zu sein. Ist eine Sicherung auf bootfähiger CD nicht möglich, kann die Unterbringung dieser Programme auf bootfähigen Disketten so schnell zu einer kniffligen Angelegenheit werden.. 5.4 Partitionierung Bevor wir mit der Installation beginnen muss sichergestellt sein, dass genügend freier Speicherplatz für Linux auf der Festplatte zur Verfügung steht. Diesen Speicherplatz fassen wir zu einer ´Linux native` sowie zu einer ´Linux swap` genannten Partition zusammen. !!! Hinweis !!! Es sei darauf hingewiesen, dass die graphischen Installationshilfen, nahezu aller großen Distributionen, bereits mit Werkzeugen zur komfortablen Partitionierung ausgestattet sind. Eine manuelle und aufwendige Partitionierung vor der Installation wird in vielen Fällen überflüssig. Häufig tritt die Situation auf, dass ein bereits bestehendes DOS oder Windows System beibehalten und mit Linux auf derselben Festplatte koexistieren soll. Das Dateisystem des bestehenden Systems vereinnahmt in solchen Fällen meist 100% der Festplattenkapazität. Hier ist eine manuelle Partitionierung vorziehen. Vor dem Erstellen der für Linux benötigten Partitionen, muss möglicherweise zunächst Festplattenkapazität freigegeben werden (ohne das bestehende DOS/Windows Dateisystem zu zerstören). Realisiert werden kann dies durch Verkle inerung der bestehenden Partition, die das alte Betriebssystem beinhaltet. (Nähere Informationen finden sich im nächsten Abschnitt). 5.4.1 Repartitionierung Wir gehen von der in Abschnitt 5.4 bereits beschriebenen Situation aus. Anders als beim Backup des alten Systems (siehe Abschnitt 5.3) sind wir bei der Wahl des Programms, welches zur Verkleinerung der Partition genutzt wird, nicht völlig frei. Hier kommt es auf das Betriebssystem an, das sich auf der zu verkleinernden Partition befindet. Repartitionierung von MS-DOS Partitionen Liegt eine MS DOS Partition vor, kann das Tool FIPS.EXE genutzt werden. Das Programm findet sich entweder auf den Distributionsdatenträgern oder kann kostenlos im Internet heruntergeladen werden. !!! ACHTUNG !!! FIPS.EXE ist ausschließlich für MS DOS Partitionen geeignet und kann auf FAT16 bzw. FAT32 Windows Partitionen keine Anwendung finden. Eine Beschreibung zur Repartitionierung von Windows Partitionen entnehmen Sie bitte dem Unterabschnitt “Repartitionierung von Windows Partitionen“. 21 Zunächst erstellt man eine Bootdiskette. Unter MS-DOS kann man mit dem Befehl format a: /s eine solche bootfähige Diskette erstellen. Der Datenträger im Laufwerk a: wird formatiert, anschließend die SystemDateien auf den Datenträger übertragen. Alternativ kann der Befehl sys c: a: benutzt werden. C: ist dabei die Festplatte des Betriebssystems, a: das Laufwerk mit der zu beschreibenden Diskette. Anschließend kopiert man FIPS.EXE auf die Diskette und bootet von dieser das System. Unmittelbar nach Start des Programms wählt man in dem erscheinenden Dialog, das zu repartitionierende Laufwerk aus, wählt shrink (schrumpfen) und fährt fort. Die Frage, ob der gesamte freie Speicherplatz für eine zweite Partition verwendet werden soll, beantwortet man mit “no“ (denn zwei neue Partitionen sollen erstellt werden). Nun können bereits bestehende Partition verkleinert und neue Partitionen mit gewünschter Größe erstellt werden. Für die ´Linux nativ` Partition sollten in etwa ein bis zwei Gigabyte veranschlagt werden. Die benötigte Größe richtet sich je nach Vollständigkeit der Installation. Eine vernünftige Größe für die Partition zur Speicherauslagerung (Linux swap) entnehmen Sie dem Abschnitt 5.5. Ist man mit den Angaben zufrieden, schreibt man die neue Partitionstabelle und startet den PC neu. Repartitionierung von Windows Partitionen Liegt eine Windows FAT16, FAT32, NTFS, eine OS/2 HPFS oder bereits eine alte Linux ext2 Partition vor, empfiehlt sich die Nutzung des Programms PartitionMagic von Powerquest. Das Programm ist nicht frei erhältlich und muss käuflich erworben werden. Mit der Software können alle nur erdenklichen Partitionstypen vergrößert, verkleinert, verschoben oder gar zusammenfasst werden. Das Erstellen von neuen Partitionen ist ebenfalls möglich. Die Nutzung des Programms ist selbsterklärend. Weitere Informationen finden Sie auf: http://www.powerquest.com/partitionmagic/ 5.4.2 FDISK Alternativ zu den in den Abschnitten 5.4 und 5.4.1 beschriebenen Verfahren können Sie auch das Programm FDISK.EXE für das Partitionieren der Festplatte(n) nutzen. Eine Nutzung setzt voraus, dass entweder freie Kapazität für weitere Partitionen verfügbar ist, der Datenträger noch nicht partitioniert ist, oder eine bestehende Partition in voller Datenträgergröße, den neu zu erstellenden Partitionen geopfert wird. Nahezu jedes Betriebssystem besitzt ein eigenes Derivat von FDISK.EXE. Eine Beschreibung entnehmen Sie den README Dateien, bzw. Manpages. 22 5.5 Die Swap Partition Ähnlich wie Windows nutzt auch Linux ein Speichermanagement, dass eine Speicheradressierung weit über den reell vorhandenen Hauptspeicher hinaus erlaubt. Daten die nicht im reellen Adressraum Platz finden, werden auf Festplatte ausgelagert. Weitere Informationen finden Sie im Unterpunkt Speichermanagement des Abschnitts 1.1. Anders als Windows nutzt Linux keine Auslagerungsdatei, sondern eine eigens dafür erstellte Partition. Es ist zwar möglich Linux mit einer Auslagerungsdatei zu betreiben, dieses Vorgehen ist jedoch wenig empfehlenswert. Die Größe der Partition sollte 16MB nicht unterschreiten. Nach Oben sind bei heutigen Distributionen nahezu keine Grenzen gesetzt. Abhängig von der Größe des verwendeten Hauptspeichers sollte eine Größe zwischen 128 und 512MB wählt werden. 5.6 Laufwerke unter Linux Linux Neueinsteigern kommt die Refferenzierung von Laufwerken mitunter recht eigenartig vor. Da eine manuelle Refferenzierung von Laufwerken bzw. Geräten während einer Installation von Nöten sein kann, soll hier zumindest ein Grundverständnis dafür geschaffen werden, wie ein Linux/UNIX System Datenträger verwaltet. In Linux und allen UNIX System werden Datenträger und Peripheriegeräte durch spezielle Dateien refferenziert. Vereinfacht gesehen betrachtet das Betriebssystem Festplatten, Bildschirme, Drucker, Mäuse etc. als Dateien, von denen gelesen bzw. auf die geschrieben werden kann. Nach erfolgter Installation können diese Geräte unter dem Verzeichnis /dev (für devices) eingesehen werden. Beispielsweise wird die zweite Partition einer, an den primären E-IDE-Controller angeschlossenen, Slave Festplatte mit /dev/hdb2 angesprochen. /hd steht dabei für Harddisk, b für die zweite Festplatte am Controller (also Slave) und 2 für die zweite Partition. Mit diesem Grundverständnis können wir uns nun an die Installation wagen. 5.7 Installation Selbst für einen durchschnittlich begabten Linux Nutzer ist es schwierig, ein voll funktionsfähiges System von Grund auf einzurichten. Beginnend bei dem Kernel, müssen weitere Device- Treiber installiert und unzählige Software Pakete von Hand hinzugefügt werden. Hier kommen die bereits erwähnten Distributionen ins Spiel. Es handelt sich hier um eine Zusammenstellung von Software, die in Ihrer Gesamtheit ein voll funktionstüchtiges Betriebssystem ergibt (siehe Ab schnitt 4). Mit Ihren meist komfortabel ausgestatteten Installationshilfen ist eine Installation kein großes Hindernis. Mittels der Installationshilfe können auf graphischer Basis (teils auch in Form einer ACSII-Konsole) die Optionen für eine Installation komfortabel festgelegt werden. Zum festen Funktionsumfang gehören mittlerweile das Partitionieren der Festplatte(n), die Konfiguration von Peripheriegeräten sowie der Netzwerkeinstellungen. Auch das Routing in Netzwerken und das Einrichten eines Internetzugangs über PPP (Modem/ISDN) oder PPPoE (DSL) sind oftmals schon während der Installation möglich. 23 Eine Installation gestaltet sich ähnlich einfach wie die der Konkurrenz- Produkte Windows NT/2000. Lediglich die etwas weiter in die Tiefe gehenden Konfigurationsoptionen können unerfahrene Nutzer leicht verunsichern. Bei der Konfiguration des X-Servers wird es oftmals nötig die minimalen und maximalen horizontalen/vertikalen Wiederholungsraten des Monitors anzugeben. Falsche Einstellungen können zu irreparablen Beschädigungen des Monitors führen. Hier lohnt sich ein Blick ins Handbuch. 5.7.1 Booten des Linux Kernels Bevor man die Installation von Linux aufrufen kann, muss das System mit dem Linux Kernel gebootet werden. Die Linux Installation folgt dabei dem gleichen Konzept wie eine Windows-Installation. Bei einer Windows-Installation muss zunächst mit DOS oder Windows (DOS 7.0) gebootet werden bevor das Setup aufrufen werden kann. Analog lässt sich der Vorgang bei einer Linux-Installation betrachten. Hier starten man anstelle von MS-DOS den Linux Kernel. Es gibt zwei Möglichkeiten den Linux zu booten. Entweder man startet von einer (oder auch mehreren) bootfähigen Disketten, oder man greift auf die Fähigkeit moderner Rechner zurück von CD booten zu können. Letztere Option sollte, soweit vorhanden, bevorzugt werden. (weiter in Abschnitt 5.7.3). 5.7.2 Booten von Diskette Jede Linux Distribution wird mit einem MS-DOS Programm ausgeliefert, welches gestattet in einer DOS Umgebung Linux Bootdisketten zu erstellen. Das Programm RAWRITE.EXE (bzw. RAWWRITE2.EXE) bedient sich dazu einer Disk Image Datei und schreibt dieses Diskettenabbild im raw write Modus auf Diskette. (Das Programm ist vergleichbar mit dem Disk Imager, der bereits in Abschnitt 5.3 erwähnt wird) Für die Erstellung der Bootdisketten halten Sie einige frisch formatierte high density Disketten (3,5“ 1.44MB) bereit. Vergewissern Sie sich durch vorheriges Formatieren der Datenträger, dass diese frei von fehlerhaften Sektoren sind. Fehler dieser Art werden beim Schreiben des Diskettenabbildes nicht bemerkt und führen zu einer fehlerhaften Bootdisk. Machen Sie die Diskettenabbildung(en) (Disk Image Datei/en) ihrer Distribution ausfindig und übertragen Sie diese mit dem Befehl rawwrite <diskimage> <driveletter> auf die Diskette(n). Anschließend booten Sie den Rechner von den neuerstellten Bootdisk(s) und folgen den Anweisungen und Hilfestellungen Ihre Distribution. 24 5.7.3 Booten von CD Unterstützt der PC das booten von CD, so legen Sie die erste CD Ihrer Distribution in das CD- ROM Laufwerk ein und starten Sie den Rechner neu. Bootet der Rechner wie gewohnt, kann es erforderlich sein, die Bootreihenfolge im BIOS Ihres PCs zu verändern. Hierzu starten Sie den Rechner erneut und rufen während dieses Vorgangs das BIOS des Computers auf. Hier lässt sich festlegen, in welcher Reihenfolge der PC versucht von Geräten wie z.B. Diskettenlaufwerk, Festplatte, CD-ROM oder auch SCSI zu booten. Stellen Sie sicher, dass hier der Eintrag CD-ROM vor dem Eintrag Festplatte aufgeführt ist. Sichern Sie die neuen Einstellungen und starten sie den Rechner neu. Soll von einem SCSI CD-ROM Laufwerk gebootet werden, kann es je nach Controller nötig sein, die ID des Laufwerkes festzulegen von dem gebootet werden soll. Hier ist die entsprechende Option im BIOS des SCSI Controllers zu setzen. (schlagen Sie im Handbuch des SCSI Controllers nach). Analog zum Booten von E-IDE CD- ROM Laufwerken muss im BIOS der Eintrag SCSI allen anderen Einträgen vorangestellt werden. Startet das System von CD, folgen Sie den Anweisungen und Hilfestellungen Ihrer Distribution. Quellenverzeichnis: ?? Linus Torvalds, David Diamond "Just for Fun. Wie ein Freak die Computerwelt revolutionierte" Hanser Verlag - ISBN: 3446216847 ?? Linux Installation and Getting Started – Matt Welsh / Phil Hughes ?? c´t Magazin für Computertechnik 22/2001 ?? http://hardware.redhat.com/hcl/genpage2.cgi?pagename=hcl&statpage=icore ?? ghttp://linux-download.virtualave.net/linus-torvalds.htm ?? http://linux-download.virtualave.net/linux-geschichte.htm ?? http://linux1.mucl.de/muse/linux1/handouthtml/node3.html ?? http://user.cs.tu-berlin.de/~milenium/linux/linuxmain.htm ?? http://www.caldera.com ?? http://www.caldera.com/images/pdf/openlinux_3.1_technical_whitepaper.pdf ?? http://www.cs.helsinki.fi/u/torvalds/ ?? http://www.debian.org ?? http://www.debian.org/releases/stable/ ?? http://www.gnu.org/philosophy/philosophy.html ?? http://www.heise.de/ct/00/22/090/default.shtml ?? http://www.heise.de/ct/01/11/050/default.shtml ?? http://www.linux-mandrake.com/de/ ?? http://www.linux-mandrake.com/en/ppc.php3 ?? http://www.linux.de/linux/gnu.html ?? http://www.linux.org/ ?? http://www.linuxfocus.org/Deutsch/March1998/article27.html ?? http://www.redhat.com ?? http://www.slackware.com ?? http://www.slackware.com/faq/do_faq.php?faq=general#2 ?? http://www.suse.de ?? http://www.suse.de/de/support/download/index.html 25