Linux Workshop

Aus Zebradem WIKI
Zur Navigation springenZur Suche springen



Das Board mit Freiheiten




Kapitel 1

1 Einführung

1.1 Was ist linux?

Linux ist ein Betriebssystem. Als Betriebssystem stellt es die elementa- ren Funktionen zum Betrieb eines Rechners zur Verfügung. Anwendungs- programme bauen auf dem Betriebssystem auf. Es bildet die Schnittstel- le zwischen der Hardware und den Anwendungsprogrammen aber auch die Schnittstelle zwischen Hardware und Mensch (Benutzer). Ohne ein Betriebssystem ist der Computer nicht in der Lage, unsere Eingaben zu ?verstehen? bzw. zu verarbeiten. Die verschiedenen Betriebssysteme unterscheiden sich in der Art und Wf!:ise, wie sie die 9ben genannten Aufgaben ausführen. Linux ist in seiner Funktionalität und seiner Bedienung dem Betriebssystem Unix nachemp- funden.

1.2 Die Geschichte von Linux

Die Entstehungsgeschichte von Linux ist etwas Besonderes in der Com- puter-Welt. Linux ist nicht etwa das kommerzielle Produkt einer Firma, sondern ein Betriebssystem, das auf freiwilliger Basis von einer über die ganze Welt verteilten Schar computerbegeisterter Enthusiasten ins Leben gerufen wurde und weiterentwickelt wird. Das Internet stellt die Infra- struktur zur Kommunikation dieser Software-Entwickler zur Verfügung. Erst dadurch wurde ein so großes Projekt wie Linux überhaupt möglich. Die Linux-Entwickler nutzen diese Kommunikationsmöglichkeiten inten- siv und haben so das Betriebssystem Linux zu dem gemacht, was es heute ist. Linux ist also das Ergebnis einer internationalen Zusammenarbeit, ge- leitet von Linus Torvalds, dem ursprünglichen Autor. Der Urahn von Linux entstand im Jahre 1969. Er wurde von Ken Thompson bei den Bell Laboratories (dem Forschungsinstitut des US- amerikanischen Telefonmagnaten AT&T) entwickelt und erhielt den Na- men ?Unix?. Es verbreitete sich rasch vor allem in Universitäten, da die !3ell Labs die Quellen und Dokumentation zum Selbstkostenpreis ab- gaben (AT&T durfte aufgrund kartellrechtlicher Einschränkungen keine Software verkaufen). Im Laufe der Zeit entwickelten verschiedene Her- '-./ steIler unterschiedliche Unix- Varianten (z. B. Sinix, Xenix, Solaris von Sun Microsystems, BSD (Berkeley Software Distribution), System V von AT&T oder AIX von IBM). Das führte zu einer ziemlich unübersichtlichen Fülle verschiedenener Unix-Produkte. Es kam nie wirklich zu einer Standar- disierung, aber man kann in etwa zwischen BSD- und System-V-nahen Unix-Varianten unterscheiden. Die allerersten Teile von Linux wurden 1991 allein von Linus Torvalds, einem damals 23-jährigen Studenten aus Helsinki, entwickelt, als dieser die Möglichkeiten des Intel-386-Prozessors in seinem neuen PC genau- er untersuchte. Nach einigen Monaten war aus den Assemblerstudien ein kleines, lauffähiges Betriebssystem entstanden. Dieses System hatte ähnliche Eigenschaften, wie ein Unix-System, enthielt aber keinen Un- ix-Quellcode. Linus Torvalds gab den Programmcode über das Internet frei, und die Idee wurde mit Begeisterung von vielen Programmierern aufgegriffen und weiter entwickelt. Die im Januar 1992 herausgegebe- ne Version 0.12 war bereits ern stabillaufender Kernel. Es gab den gcc (GNU C-Compiler), die bash, emacs und viele der GNU Utilities. Dieses Betriebssystem wurde per Anonymous-FTP weltweit verteilt. Die Zahl der Programmierer, Tester und Unterstützer wuchs rasend schnell. Das ermöglichte eine Programmentwicklung, von der die mächtigen Softwa- reunternehmen nur träumen können. Innerhalb weniger Monate wurde aus dem weitgehend in Assembler geschriebenen Minikemel ein ausge- wachsenes Betriebssystem mit vollständiger Unix-Funktionalität. Dieses Projekt ist auch heute nicht abgeschlossen. Linux wird ständig aktualisiert und erweitert, und zwar von Tausenden von Programmierern auf der ganzen Welt, denen inzwischen mehrere Millionen zufriedene pri- vate und kommerzielle Anwender gegenüberstehen.

