Linux und BSD: Geschichte und Grundbegriffe
In diesem kurzen, einführenden Kapitel über Linux und BSD (Berkeley Software Distribution) möchten wir für alle Einsteiger eine kleine Einführung in die grundlegenden Begrifflichkeiten dieses Buches geben. Im Folgenden werden wir uns also der Linux/Unix/BSD-Thematik widmen.
Der Kernel
Der Begriff Linux bezeichnet eigentlich kein ganzes Betriebssystem, sondern nur die Kernkomponente, den so genannten »Kernel«. Damit man mit »Linux« etwas anfangen kann, benötigt man zusätzlich zum Kernel noch System- und Anwendersoftware.
Distribution/ Derivat
Diese zusätzliche Software wird zusammen mit dem Kernel und einer mehr oder weniger ansprechenden Installationsroutine von sogenannten Distributoren zu Distributionen zusammengepackt. In der Regel legt man diesen Distributionen zumindest bei kommerziellem Vertrieb noch Handbücher oder andere Dokumentation bei. Zu den bekanntesten Distributionen zählen Fedora, (Open)SUSE, Mandriva, Slackware, Gentoo und Debian mit seinen Derivaten[Fn. Lateinisch von derivare, »ableiten«, deutsch: Abkömmling] Knoppix, Ubuntu und Kubuntu.
BSD hingegen bezeichnet ein gesamtes Betriebssystem, also Kernel und Software. Unter BSD gibt es daher keine Distributionen, sondern nur Derivate. Diese Derivate haben unterschiedliche Kernel und teilweise auch verschiedene Softwarekomponenten. Die bekanntesten BSD-Derivate sind OpenBSD, NetBSD, FreeBSD und DragonflyBSD.
Bekannte Distributionen und Derivate
Eben haben wir geklärt, was Linux-Distributionen, Derivate von Linux-Distributionen und BSD-Derivate sind. Im Folgenden werden wir einen kleinen Einblick in die aktuelle Welt der Distributionen und Derivate geben. Der Rest des Buches geht dann nur noch in wichtigen Fällen auf Besonderheiten einzelner Distributionen und Derivate ein, da wir Ihnen Wissen vermitteln möchten, mit dem Sie in jedem System zum Ziel kommen.
|
Im nächsten Abschnitt, »Entstehungsgeschichte«, erfahren Sie mehr über die ersten Derivate und Distributionen. |
Arten von Distributionen
Live-CD/DVD
Es gibt Distributionen, die direkt von einer CD oder DVD gebootet werden können und mit denen Sie ohne vorhergehende Installation auf einer Festplatte arbeiten können.[Fn. Es gibt auch Distributionen, die von ganz anderen Medien, etwa einem USB-Stick, Flash oder Diskette, booten können.] Man nennt diese Distributionen Live-Distributionen. Hierzu zählt beispielsweise die Distribution »Knoppix«, die auch auf der Buch-DVD enthalten ist und die die grafische Oberfläche »LXDE« sowie viele Zusatzprogramme beinhaltet.
Embedded
Dann wiederum gibt es sogenannte »Embedded«-Distributionen. Eine Embedded- Distribution ist ein stark minimiertes System, bei dem alle unnötigen Programme und Kernel-Features deaktiviert wurden, um Speicherplatz und Rechenbedarf einzusparen. Sinn und Zweck solcher Systeme ist es, eine Distribution auf »Embedded Geräten« lauffähig zu machen, die teilweise nur über sehr wenig Hauptspeicher und Rechenleistung verfügen.[Fn. Es gibt hierfür übrigens auch speziell minimierte C-Bibliotheken, die Sie beispielsweise auf ftp.kernel.org finden.]
Verwendung finden Embedded-Distributionen unter anderem im Router-Bereich. Man versucht mit Distributionen wie OpenWRT oder FreeWRT auf diese Weise etwa Linux-Firewalls auf handelsüblichen Routern zu installieren.
Desktop, Server
Viele Distributionen sind sowohl für den Heimanwender-Desktop als auch für professionelle Workstations und sogar für Server ausgelegt (und dementsprechend in verschiedenen Ausführungen zu haben). Die meisten bekannteren Distributionen wie OpenSUSE, Fedora, Ubuntu, Gentoo und Slackware zählen zu diesem Bereich. Sie beinhalten sowohl eine Vielzahl von Paketen für das Arbeiten mit verschiedensten Oberflächen-Systemen als auch Serversoftware, Entwicklerprogramme, Spiele und was man sonst noch alles gebrauchen kann. Hierzu zählen auch die meisten BSD-Derivate, wobei diese teilweise auch im Embedded- oder Hochsicherheitsbereich Verwendung finden.
Hochsicherheit
Darüber hinaus gibt es noch Security-Distributionen/Derivate, die speziell darauf ausgelegt sind, eine besonders sichere Umgebung für sensible Daten oder den Schutz von Netzwerken zu bieten. Hierzu zählen Distributionen wie Hardened Gentoo oder auch das BSD-Derivat OpenBSD. Diese Distributionen bieten im Unterschied zu den anderen Distributionen oft modifizierte Kernel.
Firewall/VPN
Die Hochsicherheitsdistributionen sind auch für den Einsatz als Firewall/VPN-System geeignet, doch es gibt auch spezielle Distributionen, die hierfür optimiert sind und beispielsweise keine gehärteten Kernel benutzen. Hierzu zählen das bereits erwähnte »OpenWRT«/»FreeWRT« sowie die Distributionen »devil-linux«, »m0n0wall« und »pfSense«.
Was es sonst noch gibt
Es gibt noch viele weitere spezialisierte Linux-Distributionen und BSD-Derivate. Beispielsweise werden spezielle Distributionen mit wissenschaftlichen Programmen für den Forschungsbereich erstellt.[Fn. Schauen Sie sich bei Interesse doch einmal die Distribution Scientific Linux (www.scientificlinux.org) an.] Des Weiteren gibt es speziell für den Einsatz in Schulen erstellte Derivate (etwa Edubuntu) sowie Distributionen mit religiösen Zusatzprogrammen wie UbuntuCE (Christian Edition) oder UbuntuME (Muslim Edition).[Fn. Sowohl Edubuntu als auch UbuntuCE/ME basieren – wie auch Xubuntu und Kubuntu – einfach nur auf der Ubuntu-Distribution, die sie bei der installation um zusätzliche Pakete erweitern.]
|
Unter distrowatch.com und www.distrorankings.com finden Sie Übersichten zu einer Vielzahl bekannter Distributionen und Derivaten. |
Entstehungsgeschichte
Da Linux wie BSD ein unix-ähnliches Betriebssystem ist und eine Vielzahl von Unix-Eigenschaften besitzt, beschäftigen wir uns an dieser Stelle zunächst einmal mit der Entstehungsgeschichte von Unix. Wir beginnen dazu mit einem Rückblick in das Mittelalter der Informatik.
Unix
Im Jahre 1965 begannen BELL, General Electric und das MIT mit der Arbeit an einem Betriebssystem für Großrechner namens MULTICS (Multiplexed Information and Computing Service). Als allerdings feststand, dass dieses Vorhaben scheitern würde, stieg BELL aus.
Die Raumfahrt
Als 1969 das Apollo-Raumfahrtprogramm der USA im Mittelpunkt der Aufmerksamkeit stand, begann Ken Thompson (BELL) aufgrund unzureichender Möglichkeiten der Programmentwicklung mit der Entwicklung eines Zwei-User-Betriebssystems für den DEC PDP-7. Sein Ziel war es, raumfahrtbezogene Programme zu entwickeln, um Orbit-Berechnungen für Satelliten, Mondkalender und Ähnliches zu realisieren. Das Grundprinzip von MULTICS wurde dabei übernommen, und so erhielt das spätere Unix beispielsweise ein hierarchisches Dateisystem.
Brian Kernighan (ein (Mit-)Entwickler wichtiger Unix-Programme wie awk) nannte dieses System spöttisch UNICS (»Emasculated Multics is Unics.«, zu deutsch »Entmanntes Multics ist Unics.«), weil es nur zwei Benutzer unterstützte. Erst später benannte man es aufgrund der Begrenzung für die Länge von Dateinamen auf der Entwicklungsplattform GECOS (General Electric Comprehensive Operating System) in Unix um.
Ursprünglich waren alle Unix-Programme in Assembler geschrieben. Ken Thompson entschied sich später, einen FORTRAN-Compiler[Fn. FORTRAN ist wie C eine Programmiersprache der dritten Generation und erlaubt das Programmieren auf einer höheren Abstraktionsebene.] zu entwickeln, da Unix seiner Meinung nach ohne einen solchen Compiler wertlos wäre. Nach kurzer Zeit entschied er sich allerdings, eine neue Programmiersprache namens »B« zu entwickeln, die stark von der Sprache BCPL (Basic Combined Programming Language) beeinflusst wurde.
Aus B wird C
Da das Team 1971 ein PDP11-System bekam, das byte-adressiert arbeitete, entschloss sich Dennis Ritchie, aus der wortorientierten Sprache B eine byte-orientierte Sprache mit dem schlichten Namen »C« zu entwickeln, indem er etwa Typen hinzufügte.
1973 wurde der Unix-Kernel komplett neu in C geschrieben. Dieses neue Unix (mittlerweile in der Version 4) wurde damit auf andere Systeme portierbar. Noch im selben Jahr wurde Unix zu einem Multiuser-Multitasking-Betriebssystem weiterentwickelt und der Öffentlichkeit vorgestellt. Da C gleichzeitig eine sehr portable, aber auch systemnahe Sprache war, konnte Unix recht gut auf neuen Plattformen implementiert werden, um dann auch dort performant zu laufen. Die Vorteile einer Hochsprache wurden hier deutlich: Man braucht nur einen Übersetzer für eine neue Hardwareplattform, und schon kann der Code mit nur wenigen Änderungen übernommen werden.
Derivate
1977 nahm man dann auch die erste Implementierung auf ein Nicht-PDP-System vor, nämlich auf eine Interdate 8/32. Dies gab den Anstoß für weitere Unix-Portierungen durch Firmen wie HP und IBM. So begann die Unix-Entwicklung, sich in viele Abkömmlinge, sogenannte Derivate, aufzuspalten.
System V
Die Unix-Variante von AT&T wurde 1981 mit der Variante von BELL zu einem einheitlichen »Unix System III« kombiniert. 1983 kündigte BELL das »System V« an, das primär für den Einsatz auf VAX-Systemen an Universitäten entwickelt wurde. Im Jahr darauf kündigte AT&T die zweite Version von System V an. Die Anzahl der Unix-Installationen stieg bis dahin auf circa 100.000 an. 1986 erschien System V, Release 3. Schließlich wurde 1989 System V Release 4 (SVR4) freigegeben, das noch heute als Unix-Standard gilt.
Neben SVR4-Unix gab es noch die Entwicklung von BSD, auf deren Darstellung wir hier natürlich keineswegs verzichten möchten.[Fn. Schließlich haben wir der BSD-TCP/IP-Implementierung mehr oder weniger das heutige Internet zu verdanken.] Bereits 1974 verteilte AT&T Quellcode-Lizenzen an einige Universitäten. Auch das Computing Science Research Center (CSRC) der University of California in Berkeley erhielt solch eine Lizenz.
BSD-Geschichte
Das erste BSD
In Berkeley entwickelte in den darauffolgenden Jahren ein Kreis aus Entwicklern der dortigen Universität einen neuen Systemcode samt Verbesserungen für AT&T-Unix. 1977 wurde daraus »1BSD«, die erste Berkeley Software Distribution, von Bill Joy zusammengestellt. Im darauffolgenden Jahr wurde »2BSD« veröffentlicht, das über neue Software und weitere Verbesserungen verfügte.
Das erste freie Unix
1979 beauftragte die Defense Advanced Research Projects Agency (DARPA) der amerikanischen Regierung die Computer Systems Research Group (CSRG), die Referenzimplementierung der Protokolle für das ARPANET, den Vorläufer des Internets, zu entwickeln. Die CSRG veröffentlichte schließlich das erste allgemein verfügbare Unix namens »4.2BSD«, das unter anderem folgende wichtige Merkmale aufwies:
- Integration von TCP/IP
- Berkeley Fast Filesystem (FFS)
- Verfügbarkeit der Socket API
Somit kann dieses BSD-Derivat als Urvater des Internets angesehen werden. Durch die Integration von TCP/IP und die Berkeley Socket API wurden Standards geschaffen bzw. geschaffene Standards umgesetzt, die für das spätere Internet essenziell sein sollten. Die Tatsache, dass selbst heute noch eben diese Berkeley Socket API als Standard in allen netzwerkfähigen Betriebssystemen implementiert ist, verdeutlicht die Bedeutung dieser Entwicklungen nachdrücklich.
1989 entschloss man sich also schließlich dazu, den TCP/IP-Code in einer von AT&T unabhängigen Lizenz als »Networking Release 1« (Net/1) zu vertreiben. Net/1 war die erste öffentlich verfügbare Version. Viele Hersteller benutzten den Net/1-Code, um TCP/IP in ihre Systeme zu integrieren. In 4.3BSD Reno wurden 1990 noch einmal einige Änderungen am Kernel und in den Socket APIs vorgenommen, um die OSI-Protokolle aufzunehmen.
Im Juni 1991 wurde das System Net/2 herausgegeben, das komplett neu und unabhängig vom AT&T-Code entwickelt worden war. Die wichtigsten Neuerungen von Net/2 waren die folgenden:
- komplette Neuimplementierung der C-Bibliothek
- Neuimplementierung von vielen Systemprogrammen
- Ersetzung des AT&T-Kernels bis auf sechs Dateien
Nach einiger Zeit stellte Bill Jolitz, der nun auch die letzten sechs Dateien neu entwickelt hatte, ein vollständiges, bootbares Betriebssystem zum freien FTP-Down- load zur Verfügung. Es trug den Namen 386/BSD und lief auf der gleichnamigen Intel-Plattform.
Die Berkeley Software Design, Inc. (BSDI) brachte 1991 mit BSD/OS eine kommerzielle Weiterentwicklung von 386/BSD auf den Markt. Diese Version konnte für den Preis von 999 US-Dollar erworben werden.
1992 entstand außerdem das freie NetBSD-ProjektNetBSD, das es sich zum Ziel setzte, 386/BSD als
nichtkommerzielles Projekt weiterzuentwickeln und auf möglichst vielen Plattformen verfügbar zu machen.
Nachdem die Unix System Laboratories (USL), eine Tochtergesellschaft von AT&T, BSDI wegen einer Urheberrechtsverletzung verklagt hatten, mussten einige Veränderungen am Net/2-Code vorgenommen werden. Daher mussten 1994 alle freien BSD-Projekte ihren Code auf den von 4.4BSD-Lite (auch als Net/3 bezeichnet) umstellen. Mit der Veröffentlichung von 4.4BSD-Lite2 im Jahre 1995 wurde die CSRG aufgelöst. Allerdings werden die mittlerweile existierenden vier BSD-Derivate NetBSD, BSD/OS, FreeBSD und OpenBSD noch bis heute gepflegt und ständig weiterentwickelt. Im Laufe der letzten Jahre kamen noch diverse weitere Derivate wie PicoBSD dazu.
Linux-Geschichte
Linux entstand, weil sein Entwickler, der finnische Informatikstudent Linus Torvalds, mit dem damals verfügbaren Minix-System von Andrew Tanenbaum nicht ganz zufrieden war. Torvalds begann im Frühjahr 1991 alleine mit der Arbeit an diesem neuen System und postete schließlich im August des Jahres eine erste Nachricht in die Minix-Newsgroup:
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) Newsgroups: comp.os.minix Subject: What would you like to see most in minix? Date: 25 Aug 91 20:57:08 GMT Hello everybody out there using minix - I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-) Linus (torvalds@kruuna.helsinki.fi) PS. Yes - it's free of any minix code, and it has a multi- threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT- harddisks, as that's all I have :-(.
Listing 0.1 Linus Torvalds' Posting an comp.os.minix
In seinem Buch »Just for Fun«, das wir Ihnen sehr empfehlen können, schreibt Torvalds, dass er während dieser Zeit fast nichts anderes tat als zu schlafen, zu programmieren und wenig Sex zu haben. Damit entsprach er dem typischen Nerd-Klischee.
Das erste Linux
Die erste veröffentlichte Entwicklerversion (0.01) stellte Torvalds am 17.09.1991 für Interessenten aus dem Usenet zur Verfügung. Die erste offizielle Version (0.02) wurde etwas später, nämlich am 05.10.1991, freigegeben.
1992
Im Folgejahr stellte er Version 0.12 auf einen Anonymous FTP-Server, wodurch die Anzahl derjenigen stieg, die an der Systementwicklung mitwirkten. Im gleichen Jahr wurde die Newsgroup alt.os.linux gegründet.
Im gleichen Jahr hagelte es aber auch Kritik von Andrew Tanenbaum, dem Entwickler von Minix. Tanenbaum hielt Linux bereits für veraltet, weil es einen monolithischen Kernel benutzte und zudem schlecht portierbar war.
GNU und Stallman
Ebenfalls im Jahr 1992 wird Linux unter die GNU General Public License (GPL) gestellt, die 1989 von Richard Stallman erarbeitet wurde. Richard Stallman gründete 1983 das GNU-Projekt, das freie Software und Kooperationen zwischen den Entwicklern befürwortet. Außerdem ist Stallman Entwickler bekannter Programme wie dem Emacs-Editor oder dem GNU-Debugger.
Stallman ist noch heute einer der wichtigsten – wenn nicht der wichtigste – Vertreter der Open-Source-Philosophie. Stallman arbeitete in den 70er Jahren am Massachusetts Institute of Technology (MIT) in einem Labor für künstliche Intelligenz und kam dort zum ersten Mal mit Hackern in Kontakt. Die dortige Arbeitsatmosphäre gefiel ihm so gut, dass er ihre spätere Auflösung sehr bedauerte. Zudem wurde Software immer mehr in binärer Form und weniger durch Quelltexte vertrieben, was Stallman ändern wollte. Aus diesem Grund schuf er das GNU-Projekt, dessen Ziel die Entwicklung eines kompletten freien Betriebssystems war.[Fn. Die Abkürzung »GNU« steht dabei für »GNU is not Unix« und ist rekursiv.] Den Kern dieses Betriebssystems bildet heutzutage meistens Linux. Umgekehrt sind die wichtigsten Komponenten der Userspace-Software von Linux seit Beginn GNU-Programme wie der gcc. Richard Stallman versuchte daher später, den Namen »GNU/Linux« durchzusetzen, was ihm aber nur bedingt gelang.
Linux 1.0 und 2.0
1994 wurde Version 1.0, deren komprimierter Code nun schon über 1 MB groß war, veröffentlicht. Der Kernel verfügte zu diesem Zeitpunkt schon über Netzwerkfähigkeit. Außerdem portierte das XFree86-Projekt seine grafische Oberfläche – das X-Window-System – auf Linux. Das wohl wichtigste Ereignis in diesem Jahr ist jedoch, dass Torvalds den Kernel-Code unter der GNU General Public License veröffentlichte. Zwei Jahre später war Linux 2.0 zu haben. Erste Distributionen stellten ihre Systeme nun auf die neue Version um, darunter auch Slackware mit dem »'96«-Release.
Linux 2.2 und 2.4
1998 erschien die Kernel-Version 2.2. Von nun an verfügte Linux auch über Multiprozessor-Support. Im Jahr 2001 erschien schließlich die Version 2.4, mit der weitere Kern-Features Einzug in den Kernel hielten. Dazu zählen:
- Unterstützung für neue Architekturen wie IBM S/390 und Intel IA64
- Unterstützung für große Hauptspeicher (bis 64 GByte auf der Intel-Architektur)
- bessere SMP-Unterstützung
- die Möglichkeit, größere Dateien anzulegen
- 32-Bit-User- und -Group-IDs
- ein besserer Scheduler
- neue Dateisysteme (insbesondere ReiserFS und DevFS)
- Unterstützung für Plug-and-Play-Geräte
- die neue netfilter-Firewall
- viele weitere Neuerungen
Kernel 2.6
Die aktuellen Kernel-Versionen bewegen sich seit 2003 im 2.6.x-er-Bereich. Linux erhielt mit der neuen Version wieder diverse neue Features. Dazu zählen:
- ein neuer O(1)-Scheduler
- Support für Hyper Threading
- neue Architekturen (64 Bit PowerPC, 64 Bit AMD, ucLinux und Usermode Linux)
- das ALSA Sound System
- SATA-Support
- Bluetooth-Support
- ein neuer IDE-Layer
- neue Dateisysteme (JFS, Ext4, NFSv4, XFS, AFS)
Zeitrechnung
Anhand dieser wichtigen Eckdaten betreiben eingefleischte Linux-Fans teilweise auch ihre eigene Zeitrechnung: Stellt man die Frage: »Seit wann arbeitest du eigentlich mit Linux?«, sollte man auf eine Antwort wie »Schon seit 2.0.34!« gefasst sein.
Gegenwart
Linus Torvalds kümmert sich auch heute noch um die Entwicklung des Linux-Kernels, ihm helfen dabei allerdings viele Tausend Entwickler weltweit. Viele von ihnen arbeiten kostenlos am Kernel, doch einige werden auch von Firmen bezahlt. Die meisten Entwickler senden verbesserten Code (sogenannte Patches) an Linus' wichtigste Kernel-Entwickler, etwa an Alan Cox,. Die Entwickler überprüfen die Patches anschließend und leiten die qualitativ hochwertigen Patches an Linus Torvalds weiter, der sie dann in den Kernel einbauen kann.[Fn. Natürlich kann Torvalds Patches, die ihm nicht zusagen, auch ablehnen.] Linus Torvalds übernimmt bei der Entwicklung des Linux-Kernels eine wichtige Rolle, die man in der Open-Source-Projekten als Benevolent Dictator for Life bezeichnet. Damit ist gemeint, dass diese Person ein Softwareprojekt leitet und die primäre Instanz für wichtige Entscheidungen der aktuellen und zukünftigen Entwicklung ist.[Fn. Weitere BDfLs finden sich unter http://de.wikipedia.org/wiki/Benevolent_Dictator_for_Life.]
Mittlerweile wird Linux in vielen Rechenzentren, Büros und Forschungsnetzwerken weltweit eingesetzt. Zudem haben sich viele Großprojekte darauf konzentriert, auf diesem freien System aufzubauen. Dazu zählen beispielsweise die beiden Projekte KDE und GNOME, aber auch die Office-Suiten OpenOffice und KOffice sowie die grafische Oberfläche des X.Org-Projekts.
Auch im Heimanwender-Bereich wird Linux seit Jahren verstärkt eingesetzt, bedingt einerseits durch seinen guten Ruf und die Tatsache, dass es gratis zu haben ist, andererseit aber auch durch die immer einfachere Handhabung.
Geschichte der Distributionen
Bootdisk und Rootdisk
Ursprünglich war nur der Quellcode des Linux-Kernels verfügbar, der von erfahrenen Unix-Anwendern übersetzt und gebootet werden konnte. Mit einem blanken, bootbaren Kernel konnte man aber nicht sonderlich viel anfangen, wenn man nicht wusste, wie die zugehörigen Benutzerprogramme, mit denen man dann etwa seine Mails lesen konnte, installiert werden. Aus diesem Grund stellte Linus Tovalds zunächst zwei Disketten-Images im Internet zur Verfügung, die besonders Anwendern alter Slackware-Versionen bekannt sein dürften: Die Boot- und die Rootdisks. Von der Bootdisk war es möglich, den Linux-Kernel beim Start des Rechners zu laden. War der Ladevorgang abgeschlossen, musste man die Rootdisk einlegen. Diese beinhaltete Basisanwendungen für Benutzer und machte das Linux-System für Anwender ohne größere Vorkenntnisse zugänglich.
SLS
Die erste halbwegs benutzbare Linux-Distribution nannte sich SLS (»Softlanding Linux System«) und wurde 1992 von Peter McDonald erstellt. Da SLS viele Fehler beinhaltete, entwickelten zwei Personen basierend auf SLS jeweils eine neue Distribution, die beide die ältesten heute noch aktiven Distributionsprojekte darstellen.
Slackware, Debian
Der erste Entwickler war Patrick J. Volkerding, der im Juli 1993 Slackware 1.0.0 freigab. Ian Murdock gab im August 1993 die erste Debian-Version frei. Auf Debian und Slackware basieren zahlreiche der heute aktiven Distributionen (etwa Zenwalk oder Ubuntu).
|
Ein besonders interessantes Interview mit Patrick Volkerding, das 1994 vom Linux Journal geführt wurde, findet sich hier: http://www.linuxjournal.com/article/2750. Ebenfalls historisch interessant ist die ebenfalls von Phil Hughes geschriebene Nachricht über die Freigabe der Version 2.0 von Slackware (http://www.linuxjournal.com/article/2795). |
RedHat
Im November 1994 wurde die RedHat-Distribution gegründet, die auf Slackware basierte, aber ein eigenes Paketformat (RPM) bekam. Auf RedHat basieren die heutigen Distributionen RedHat Enterprise Linux und Fedora.
SuSE
Ebenfalls 1994 wurde die Distribution SuSE-Linux veröffentlicht. SuSE-Linux war jahrelang die in Deutschland populärste Linux-Distribution der Firma Software- und System-Entwicklungsgesellschaft mbH aus Nürnberg. Mit SuSE gab es (neben RedHat-Linux) eine einfach zu bedienende Distribution mit großer Paketauswahl. Für den deutschen Markt war zudem die ISDN-Unterstützung sehr bedeutsam. Später wurde die Firma von Novell übernommen und der Name SuSE komplett groß geschrieben, also »SUSE«. Heute gibt es die von der Community mitgepflegte Variante OpenSUSE sowie die Enterprise-Varianten SLES und SLED (SUSE Linux Enterprise Server/Desktop) für Unternehmen.
Mandrake
Im Juli 1998 wurde mit Mandrake-Linux eine neue benutzerfreundliche Distribution veröffentlicht, die auf RedHat basierte. Heute heißt die Distribution Mandriva-Linux.
Aktuell
Bis Anfang dieses Jahrzehnts entstanden weitere wichtige Distributionen (im Besonderen Gentoo, Knoppix und Ubuntu).
Unterschiede und Gemeinsamkeiten
Aus der teilweise gemeinsamen Geschichte ergeben sich für Linux und BSD viele Gemeinsamkeiten, und entsprechend sind Unterschiede oft erst bei genauerer Betrachtung erkennbar. Eine wichtige Gemeinsamkeit besteht darin, dass es sich bei Linux wie bei den bestehenden BSD-Derivaten um quelloffene Software (englisch »open source«) handelt.
Freie Software
GNU/Linux
Dass »Linux« selbst eigentlich nur den Kernel umfasst, wurde bereits angesprochen. Die für den Betrieb nötige Systemsoftware kommt in erster Linie vom bereits erwähnten GNU-Projekt (http://www.gnu.org). Diese Initiative gibt es seit 1984 und damit viel länger als Linux selbst. Das Ziel war von Anfang an, ein völlig freies Unix zu entwickeln, und mit Linux hatte das Projekt seinen ersten freien Kernel. Und so ist auch die Bezeichnung GNU/Linux für das Betriebssystem als Ganzes gebräuchlich.
Was aber ist eigentlich »freie Software«? Wenn man ein Programm schreibt, so besitzt man an dessen Quelltext ein Urheberrecht wie ein Buchautor. Die resultierende Software kann verkauft werden, indem man dem Käufer durch eine Lizenz gewisse Nutzungsrechte einräumt. Alternativ kann man aber auch festlegen, dass das eigene Programm von anderen kostenlos benutzt werden kann. Gibt man sogar den eigenen Quellcode frei, so spricht man von »offener Software«.
Im Linux- und BSD-Umfeld gibt es nun unterschiedliche Lizenzen, die mit teilweise besonderen Bestimmungen ihr jeweils ganz eigenes Verständnis von »Freiheit« verdeutlichen.
Die GPL
Copyleft
Linux steht wie alle GNU-Projekte unter der GNU Public License, der GPL. Laut dieser Lizenz muss der Quellcode eines Programmes frei zugänglich sein. Das bedeutet jedoch nicht, dass GPL-Software nicht verkauft werden darf.[Fn. Mehr dazu finden Sie unter www.gnu.org/philosophy/selling.de.html.]
Selbst bei kommerziellen Distributionen zahlt man allerdings oft nicht für die Software selbst, sondern für die Zusammenstellung der Software, das Brennen der CDs/DVDs, die eventuell vorhandenen Handbücher und den Installationssupport.
|
Die GPL stellt damit Programme unter das sogenannte Copyleft: Verändert man ein entsprechendes Softwareprojekt, so muss das veränderte Ergebnis wieder frei sein. Man darf zwar Geld für ein GPL-basiertes Produkt nehmen, muss aber den Sourcecode samt den eigenen Änderungen weiterhin frei zugänglich halten. |
Somit bleibt jede einmal unter die GPL gestellte Software immer frei – es sei denn, alle jemals an einem Projekt beteiligten Entwickler stimmen einer Lizenzänderung zu. Bei großen Softwareprojekten wie dem Linux-Kernel mit vielen Tausend Beteiligten ist das undenkbar.
Die BSD-Lizenz
Im Unterschied zu der im Linux-Umfeld verbreiteten GPL verzichtet die von BSD-Systemen verwendete Lizenz auf ein Copyleft. Man darf zwar den ursprünglichen Copyright-Vermerk nicht entfernen, doch darf entsprechend lizenzierte Software durchaus Ausgangspunkt für proprietäre, kommerzielle Software sein. Die BSD-Lizenz ist also weniger streng als die GPL, aber aufgrund der möglichen freien Verteilbarkeit und Veränderbarkeit immer noch freie Software.
Weitere freie Projekte
Mehr Lizenzen
Natürlich gibt es freie Software nicht nur vom GNU-Projekt oder von den BSD-Entwicklern. Jeder kann für eigene Softwareprojekte die GPL oder die BSD-Lizenz verwenden. Natürlich kann man – wie beispielsweise das Apache-Projekt – auch eigene Open-Source-Lizenzen mit besonderen Bestimmungen entwickeln. Jedoch haben bekannte Lizenzen den Vorteil, dass sie in der Community auch anerkannt sind und einen guten Ruf genießen, oder – wie die GPL – sogar bereits von einem deutschen Gericht in ihrer Wirksamkeit bestätigt wurden.
Ports und Packages
Verteilung der Software
Einen weiteren Unterschied zwischen Linux und der BSD-Welt ist die Art, wie Software jeweils verpackt und vertrieben wird. Man unterscheidet hierbei zwischen den unter Linux-Distributionen verbreiteten Paketen und den BSD-typischen Ports.
Port
Ein Software-Port beinhaltet Anweisungen, um eine Software aus dem Quellcode zu übersetzen und automatisch zu installieren. Ein Software-Package hingegen ist ein kompilierter Port. Das bedeutet, dass die Software bereits in binärer Form vorliegt und zum Installieren nur noch entpackt und an die richtige Stelle im System kopiert werden muss.
Ein Software-Port kann in der Regel bei der Kompilierung besser an das System angepasst werden, benötigt jedoch zusätzliche Zeit zur Kompilierung. Ein Software-Package benötigt diese Kompilierungszeit nicht, ist aber unter Umständen weniger optimal an den Prozessor angepasst. Zu gegebener Zeit werden wir ausführlichst auf die BSD-Ports und unterschiedliche Systeme zum Paketmanagement unter Linux eingehen.
Die Versionierung
Linux-Versionen
Vor allem mit der Versionierung unter Linux gibt es einige Verständnisprobleme. Der Linux-Kernel erschien bis vor einigen Jahren in zwei Versionskategorien: einer Entwickler- und einer Stable-Version. Die Entwicklerversionen haben ungerade Zahlen als zweite Versionsnummern (2.1, 2.5), die Stable-Versionen hingegen gerade Zahlen (2.0, 2.2, 2.4, 2.6).[Fn. Sollten Sie einmal jemanden treffen, der Ihnen von irgendwelchen komischen Versionen à la »Linux 8.0« erzählen will, so bringt der Betreffende offensichtlich die Versionen der Distributionen und die des Kernels durcheinander.] Eine dritte Zahl nummeriert die unterschiedlichen kleineren Releases, die beispielsweise mit neuen Features ausgestattet sind.
Mittlerweile werden die Entwicklerversionen nicht mehr mit ungeraden Versionsnummern bezeichnet. Vor jeder neuen Version werden statt dessen einzelne Vorveröffentlichungen durchgeführt. Diese Vorveröffentlichungen (englisch Release Candidates) können anschließend von der Community heruntergeladen und getestet werden. Werden Fehler gefunden, fließen deren Korrekturen in die nächste stabile Version ein.
Seit Kernel 2.6.11 kann zur schnellen Bereinigung schwerer Fehler auch eine vierte Versionsnummer geführt werden. Eine Version 2.6.21.1 beinhaltet gegenüber der Version 2.6.21 mindestens eine Verbesserung (in der Regel aber mehrere). Werden erneut Fehler gefunden, so wird eine weitere Version (2.6.21.2) herausgegeben. Werden auch in dieser Fehler gefunden, so setzt sich die Nummerierung auf diese Weise fort.
|
Eine Entwicklerversion enthält immer die neuesten Spielereien der Entwickler. Wenn Sie diese nicht wirklich brauchen oder nicht wissen, was Ihnen eine neue Version überhaupt bringt, lassen Sie besser die Finger davon und bleiben bei der Stable-Version. |
|
Der Grund dafür ist, dass die Stable-Versionen ganz einfach ausgereifter sind und mit großer Sicherheit stabil laufen. Entwicklerversionen können zwar durchaus auch sehr stabil laufen, müssen es jedoch nicht. |
Aber keine Angst, aktuelle Distributionen beinhalten natürlich immer die Stable-Version. Sofern Sie nach diesem Buch immer noch Lust auf Linux haben und sich für die Innereien des Kernels interessieren, empfehlen wir Ihnen »Understanding the Linux Kernel, 2nd Edition« [BovetMacro02A] und das »Linux Kernel-Handbuch« [Love05A].
Die Maskottchen
Das Wichtigste dürfen wir natürlich auch nicht unterschlagen: die Maskottchen. Diese Identifikationsmerkmale werden Ihnen regelmäßig begegnen – nicht nur in der Netzwelt, sondern auch in diesem Buch, sobald es um Eigenarten der entsprechenden Systeme geht.
Das Linux-Maskottchen
Da Linus Torvalds ein Liebhaber von Pinguinen ist, wollte er einen als Logo für Linux haben. Ein Pinguin wurde dann von Larry Ewing mit dem gimp-Grafikprogramm erstellt. Die Figur gefiel Torvalds, und fertig war Tux. Sprechen wir von linux-spezifischen Themen, die sich nicht (oder nur sehr bedingt) auf BSD oder Unix übertragen lassen, finden Sie am Seitenrand ein entsprechendes Icon. Übrigens wurde das Linux-Logo für die Kernel der Version 2.6.29.x in einen Tasmanischen Teufel abgeändert. Die temporäre Logo-Änderung sollte, darauf hinweisen, dass die Beutelteufel vom Aussterben bedroht sind.
Abbildung 0.1 Tux

Tux steht übrigens für Torvalds Unix. Und immer, wenn wir auf besondere Eigenheiten von Linux eingehen, werden Sie am Seitenrand einen kleinen Pinguin bemerken.
Die BSD-Maskottchen

Anfang November 2005 erhielt auch FreeBSD ein neues Logo. Das neue NetBSD-Logo ist auch noch nicht alt. BSD allgemein (und bis vor Kurzem auch FreeBSD) hat eigentlich den BSD-Daemon mit Namen »Beastie« als Maskottchen – wie schon bei BSDi. Wenn wir von (Free)BSD sprechen, sehen Sie in diesem Buch das Icon mit dem Teufelchen am Seitenrand.

Sprechen wir hingegen speziell von OpenBSD, erscheint dieses Icon am Seitenrand. Es stellt »Puffy«, den Blowfish, dar. Blowfish ist zum einen ein von Bruce Schneier entwickelter kryptografischer Algorithmus und zum anderen eben ein kugeliger Fisch mit Stacheln. Die Stacheln des Blowfishs stehen für Sicherheit, das Primärziel des Open-BSD-Projekts.
Dieses Icon steht dagegen für einen Hinweis beziehungsweise einen Tipp.
Mit diesem Icon werden Beispiele gekennzeichnet – schließlich kann man die meisten Sachverhalte am besten anhand eines kleinen Beispiels nachvollziehen.
Eine Glaubensfrage
Nach dem Linux-Hype folgte über einige Jahre ein BSD-Hype. In den letzten Jahren stabilisierten sich beide Trends. Zwischenzeitlich wechselten jedoch viele Benutzer (hauptsächlich testweise) von Linux zu BSD. Warum das so war, ist nur sehr schwierig zu beantworten, da die Unterschiede im Leistungsumfang von Linux und BSD nur in wenigen Fällen von Bedeutung scheinen.
Generell lässt sich sagen, dass sich normalerweise weder ein Wechsel von Linux zu BSD noch ein Wechsel von BSD zu Linux als sonderlich lohnend erweisen wird, sofern man ihn nicht gerade wegen eines bestimmten Features vollzieht.
Linux uncool?
Wenn man die Communities etwas genauer betrachtet, fällt einem vielleicht auf, dass es zahlreiche Diskussionen darüber gibt, welches System das bessere sei und ob man nun der GPLv2 oder der BSD-Lizenz seine Opfergaben darbieten soll. Wenn man ehrlich ist, sind viele solcher Diskussionen substanzlos und erscheinen als eine Art Religionskrieg. Wenn man noch etwas genauer hinschaut, scheint es auch oft um das Statussymbol »Betriebssystem« zu gehen und darum sich abzuheben vom Nicht-mehr-Hacker-OS »Linux«, das nun so viele (Ex-)Windows-Anhänger verwenden.
Glücklicherweise gibt es aber auch einen Vorzug dieser Situation: Man lernt voneinander. Linux-Kernel, Linux-Distributionen und BSD-Derivate übernehmen bereits seit vielen Jahren Features voneinander beziehungsweise von anderen Systemen aus dem Unix-Umfeld – man denke nur einmal an die SVR4-IPC. Auch erwähnenswert ist das SVR4-Runlevel-System, das Linux übernommen hat, oder Kommandos wie pkill und pgrep, die BSD und Linux von Solaris übernahmen. Auf all diese Querverbindungen möchten wir in diesem Buch mit unserem Bezug auf BSD eingehen.
Informationsquellen
Abschließend noch eine Bemerkung zum Thema »selbst weiterkommen«: Es existieren im Internet nämlich eine ganze Menge Informationsquellen. Man ist mit einem Linux-Problem – wenn es nicht gerade hochgradig exotischer Natur ist -- eigentlich nie ganz allein, sofern man weiß, wo man zu suchen hat.
TLDP
Das Linux-Dokumentationsprojekt (the linux documentation project, kurz tldp) ist unter www.tldp.org zu finden und beinhaltet zahlreiche Dokumentationen zu einzelnen Linux-Themen in verschiedensten Sprachen. Darunter befinden sich viele HOWTOs, Anleitungen und FAQs.
Das Usenet
Im Usenet, besonders in Usenet-Archiven, wird man oft am schnellsten fündig, wenn es eine genaue Problem- oder Fragestellung gibt. Die Erfahrung hat gezeigt, dass es oft das Beste ist, Fehlermeldungen, die man nicht versteht, wörtlich in die entsprechende Suchabfrage einzugeben. Und siehe da: Oftmals wurde dieselbe Problematik schon mehrmals besprochen, und man muss nur noch die Lösung – falls vorhanden – nachlesen. Es empfiehlt sich übrigens sehr, sich nicht nur auf die deutschsprachigen Newsgroups zu beschränken, da die meisten Fragen in den englischsprachigen Newsgroups diskutiert werden.
Im Usenet-Archiv kann man unter groups.google.de suchen. Wir empfehlen dabei besonders die Newsgroups comp.unix.*- und de.comp.os.unix.*. Für Linux-Einsteiger besonders geeignet sind die folgenden Newsgroups:
- de.comp.os.linux.misc
- de.comp.os.unix.shell
- de.comp.os.unix.x11
- comp.os.linux.networking (englisch)
- comp.os.linux.misc (englisch)
Für die BSD-Anhänger unter den Lesern sei noch de.comp.os.unix.bsd empfohlen.
Foren
Es existieren auch viele Einsteiger-Foren, in denen man gezielt Fragen stellen kann, wenn man nicht mehr weiter weiß. Einige besonders bekannte Foren sind:
- http://www.slackforum.de (für Slackware-Anwender)
- http://ubuntuforums.org (für Ubuntu-Anwender)
- http://forums.opensuse.org (für OpenSUSE-Anwender)
- http://www.linuxforums.org (englisch)
- http://www.linuxquestions.org (englisch)
Nützliche Webseiten
Neben dem bereits erwähnten »the linux documentation project gibt es auch noch populäre Webseiten, die deutschsprachige Informationen zu Linux, BSD und Open-Source anbieten:
- http://www.prolinux.de – Linux- und Open-Source-Nachrichten
- http://www.heise.de/open/ – Heise.de Open-Source-News
- http://www.freiesmagazin.de – ein freies Online-Magazin mit aktuellen Informationen
- http://www.yalmagazine.org – ein weiteres freies Online-Magazin
- http://www.selflinux.org/selflinux/ – Linux-Tutorials
- http://www.linux-users-welcome.de – In welchen Geschäften kann man besonders einfach Linux-Hardware kaufen?
- http://www.tuxsucht.de – Suchmaschine für Linux-Themen




Jetzt bestellen







