Unterschiede und Gemeinsamkeiten
Aus der teilweise gemeinsamen Geschichte heraus ergeben sich für Linux wie BSD viele Gemeinsamkeiten, und entsprechend sind Unterschiede oft erst bei genauerer Betrachtung erkennbar. Eine wichtige Gemeinsamkeit besteht, wie ebenfalls ein erster kleiner Unterschied, in der Tatsache, dass es sich bei Linux wie bei *BSD um quelloffene Software (engl. »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 dabei in erster Linie vom GNU <Rekursive Abkürzung für: GNU is not Unix.>-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.
Aber was ist nun eigentlich »freie Software«? Wenn man ein Programm schreibt, so besitzt man am resultierenden Quelltext auch 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. <Mehr dazu finden Sie unter www.gnu.org/philosophy/selling.de.html.>
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, aber man muss den Sourcecode samt den eigenen Änderungen weiterhin frei zugänglich halten.
Es wird also jede einmal unter die GPL gestellte Software auch immer frei bleiben – 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 BSD-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 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, in der Community auch anerkannt zu sein und einen guten Ruf zu genießen, oder – wie die GPL – sogar bereits von einem deutschen Gericht in ihrer Wirksamkeit bestätigt zu sein.
Aus dem Fakt, dass unter der GPL lizenzierte Software nicht kommerziell vertrieben werden darf, ergibt sich auch für Linux-Distributionen eine interessante Konsequenz: Selbst bei kommerziellen Produkten zahlt man nicht für »Linux«, sondern für die Zusammenstellung der Software, das Brennen der CDs/DVDs, die eventuell vorhandenen Handbücher und den Installationssupport.
Port, Port(s), Packages
Verteilung der Software
Einen weiteren Unterschied zwischen Linux und der BSD-Welt ist die Art, wie Software verpackt und vertrieben wird.
Man unterscheidet hierbei zwischen den unter Linux-Distributionen verbreiteten Paketen und den BSD-typischen Ports.
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 ausgepackt 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, kann aber unter Umständen weniger optimal an den Prozessor angepasst sein. 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 so einige Verständnissprobleme. Der Linux-Kernel erscheint in zwei Versionskategorien: in 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). <Sollten Sie mal jemanden treffen, der Ihnen von irgendwelchen komischen Versionen à la »Linux 8.0« erzählen will, haben Sie ein seltenes Exemplar der Spezies Mensch gefunden, die offensichtlich die falschen Bücher liest. Sie bringen nämlich die Versionen der Distributionen und des Kernels durcheinander.> Eine dritte Zahl nummeriert die unterschiedlichen kleineren Releases, die beispielsweise mit neuen Features ausgestattet sind.
Seit Kernel 2.6.11 jedoch 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 erneut Fehler gefunden, so setzt sich die Nummerierung auf diese Weise fort.
Eine Entwicklerversion Entwickler-Kernel enthält immer die neusten 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 das Buch »Understanding the Linux Kernel, 2nd Edition« [BovetMacro02A] oder das »Linux Kernel-Handbuch« [Love05A].
Die Maskottchen
Das Wichtigste dürfen wir natürlich auch nicht unterschlagen: die Maskottchen. Diese Identifikationsmerkmale begegnen einem regelmäßig – nicht nur in der Netzwelt, sondern auch hier im 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. Er 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.
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
Es ist noch nicht lange her (Anfang November 2005), da bekam auch FreeBSD ein neues Logo. Das neue NetBSD-Logo ist auch noch nicht wirklich alt. BSD allgemein (und bis vor Kurzem auch FreeBSD) hat eigentlich den FreeBSD-Daemon mit Namen »Beastie« als Maskottchen, das war auch schon bei BSDi der Fall. Wenn wir von (Free)BSD sprechen, finden Sie in diesem Buch das Icon mit dem Teufelchen am Seitenrand vor.
Sprechen wir hingegen von OpenBSD, sehen Sie dieses Icon am Seitenrand. Es stellt »Fluffy«, den Blowfish, dar. Blowfish ist zum einen ein von Bruce Schneier entwickelter kryptographischer Algorithmus und zum anderen eben ein Fisch mit Stacheln. Beides steht für Sicherheit und selbige ist das Primärziel des OpenBSD-Projekts.
Dieses Icon steht dagegen für einen Hinweis beziehungsweise einen Tipp.
Mit diesem Icon werden dagegen Beispiele gekennzeichnet. Schließlich kann man die meisten Sachverhalte am besten anhand eines kleinen Beispiels nachvollziehen.