1.3 Open Source und GPL

Linus Torvalds hat seine eigene Entwicklung von Anfang an frei ange- boten. Jeder kann die Quelltexte bekommen und daran mitarbeiten. Für Linux werden keine Lizenzgebühren erhoben. Linux steht seit Beginn der Entwicklung unter der GNU General Public License (GPL) der Free Software Foundation (FSF). Die FSF wurde von Ri- GPL chard M. Stallman, dem Autor des Editors Emacs, mit dem Ziel gegründet, qualitative hochwertige Software frei verfügbar zu machen. Die wesentli- che Aussage der GPL liegt darin, dass in ihrem Sinne geschützte Software zwar jederzeit verändert und auch verkauft werden darf, aber immer zu- sammen mit dem (gegebenenfalls veränderten) Quellcode weitergegeben werden,muss -deshalb Open Source. Für GPL-Software dürfen u.a. kei- ne Einzelplatz-Lizenzen vergeben werden, unter der GPL liegender Code darf auch nicht in entsprechende Software eingearbeitet werden. Die GPL bezieht sich also auf den Vertriebstyp. Gegenteile wären eben eine Einzelplatzlizenz oder aber auch ?Public Domain Software?. Letztere gehört niemandem, jeder darf damit machen, was er möchte. Die Urheberrechte von GPL-Software liegen aber in der Regel auch weiterhin beim Entwickler und die GPL sagt sehr deutlich, was mit der Software gemacht werden darf. Die GPL sagt nichts über den möglichen Preis des Produkts aus. Es ist absolut legal, Kopien weiterzugeben oder gar Geld zu verlangen, solange man auch den Quellcode mitliefert und ihngenauso verfügbar macht wie jede Binärdatei, die man weiter gibt oder verkauft. GPL-Software ist damit also nicht unbedingt ?Freeware?. Mehr Informationen erhält man durch Lesen der GPL, die übrigens je~ dem entsprechenden Produkt beiliegen muss, so auch dem Betriebssystem Linux.

1.4 Der Kernel

