Linux Distribution

von Markus Berger am Montag, 23. April 2018

Einleitung

Eine Frage, die sich jeder Linuxbenutzer, stellt, ist, welche Linux-Distribution die richtige ist? Obwohl die Frage lauten sollte, welche Distribution für meine Anwendung(en) und/oder meinen Einsatz die richtige ist? Und weshalb gibt es überhaupt soviele Distributionen?

Diese Fragen kann man sich mit der Entstehungsgeschichte von Linux, dem Betriebssystem-Kern gut erklären, denn dieser ist freie Software und somit offen für alle, die daran mitarbeiten möchten, stellt jedoch nur die Schnittstellen für POSIX-kompatible Programme über Systemaufrufe zur Verfügung, nicht aber die Programme selbst. Um ein benutzbares System zu erhalten, benötigt man aber eben diese Programme. Linus hat sich hier traditionell bei GNU bedient, welches genau diese Programme ebenfalls als freie Software bereitstellt.

Da nun die Programme (Userland) und Linux (Kernel) von unterschiedlichen Personen entwickelt und gepflegt werden, sind auch die Prioritäten und Entwicklungsgeschwindigkeiten unterschiedlich. Dies stellt die Anwender vor die Herausforderung, die passenden Teile sinnvoll und richtig zu kombinieren, um ein für den Einsatzzweck lauffähiges System zu erhalten. Dies wurde schon sehr zeitig erkannt und so bildeten sich die ersten Distributoren, welche genau diese konsistente Zusammenstellung leisteten. Sie stellten also eine für die angegebene Plattform aus freien Quellen zusammengebaute Programme und den Kern in Binärformat bereit, und verkauften die Datenträger.

Paketmanager

Da die Wartung eines Systems, das Software aus vielen verschiedenen Quellen verwendet, die wiederum über komplexe Abhängigkeiten miteinander verbunden sind, eine Herausforderung ist, entstanden die Paketmanager. Diese Software kümmert sich darum, alle zu einem Programm gehörenden Dateien in einem Paket zusammenzufassen, mit keinen anderen Dateien eines anderen Paketes zu kollidieren und idealerweise auch, dass alle erforderliche Software (Bibliotheken) zur Verfügung steht, um selbst lauffähig zu sein (Abhängigkeiten).

Mit Hilfe eines Paketmanagers ist es nun viel leichter, eine Zusammenstellung von konsistenter Software zu gewährleisten und damit eine Distribution zu erstellen.

Da die Anforderungen, die jede Aufgabe und/oder jeder an ein System hat, völlig unterschiedlich und vielfältig sind, wie wir alle, entstanden also quasi zwangsläufig neue Distributionen, die eben diese Anforderungen besser erfüllen als die bestehenden.

GNU/Linux als Arbeitsplatz

Um hier nicht allzuweit in die Breite abzuschleifen, wird im weiteren nur auf die Nutzung von GNU/Linux an einem klassischen Arbeitsplatz (PC/Laptop) eingegangen.

Hier sind zur Zeit zwei Modelle weitverbreitet, das Release-Model und das Rolling-Modell.

Release-Modell

Hier erzeugten die Maintainer einer Distribution zu bestimmten Zeiten eine Zusammenstellung der Software und ihrer Abhängigkeiten. Im Laufe der Zeit werden z.B. in einzelnen Teilen Fehler gefunden und behoben, dabei wird aber die Version der betroffenen Software (ihre Programmierschnittstelle, ABI z.B. der c-Bibliothek) nicht angepasst. Der eigentliche Entwickler der Software (upstream) macht aber das gleiche und erzeugt zusätzlich weitere Versionen, die sich mit der Zeit deutlich unterscheiden.

Von dieser Weiterentwicklung ist man dann als Nutzer der Release-Linux-Distribution bis zum nächten Release abgeschnitten.

Typische Vertreter diese Modells sind RedHat, Debian und davon abgeleitete Distributionen.

Trotz des Nachteils, mit alter Software zu arbeiten, gibt es Einsatzfälle wo dies von Vorteil ist. Denn immer dann, wenn nicht freie Software eingesetzt werden muss, liegt diese meist nur im Binär-Format vor, wurde also mit bestimmten Versionen anderer Software erzeugt und hängt auch oft davon ab. Neuere Versionen der abhängigen Software führen in einem solchen Fall meist dazu, dass speziell diese Software nicht mehr lauffähig ist. Deshalb unterstützt z.B. RedHat eine Version über 10 Jahre.

Als Privatanwender ist man davon im Allgemeinen nicht betroffen, doch sollte man wenn möglich auf proprietäre Software verzichten.

Rolling-Modell

Bei diesem Modell wird die aktuelle Version der einzelnen Software verwendet, die der Hersteller (upstream) veröffentlicht. Hier gibt es natürlich je nach Distribution unterschiedliche Auffassungen, was eine Version ist und welche genau verwendet wird.

Da von dieser Software andere Software abhängig sein kann, müssen also nach der Aktualisierung eines Teils, evtl. weitere Software (weitere Pakete) neu übersetzt werden. Hier kommt der Paketmanager noch stärker zum Tragen, denn über ihn müssen sich diese Pakete auch finden und bauen lassen.

Der enorme Vorteil ist hier, dass man immer mit aktueller Software arbeiten kann und der Entwicklung ohne Probleme folgt und eine aufwändige Rückportierung über Patches nicht nötig ist. Die neuen Funktionen stehen nach einem Neustart der Anwendung direkt zur Verfügung.

Nachteilig ist, dass es quasi ständig neue Versionen gibt, das bedeutet ein höheres Download-Volumen bei häufiger Aktualisierung.

Typische Vertreter diese Modells sind ArchLinux und VoidLinux.

Welche Distribution?

Nun zurück zur ursprünglichen Frage, welche Distribution soll ich nehmen? Darauf kann ich auch keine Antwort geben. Hier ist es sicherlich viel wichtiger, in welchen Umfeld ich mich bewege. Es spricht auch nichts dagegen, verschiedene Distributionen/Versionen einfach auszuprobieren, denn wenn man seine Daten (/home) z.B. auf einer separaten Partition oder auf einer eigenen Platte hält, kann man ohne weiteres die verschiedenen Varianten testen und trotzdem seine Daten behalten.

Also dann viel Spaß beim Ausprobieren und Stöbern, um dann zu einer eigenen Entscheidung zu kommen.