Genaugenommen bezeichnet der Begriff Linux nur den Betriebssystem- kern, der die eigentlichen Aufg-aben des Betriebssystems übernimmt. Den Betriebssystemkern nennt man auch Kernel. Er beinhaltet ganz elementare Funktionen wie Speicher- und Prozessverwaltung und die Steuerung der Hardware. Für die Kommunikation des Anwender mit dem Kernel ist die sogenannte Shell notwendig. Natürlich gibt es nicht nur einen Kernel, sondern es existieren viele verschiedene Versionen. Es wird unterschieden zwischen stabilen Anwender-Versionen und instabilen Entwickler-Versionen. Um den Anwendern die Unterscheidung zwischen einer stabilen und einer Test-Version zu er- möglichen, bedient man sich des folgenden Schemas: Die Versionen 1.x.y bzw. 2.x.y sind bei geradem x stabile Versionen. Ein erhöhtes y kennzeich- net lediglich, dass Fehler beseitigt wurden, der Kernel an sich jedoch keine neuen Features aufweist (ab und zu werden neue Gerätetreiber integriert). V Beim Wechsel von Version 2.4.18 auf 2.4.19 wurden also nur Fehler berei- nigt, es gab keine neuen Eigenschaften. Die Versionen mit ungeradem x, z. B. 2.5.2, sind Entwicklungs-Versio- nen, die nicht für den Produktiveinsatz geeignet sind. Sie enthalten oft unzureichend getestete Codes und sind eigentlich für die Leute gedacht, die sich aktiv an der Entwicklung von Linux beteiligen wollen. Da Linux ständig weiter entwickelt wird, gibt es auch ständig neue Kernelversio- nen. Die Änderungen betreffen zumeist Anpassungen an neue Hardware oder die Optimierung sehr spezieller Funktionen. Die meisten Kernel sind heute modular aufgebaut. Frühere Kernel wa- ren monolithisch, das heißt, sie bestanden aus einem Stück, das sämtliche Aufgaben erfüllte, etwa die Unterstützung bestimmter Hardware. Wollte . man neue Hardware zum System hinzufügen oder ein neues Feature, z. - B. ein anderes Dateisystem verwenden, musste man sich aus den Quellen einen neuen Kernel übersetzen, ein sehr zeitintensiver Vorgang. Um das zu umgehen, wurden neuere Kernelversionen mit der Fähigkeit ausgestat- tet, zusätzliche Features in Form von Modulen einzubinden. Module sind Programmteile, die dynamisch (d. h. zur Lau,fzeit des ,J KerneIs) hinzugeladen und auch wieder entfernt werden können. Möchte man beispielsweise einen neuen SCSI-Controller verwenden, muss man keinen neuen Kernel kompilieren, sondern muss lediglich ein neues Ker- nelmodul hinzuladen.

1.5 Die Eigenschaften von linux

Linux zeichnet sich durch eine Reihe von Eigenschaften aus, die zum Zeit- punkt der Entstehung z. T. wegweisend für neuere Entwicklungen waren. -Echtes 32-Bit-Betriebssystem, z.T. auch schon mit 64-Bit-Unterstüt- zung. -präemptives Multitasking-System, d. h. mehrere Programme laufen zur seIben Zeit. -Multiuser- bzw. Multisession-System, d. h. mehrere Benutzer arbei- ten (gleichzeitig) auf demselben Rechnersystem. -Symmetric Multiprocessing (SMP, die Nutzung mehrerer Prozessoren) wird 1.mterstützt. -Linux läuft auf verschiedenen Plattformen z. B. Intel-PC, Sun SPARC, Macintosh, Motorola-680xO-Plattformen (Atari TT, Commodore Amiga) und COMPAQs Alpha. -Kann problemlos neben anderen Betriebssystemen auf dem gleichen Rechner installiert werden. -Hohe Stabilität und Zuverlässigkeit (z. B. durch Speicherschutz zwischen Prozessen und Kernel, sodass ein Programm nicht das ganze System zum Absturz bringen kann). -Effizienter Umgang mit Hardware-Ressourcen wie Speicher und Festplatte (z. B. Paging). -Dynamisch gelinkte Shared Libraries (Bibliotheken mit Systemfunk- tion werden nur einmal geladen, auch wenn sie von mehreren Prozessen benötigt werden). -Weitgehend kompatibel mit POSIX, System V und BSD auf der Ebe- ne des Quellcodes, daher laufen Unix-Programme. -Ausgefeilte eigene Dateisystemformate (Journaling, B- Trees, ...) -Transparenter Zugriff auf viele Dateisystemformate (FAT, NTFS, HPFS, ...) -TCP /IP-Netzwerkunterstützung -Viele verschiedene grafische Oberflächen stehenzur Auswahl, wobei der Wechsel im laufenden Betrieb möglich ist.

Aus den Eigenschaften ergeben sich verschiedene Vor- und Nachteile. Die größten Vorteile resultieren aus der Lizensierung: Linux ist sehr preiswert und kann den individuellen Bedürfnissen bis zum letzten Bit angepasst werden. Das System ist sehr stabil und geht schonend mit den Ressourcen um. Außerdem existieren Unmengen an Applikationen und Dokumentationen. Durch die offenen Quellen können Sicherheitslücken sehr schnell erkannt werden. Bugfixes stehen oft innerhalb von Stunden zu Verfügung. Das schnelle Entdecken von Sicherheitslücken kann natürlich auch von Nachteil sein. Weitere Nachteile sind die zum Teil schlechte Unterstützung von bestimmter Hardware (z. B. Winmodems oder GDI-Drucker). Oftmals ist die Bedienung von System und Applikationen nicht eben benutzerfreundlich. Bei der Entwicklung von Linux durch Enthusiasten oder auch Freaks standen andere Ziele als die Entwicklung eines benut- zerfreundlichen Programmes im Vordergrund. Außerdem: es gibt nicht ?das eine Linux?, sondern verschiedene Linux-Distributionen. Die Unter- schiede zwischen den Distribution sind allerdings mit den Jahren geringer geworden. Der Nachteil, der den Erfolg von Linux sicher am meisten be- hindert: Bekannte Software wird nicht immer unterstützt. Dieses Problem haben vor allem Umsteiger. Alternative Software muß beschafft werden, die Einarbeitung ist zum Teil aufwändig.

1.6 Einsatz von Linux

Linux wird heute weltweit sowohl im privaten als auch im professionellen Bereich (Firmen, Forschungseinrichtungen, Hochschulen) eingesetzt. Eine wichtige Rolle spielt es dabei besonders als System für Webserver (Apa- che), Mailserver (Sendmai!, Postfix), Fileserver (NFS, Samba), Print-Server V (LPD, CUPS), ISDN-Router, X Window-Termina!,Workstation usw. Linux wird u.a. von Firmen wie Sixt, Ikea, Mercedes-Benz, Telekom. ..(die Liste lie- ße sich endlos fortsetzen) auch in unternehmenskritischen Bereichen ver- wendet. Dazu kommt, dass namhafte Firmen wie IBM, Sun, Oracle, Sybase, Intormix, AOL, Lotus, etc. ihre Produkte bereits auf Linux abstimmen. 1.7 Die verschiedenen Distributionen Linux im engeren Sinne umfaßt nur den Betriebssystem-Kern. Um damit al:beiten zu können, benötigt man noch eine Vielzahl an System- und An- wendungsprogrammen, Bibliotheken, Dokumentationen usw. Distributo- ren bündeln eine aktuelle Auswahl davon zusammen mit eigenen Pro- grammen (insbesondere: Tools zum Installieren und Administrieren) und vertreiben diese Distribution zusammen mit weiteren Leistungen, wie z. B. Support, Dokumentation, Updates. Unterschiede gibt es vor allem in der Programmaus~ah!, den Administrationstools, den Zusatzleistungen und dem Preis. Neben den großen kommerziellen Distributionen (Conectiva, Mandrake, Red Hat, SCO, SuSE, Turbolinux u.a.) spielt auch die nichtkommerzielle Distribution Debian GNU /Linux eine große Rolle; sie stellt höhere Anforderungen an den Administrator, gilt aber als stabiler als die Kon- kurrenz. Daneben existieren viele weitere zum Teil spezialisierte Distributionen wie Knopp ix, das komplett von CD-ROM gestartet und betrieben wird, oder Ein-Floppy-Systeme (als Router, Firewall oder Rettungs- system). Obwohl es eine Unzahl an Distributionen gibt, verhalten sie sich in der täglichen Arbeit recht ähnlich. Das liegt zum einen darari, dass sie die gleichen grundlegenden Progra,mme benutzen -beispielsweise ist der Kommandozeileninterpreter fast immer die bash. Zum anderen gibt es Standards, die dem Wildwuchs entgegenwirken. Zu nennen sind hier der Filesystem Hierarchy Standard oder die Linux Standard Base.


Wichtige Links