Wer im Jahr 2021 sagt, er nutzt kein Linux, der lügt – oder weiß es einfach nicht besser. Gibt es doch an dem freien Betriebssystem längst kein Vorbeikommen mehr. Das liegt vor allem an der Dominanz von Linux im Server- und Cloud-Umfeld: Wer etwa eine Webseite aufruft, hat sehr gute Chancen, dass dahinter ein Linux-Systems steht. Doch Linux bildet auch die Basis von Android und damit dem weltweit am meisten genutzten Betriebssystem. Bei Chrome OS ist das ebenso, und selbst Windows liefert mittlerweile ein eigenes Linux-Subsystem mit.

Das ändert nichts daran, dass vielen Nutzern die Linux-Welt mit all ihren Begriffen eher verschlossen bleibt, immerhin spielt es im klassischen Desktopbereich weiter eine untergeordnete Rolle, und bei Android ist es ziemlich gut unter der Google-Oberfläche versteckt. Und selbst wer schon länger mit Linux unterwegs ist, muss nicht immer so ganz genau wissen, was mit Dingen wie Systemd, Wayland oder auch Flatpak gemeint ist – oder gar, warum diese Projekte relevant sind.

Im Folgenden also der Versuch, die wichtigsten Begriffe rund um Linux möglichst einfach verständlich zu erklären. Wie immer werden Anmerkungen und Präzisierungen im Forum dankend angenommen, was natürlich nichts daran ändert, dass der Autor immer recht hat. Der Artikel soll zudem bei Bedarf regelmäßig aktualisiert werden, um aktuelle Entwicklungen abzubilden. Immerhin soll das Gesagte auch dann noch stimmen, wenn später einmal auf den Artikel referenziert wird.

Kernel

Als Kernel wird bei einem Betriebssystem jener Bestandteil bezeichnet, der wörtlich im Kern aller Abläufe steht. Er stellt die Verbindung zwischen Hard- und Software her, er organisiert, wie welche Lasten verteilt werden, er bildet also gleichermaßen die grundlegende Infrastruktur für andere Systembestandteile wie auch für die Ausführung von Programmen.

Der Kernel ist auch, womit alles begann: Im Jahr 1991 stellte der finnische Student Linus Torvalds die erste Version seines – und, wie der Name schon verdeutlicht: wirklich seines – Hobbyprojekts vor: Linux. Der Name trägt aber noch eine zweite Anspielung in sich, nämlich auf ein älteres Betriebssystem namens Unix. Dieses ist bereits Ende der 60er- Jahre entstanden und diente in seinem Aufbau in vielerlei Hinsicht als "Inspiration" für Linux.

Der Erfinder eines der wichtigsten Stücke Software der Neuzeit, und doch gibt es in den Agenturarchiven praktisch kein aktuelles Foto von ihm: Linus Torvalds, hier bei einer Konferenz im Jahr 2000.
Foto: Imago

Das Ziel von Torvalds war es, eine Art Open-Source-Alternative zu all den kommerziellen – und damals meist ziemlich teuren – Unix-Varianten dieser Zeit zu schaffen. Dieser Plan darf als gelungen bezeichnet werden: Linux hat Unix über die Jahre in den meisten Einsatzbereichen praktisch zur Gänze verdrängt. Allerdings gibt es noch einige andere Unix-artige Betriebssysteme wie FreeBSD oder OpenBSD, die bis heute eine gewisse Bedeutung haben. Und auch Apple hat sich in der Unix-Welt bedient. Die Darwin genannte Grundlage für macOS und iOS geht auf freie Unix-Varianten zurück.

Bonus-Hinweis für Puristen: Genau genommen ist der Kernel nicht der zentrale Teil von Linux, er ist Linux. Über die Jahre hat sich aber eingebürgert, auch (viele) ihn umgebende Systeme als Ganzes so zu benennen. Wer gerne recht hat, darf diesen Umstand also unter jedem Artikel zu Linux als System als faktische Korrektur anmerken. Oder aber man verzichtet freiwillig darauf, sich bei allen anderen unbeliebt zu machen.

Open Source

Jetzt war schon kurz von "Open Source" die Rede, aber was heißt das eigentlich? Vereinfacht gesagt: dass der Quellcode öffentlich zur Verfügung steht. Wer das nötige Know-how hat, kann also im Detail sehen, wie sich das Programm zusammensetzt und was es tut. Vor allem aber ermöglicht die Verfügbarkeit des Codes auch, eigene Änderungen an der Software vorzunehmen und diese weiterzuentwickeln. Das ist der zentrale Unterschied zu proprietären Betriebssystemen wie Windows oder macOS, wo besagter Code von den Herstellern strikt geheimgehalten wird und die Nutzer die Programme ausschließlich in maschinenlesbarer Version erhalten – dem sogenannten Binärcode.

Wie so vieles in diesem Umfeld ist der Begriff "Open Source" übrigens nicht unumstritten, er ist direkt mit einem der ältesten Konflikte im Linux-Umfeld verbunden. Favorisieren doch viele den stärker politischen Ausdruck "Freie Software", wobei "frei" im Sinne von "Freiheit" und nicht "kostenlos" zu verstehen ist. Dieser betont nämlich, dass es eben nicht bloß um die Veröffentlichung des Codes geht, sondern auch um eine damit einhergehende Philosophie, die den Nutzern eine stärkere Kontrolle über die Software geben soll: die die Freiheit bietet, sie nach Belieben anzupassen, die aber über zugehörige Lizenzmodelle auch Pflichten für die Weiterverbreitung vorschreibt.

Freie Softwarelizenzen

Damit wären wir auch schon beim nächsten Punkt: den Softwarelizenzen, die mit alldem untrennbar verbunden wird. Jedes Stück freier Software wird unter einer gewissen Lizenz veröffentlicht, die die Spielregeln vorgibt. Unter Linux ist dabei historisch die GNU General Public License (GPL) in der Version 2 dominierend – unter der auch bis heute der Kernel steht. Diese erlaubt zwar die freie Weiternutzung und Veränderung der Software, schreibt aber auch vor, dass sämtliche Modifikationen wieder unter die GPL gestellt werden müssen.

Bild nicht mehr verfügbar.

Kein großer Linux-Fan: Ex-Microsoft-Boss Steve Ballmer, jetzt Besitzer des NBA-Teams Los Angeles Clippers und in dieser Rolle nicht minder leidenschaftlich.
Foto: Mark J. Terrill / AP

Eine Entscheidung, die durchaus beabsichtigt ist, soll dies doch die Verbreitung von freier Software fördern, indem auch umgebende Projekte und andockende Softwarebestandteile zur Nutzung dieser Lizenz animiert werden. Wie man sich vorstellen kann, ist diese "Viralität" nicht überall beliebt, sie war es etwa, die Microsoft-Boss Steve Ballmer im Jahr 2001 dazu bewog, Linux als "Krebsgeschwür" zu bezeichnen.

Die GPLv2 ist aber nicht die einzige freie Softwarelizenz. Gerade Unternehmen wählen bei ihren Open-Source-Projekten lieber andere Lizenzen – also zumindest, soweit es möglich ist. So verwendet etwa Google bei Android eine Apache-2.0-Lizenz, die es den Nutzern ermöglicht, den Code auch in kommerzielle Projekte zu übernehmen, ohne ihre Änderungen zurückgeben zu müssen. Nur beim Linux-Kernel müssen natürlich auch Google und all die Smartphone-Hersteller ihre Anpassungen unter der GPLv2 veröffentlichen – etwas, woran gerade letztere aber manchmal "freundlich" erinnert werden mussten. Überhaupt gab es in den vergangenen Jahren immer wieder Rechtsstreitigkeiten, bei denen es um von Firmen widerrechtlich geklauten Code aus Open-Source-Projekten ging. Denn im Endeffekt ist jedes Lizenzmodell nur etwas wert, wenn es auch durchgesetzt werden kann.

GNU

Wer lernen will, was ein rekursives Akronym ist, der ist beim GNU-Projekt gut aufgehoben – steht die Abkürzung GNU doch für "GNU's not Unix". Für den Bezugsrahmen dieses Textes aber wohl wichtiger: Das besagte Projekt ist für einige jener Tools verantwortlich, die rund um den Kernel dann für den Aufbau des restlichen Systems zum Einsatz kommen. Diese Rolle ist es denn auch, warum manche in der Open-Source-Welt darauf pochen, dass der korrekte Name eines Linux-Systems eigentlich GNU/Linux zu sein hat.

An dieser Stelle wird es jetzt wahrscheinlich niemanden mehr überraschen: Auch diese Position teilen längst nicht alle, genau genommen ignorieren die meisten Linux-Distributionen – zu diesem Begriff kommen wir später noch – den Zusatz. Übrigens arbeitet das GNU-Projekt seit Jahrzehnten an einem eigenen Kernel namens Hurd. Dieses Wissen ist vor allem für zynische Randbemerkungen in Forenpostings unerlässlich.

Desktops

Als Desktop wird die grafische Oberfläche eines Betriebssystems bezeichnet – so weit dürfte dies allgemein bekannt sein. Doch während es unter macOS oder Windows jeweils eine fixe Lösung gibt, kann man unter Linux aus einer Fülle unterschiedlicher Optionen wählen, die alle anders aussehen und zum Teil auch grundlegend verschiedene Konzepte verfolgen.

Ein aktueller Linux-Desktop von GNOME.
Screenshot: Proschofsky / STANDARD

Die zwei bekanntesten Unterfangen heißen KDE und GNOME. Beide Ende der 90er-Jahre entstanden, lieferten sie sich lange einen Wettstreit, in dessen Verlauf sich auch die jeweiligen Verfechter nicht immer freundlich begegneten. Über die Jahre hat sich aber überall ein gewisser Pragmatismus durchgesetzt, und auch hinter den Kulissen wird seit langem an der grundlegenden Infrastruktur zusammengearbeitet.

Bei den meisten Distributionen kommt heutzutage GNOME als Default-Desktop zum Einsatz, Ubuntu und Fedora sind hier prominente Beispiele. Andere wiederum verwenden GNOME-Derivate wie etwa Cinnamon (Linux Mint) oder auch Mate – das eine Abspaltung einer alten GNOME-Generation darstellt, da manche mit den Neuerungen von GNOME 3 nicht mitwollten.

Neben KDE gibt es aber auch noch eine ganze Reihe anderer, weitgehend unabhängiger Desktop-Projekte wie Xfce, Deepin, Budgie oder auch LXQt. Diese können bei vielen Linux-Distributionen nachinstalliert werden, einige bieten zudem gleich mehrere Download-Varianten, bei denen diese alternativen Desktops schon von Haus aus eingerichtet werden.

Toolkits

Es wäre reichlich unerfreulich, wenn jeder Entwickler für ein Programm die grafischen Grundelemente wieder neu erfinden müsste – und zwar sowohl für besagten Entwickler als auch die Nutzer, die dann unweigerlich mit einer wilden Mischung an inkonsistenten Bedienkonzepten zu kämpfen hätten. Aus diesem Grund gibt es Widget-Toolkits, die die wichtigsten Elemente standardisiert zum einfachen Zugriff bieten. Sie sind also quasi der Baukasten für die Oberfläche eines Programms.

Unter Linux dominieren dabei vor allem GTK+ sowie Qt, die zwar vornehmlich mit GNOME und KDE assoziiert sind, aber auch als Grundlage für andere Desktop-Projekte zum Einsatz kommen. Historisch gibt es zwar auch jede Menge anderer Toolkits, über die Jahre haben diese aber deutlich an Relevanz eingebüßt.

Diese freie Wahl ist natürlich schön für Entwickler, hat aber auch gewisse Nachteile: Ein für QT/KDE entwickeltes Programm fügt sich nicht immer gar so gut in einen GNOME-Desktop ein wie ein GTK+/GNOME-Programm – und umgekehrt. Zwar haben die beiden Projekte viele der Hürden in dieser Hinsicht über die Jahre abgebaut, trotzdem lässt sich dieser Effekt nicht ganz verleugnen.

Distribution

Jetzt sind wir endlich bei diesem mysteriösen Wort, das weiter oben schon ein paarmal gefallen ist: Distribution. Dessen Relevanz erklärt sich aus einem simplen Umstand. Es gibt nicht das Linux, sondern es gibt verschiedene Anbieter, die aus all den Teilen – also von Kernel über Desktop bis zu ausgewählten Programmen – ein funktionsfähiges System zusammenstellen: eben Distribution oder auch kurz "Distro" genannt. Solche Distributionen gibt es für fast jeden Zweck. Vom Einsatz im Bereich des "Internet der Dinge" über den Desktop bis zu Server und Cloud reicht die Palette. Wer es genauer wissen will, kann sich mal auf Distrowatch.com umsehen, wie viele unterschiedliche Angebote es so gibt.

Distributionen gibt es viele: Hier im Bild ist Fedora auf einem Thinkpad X1 Carbon Gen 8 von Lenovo zu sehen.
Foto: Proschofsky / STANDARD

Natürlich gibt es aber auch hier größere und weniger große Projekte. Zu den bekanntesten gehört Debian, auf dem dann wieder viele andere Distributionen basieren – etwa Ubuntu. Ebenfalls sehr traditionsreich sind die Angebote von Red Hat und SUSE – vor allem mit ihren Community-Distributionen OpenSUSE und Fedora. Ihr Geld machen beide Firmen aber mit ihren Angeboten für den Unternehmensbereich – und Red Hat gehört ja mittlerweile ohnehin zu IBM.

Ebenfalls erwähnt werden muss Arch Linux, das sich vor allem unter fortgeschrittenen Linux-Usern einer über die Jahre immer größer werdenden Popularität erfreut. Für den Einstieg in diese Welt empfehlen sich Arch-basierte Distributionen wie Manjaro oder EndeavourOS, bei denen vor allem die Einrichtung des System einfacher gestaltet ist.

Wie wichtig die Rolle der Distribution – und damit auch deren Wahl – ist, zeigt sich auch an einem anderen Umstand: Traditionell ist sie nämlich praktisch zur Gänze für die Auslieferung und Wartung sämtlicher Software zuständig. Die Distributionsentwickler sind es also erst, die aus dem von den einzelnen Projekten gelieferten Quellcode dann die lauffähigen Binärdateien erstellen.

Allerdings gibt es auch Ausnahmen von diesem Modell. So ist etwa Gentoo eine Distribution, bei der sämtliche Pakete direkt auf den Rechnern der Nutzer aus dem Quellcode erstellt werden – kompilieren nennt sich dieser Vorgang. Generell ist es aber natürlich auch bei anderen Linux-Distributionen möglich, selbst Pakete zu erstellen. Für die breite Masse ist das aber nur begrenzt anzuraten, immerhin ist das ein sehr zeit- und energieaufwendiger Vorgang.

Rolling Release oder klassisch

Noch eine wichtige Unterscheidung: Die meisten Distributionen verfolgen ein Konzept, bei dem es in regelmäßigen Abständen größere neuer Releases gibt, während man sich dazwischen vor allem auf Fehlerbereinigungen konzentriert. Debian ist etwa ein Paradebeispiel für diesen vor allem auf eine maximale Systemstabilität ausgelegten Ansatz.

Parallel dazu gibt es aber auch Distributionen, die ein "Rolling Release"-Modell verfolgen, bei dem sämtliche Komponenten laufend auf dem aktuellen Stand gehalten werden. In der Realität bewegen sich gerade viele für die Desktop-Nutzung gedachten Distributionen irgendwo zwischen diese beiden Ansätzen.

So aktualisieren etwa auch Fedora und Ubuntu laufend Desktop-Programme wie Firefox oder Libreoffice während die Desktop-Umgebung selbst dann mit einem großen Versionssprung alle sechs Monate aktualisiert wird. Bei Fedora werden sogar der Linux-Kernel und so manch andere Systemkomponenten laufend auf neue Versionen gehoben.

Live-Systeme

Die große Anzahl verfügbarer Linux-Distributionen macht Interessenten die Wahl nicht gerade leicht. Auf gut Glück einfach irgendein System zu installieren, ist insofern nur begrenzt ratsam. Zum Glück ist das auch nicht notwendig, hat die Linux-Welt doch auch in diesem Bereich eine hervorragende Antwort parat.

Live-Systeme erlauben das Ausprobieren von Linux-Distributionen direkt von einem USB-Stick – oder alternativ auch gleich dessen fixe Installation am eigenen Computer.
Screenshot: Proschofsky / STANDARd

Die meisten auf den Desktop ausgerichteten Distributionen werden als sogenannte Live-Images angeboten. Diese können mithilfe einfacher Tools wie des Fedora Media Writers auf einen USB-Stick gespielt werden, von dem aus das System dann direkt – also ganz ohne Installation – gestartet werden kann. Und falls das Gesehene gefällt, steht an dieser Stelle dann üblicherweise gleich ein Installer zur Verfügung, um das System fix am Rechner einzurichten.

Es gibt allerdings auch Distributionen, die primär auf die Nutzung vom USB-Stick abzielen. Das anonymisierende Tails wäre da etwa zu nennen. In diesen Fällen ist es oft möglich, persönliche Daten und Einstellungen in einem speziell zugewiesenen Bereich zu speichern – was bei Live-Systemen sonst nicht der Fall ist.

Paketmanager

Damit hätten wir wieder eine perfekte Überleitung zum nächsten Thema: Paketmanager. Dabei handelt es sich um jene Software, die für die Verwaltung der installierten Software zuständig ist. Wem das bekannt vorkommt: Ja, diesen zentralen Zugang kann man durchaus als eine Art Urahn all der App-Stores im mobilen Bereich sehen – auch wenn es im Detail durchaus Unterschiede gibt.

Der wichtigste Paketmanager unter Linux ist sicherlich DPKG mit dem zugehörigen Tool Apt, das aus der Debian-Welt stammt und von vielen anderen Distributionen übernommen wurde. Andere Distributionen bevorzugen wiederum RPM mit Tools wie DNF und Zypper oder (älter) YUM. So manche Distribution verwendet aber auch ganz eigene Paketmanager wie Pacman bei Arch Linux.

Diese zentrale Zuständigkeit der Distribution hat sich über die Jahre zwar generell bewährt – sie hat aber auch gewisse Nachteile. Da wäre zunächst einmal der Umstand, dass es dieses System Entwicklern von nichtfreier Software ziemlich schwermacht, Linux als Plattform zu unterstützen. Immerhin müssten sie dann ihre Programme selbst in angepassten Versionen für alle möglichen Distributionen anbieten. Dies führt dann oft dazu, dass es etwa nur Pakete für Ubuntu gibt – und auch da nur für ausgewählte Versionen.

Doch auch unter Open-Source-Entwicklern sind längst nicht alle mit diesem Ansatz zufrieden. Gerade bei großen Projekten wie LibreOffice oder Firefox kämpft man oftmals mit Fehlerberichten, wo nicht ganz klar ist, ob das Problem jetzt in der eigenen Software oder in Anpassungen und Optimierungen der jeweiligen Distribution liegt. Zudem kann man bei der Veröffentlichung neuer Versionen nicht selbst bestimmen, wann diese an sämtliche Nutzer geliefert werden. Oft bieten Distributionen veraltete Versionen, was weder für Entwickler noch für die Nutzer erfreulich ist.

Snap und Flatpak

Welches Paketformat auch immer: Für die Nutzer versteckt sich all das üblicherweise hinter einer grafischen Softwarezentrale.
Screenshot: Proschofsky / STANDARD

Entsprechend gibt es derzeit mehrere Versuche "modernere" Paketmanager zu etablieren, wovon Snap und Flatpak die bekanntesten sind. Die Idee dahinter ist, dass dasselbe Paket auf sämtlichen Distributionen laufen soll, und dafür direkt von den jeweiligen Entwicklern gewartet wird anstatt von der Distribution.

Zudem sollen die solcherart ausgelieferten Programme isoliert vom restlichen System laufen, was aus einer Sicherheits- und Privatsphärenperspektive erhebliche Vorteile verspricht. Während klassische Desktop-Programme unter Linux theoretisch uneingeschränkten Zugriff auf sämtliche privaten Daten der Nutzer haben, soll bei Flatpaks all das über ein Berechtigungssystem, wie man es sonst von Smartphones her kennt, abgewickelt werden.

Nun muss betont werden, dass diese Vision derzeit noch nicht voll umgesetzt ist, da dies auch mit Umbauten bei anderen Projekten – allen voran den Desktops – einhergeht. Die Stoßrichtung ist aber vorgegeben. Die Idee, dass dich die Programmentwickler selbst um ihre Flatpaks und Snaps kümmern sollen, steckt ebenfalls noch in den Kinderschuhen. Bei einigen großen Projekten wie Firefox und Libreoffice ist das aber tatsächlich bereits der Fall.

Natürlich sind aber auch die neuen Paketformate nicht unumstritten. Größter Kritikpunkt ist dabei, dass – ohne zu sehr in die Details gehen zu wollen – mit so einem System ein gewisser Overhead einhergeht, vor allem mehr Speicherplatz am Datenträger verbraucht wird. Über diverse Tricks wird zwar versucht, diesen Effekt zu minimieren, klassische Paketmanager sind trotzdem in dieser Hinsicht sparsamer.

Flatpak-Unterstützung gibt es mittlerweile bei den meisten großen Distributionen, einige bauen ihr Programmangebot sogar ganz um diese auf. Snaps sind hingegen eine Erfindung von Ubuntu-Hersteller Canonical, deren Bedeutung weitgehend auf diese Distribution beschränkt sind.

Neben Flatpak und Snap gibt noch andere Formate, die darauf abzielen, die Auslieferung von Software unter Linux von den Distributionen unabhängig zu machen. Ein Urahn dieses Konzepts ist etwa Appimage, das unter dem früheren Namen "Klik" bereits auf das Jahr 2004 zurückgeht. Konzeptionell ist dieses etwas simpler gehalten, die Sicherheitsvorteile von Flatpaks und Snaps gibt es bei diesem beispielsweise nicht. Dafür sind Appimages oftmals flotter – vor allem im Vergleich zu den in Hinblick auf die Startzeiten vielfach kritisierten Snaps.

Am Rande: Klingt alles sehr kompliziert, in der Praxis darf man aber auch nicht vergessen, dass die meisten Nutzer davon recht wenig merken. Immerhin lassen sich auch bei Linux-Desktops die Programme bequem über eine grafische Softwarezentrale installieren – egal ob dahinter dann ein Deb-Paket oder ein Flatpak steht. Aber wir sind ja hier, um auch die Hintergründe zu erklären.

Unveränderliche Systeme / OSTree

So sehr sich einzelne Distributionen bei der Auswahl einzelner Programme unterscheiden mögen, der grundlegende Aufbau rund um einen klassischen Paketmanager ähnelt sich doch sehr – und ist seit vielen Jahren gleich geblieben. Das ist bei einer neuen Generation an Distributionen anders: Ob Fedora Silverblue / Kinoite oder Endless OS, sie alle versuchen sich an einer strukturellen Modernisierung von Linux-Systemen

Die Idee dahinter: Es gibt ein Kernsystem, auf das die Nutzerinnen keinerlei Einfluss nehmen können, es ist also "unveränderlich". Gibt es ein Update für diese Komponenten werden dabei nicht die alten Daten überschrieben sondern eine neue Version des Systems erstellt. Das dafür genutzte Tool namens OSTree wird insofern oft als "Versionsverwaltung für Betriebssysteme" umschrieben.

Erst beim nächsten Reboot wird dann auf die neue Version des Systems gewechselt. Das hat vor allem einen Vorteil: Gibt es Probleme mit einem Update kann ganz einfach der alte Systemstand gestartet werden. So sind dann selbst große Versionssprünge innerhalb weniger Minuten und ohne die Angst, dass etwas schief geht, absolvierbar.

Ein unveränderliches System heißt aber auch, dass die Nutzer nicht so einfach Programme nachinstallieren können (ok, genau genommen geht das aktuell sehr wohl noch, aber es ist nicht im Sinne des Konzepts, insofern blenden wir es mal aus, Anm.). Insofern setzen diese Distributionen ganz auf Flatpaks zur Programmauslieferung, da diese auch innerhalb des Benutzerkontos installiert werden können.

X Window System / X11

Grafische Oberflächen mögen seit langem ein fixer Bestandteil des Computeralltags sein, das ändert aber nichts daran, dass es auch eine Zeit davor gab, zu der ausschließlich via Text mit dem Rechner kommuniziert wurde, ganz ohne Icons und Fenster. Unter Unix brachte das vom MIT entwickelte X Window System den Startschuss ins Zeitalter der grafischen Oberflächen. 1984 erstmals vorgestellt, folgte bereits 1987 die bis heute aktuellste Generation des zugrunde liegenden Protokolls – X11 genannt. Zwar gab es für dieses über die Jahre natürlich allerlei Erweiterungen, die Grundlagen blieben aber dieselben.

Auch moderne Desktops wie im Bild Plasma von KDE sind zunächst auf X11-Basis entstanden – und haben noch allerlei Abhängigkeiten.

Als dann Linux in den Neunzigerjahren auf der Bühne erschien, lag der Griff zu X11 nahe, um dem neuen Betriebssystem auch eine grafische Oberfläche zu bescheren. Lange war XFree86 die unter Linux favorisierte Implementation von X11, nach allerlei Konflikten spaltete sich im Jahr 2004 allerdings das X.org-Projekt ab, hinter das sich schnell alle wichtigen Firmen und Projekte stellten. Und das auch mit einem der besten Domainnamen überhaupt aufwarten kann – eben x.org.

Der Fork von X.org brachte zwar wieder – etwas – frischen Schwung in die Entwicklung, das änderte aber nichts daran, dass die Architektur aus Zeiten stammt, in denen von modernen Desktops und all den damit einhergehenden technischen Herausforderungen noch nicht einmal geträumt wurde. Entsprechend war X11 mit seinem Konzept als umfassender Grafikserver zwar sehr gut für den Remote-Betrieb – also den Zugriff von einem anderen Rechner aus – geeignet, bei der Aktualisierung des Codes für moderne Desktop-Ansprüche taten sich die Entwickler aber zunehmend schwer. Also machte sich ein Teil davon an eine komplett neue Entwicklung und zwar:

Wayland

Die einfachste Beschreibung für Wayland ist, dass es der Nachfolger für X.org ist, also dessen Aufgaben zur Darstellung grafischer Inhalte übernimmt. Genau genommen ist es natürlich etwas komplizierter. So versteht sich Wayland nicht als die zentrale Lösung für alles, sondern als ein Protokoll, das von den einzelnen Desktops implementiert werden muss. Gleichzeitig wurden viele Aufgaben, die historisch X.org übernommen hatte, an andere Stellen ausgelagert, etwa an den Kernel, Grafikbibliotheken oder eben auch den Desktop. Trotzdem: Mit einer gewissen Unschärfetoleranz ist die Klassifizierung als X.org-Nachfolger durchaus zulässig.

Das Problem dabei: X.org ist historisch in der Linux-Welt dermaßen stark verankert, dass die Umstellung auf Wayland ein Kraftakt von herkulischen Ausmaßen ist. Von den Desktops über die grafischen Toolkits bis zu Grafiktreibern und schlussendlich den Anwenderprogrammen selbst – alle müssen sie angepasst werden. Das führt dann auch dazu, dass Wayland, obwohl das Projekt bereits 2008 gestartet wurde, bei vielen Distributionen erst in jüngerer Vergangenheit zur Default-Wahl aufstieg. So hat etwa Ubuntu gerade erst seinen Desktop von Haus aus auf Wayland gewechselt, was vor allem daran lag, dass es sehr lange dauerte, bis Nvidia eine damit vollständig kompatible Version seiner eigenen – proprietären – Treiber bot. Zudem mussten aber auch die Wayland-Entwickler noch so manche funktionelle Lücke im Vergleich zu X.org schließen – gerade im Hinblick auf die bei X11 so zentralen Remote-Fähigkeiten. Einzelne Distributionen wie Fedora, die ganz auf freie Treiber setzen, liefern trotzdem schon länger Wayland als Standardlösung.

Ob X11 oder Wayland: Auf den ersten Blick sehen die Nutzer keinen Unterschied. Allerdings kann üblicherweise beim Login zwischen diesen Optionen gewählt werden.
Screenshot: Proschofsky / STANDARD

Aktuell (Stand: Ende 2021) funktionieren GNOME und GNOME-basierte Desktops jedenfalls tadellos mit Wayland, in einigen Punkten sogar besser als X.org, weil hier manch neue Features wegen der erwähnt hohen technischen Hürden nicht mehr für die alte Lösung implementiert werden. Und auch rund um KDE hat der Wayland-Support zuletzt massive Fortschritte gemacht. Bis X.org komplett aus dem Linux-Desktop verschwindet, wird trotzdem noch viel Zeit den Open-Source-Bach hinuntergehen – falls das je passiert. Das liegt daran, dass wie erwähnt eben auch die Desktop-Programme angepasst werden müssen. Und das ist wiederum sehr viel Aufwand, so hat etwa Firefox diesen Wechsel erst unlängst vorgenommen, während bei Chrome/Chromium noch daran gearbeitet wird. Und für ältere, nicht mehr aktiv entwickelte Programme sieht es ohnehin schlecht aus.

XWayland

Das wirft natürlich die Frage auf: Wie laufen all diese Programme auf einem modernen Wayland-basierten Desktop? Über eine Kompatibilitätslösung namens XWayland, die für das jeweilige Programm quasi einen eigenen X11-Grafikserver innerhalb des restlichen Desktops aufmacht. Die Nutzer bemerken davon nichts – oder sagen wir besser mal fast nichts. Ein paar Bugs im Zusammenspiel dieser Welten tauchen dann ehrlich gesagt doch immer wieder auf, aber das wird schon noch (hoffentlich).

Systemd

Kommen wir nach all den Kontroversen endlich wieder zu einem ganz und gar unumstrittenen Thema: Systemd. Im Kern ist dieses vor allem für den Startvorgang des Systems sowie all der dazu benötigten Dienste zuständig, hat über die Jahre aber auch allerlei damit verwandte Aufgaben übernommen, enthält etwa mittlerweile Tools zum Mitprotokollieren aller Aktivitäten (Logging), dem Einrichten des Netzwerks oder auch dem Einstellen von Zeit und Datum. Damit ist es also eines der wichtigsten – und größten – Projekte für aktuelle Linux-Systeme.

Zeit, etwas einzugestehen: Die Bemerkung, dass Systemd unumstritten ist, mag nicht ganz richtig gewesen sein. Ganz im Gegenteil gibt es wenige Projekte, über die sich Linux-Fans lieber virtuell den Kopf einschlagen. Das liegt einerseits daran, dass Systemd viele Aufgaben übernommen hat, die historisch von einem Sammelsurium an Einzeltools abgehandelt wurden – was für Puristen der klassischen Unix-Philosophie widerspricht, die ein Tool für eine Aufgabe vorsieht. Für die Gegenseite ist genau das eine entscheidende Stärke von Systemd, hat es doch viele dieser Aufgaben vereinheitlicht.

In früheren Jahren wurde der Systemstart übrigens über andere Lösungen wie SysVinit abgewickelt. Schon vor Systemd gab es allerlei Versuche, Alternativen zu etablieren, darunter etwa Upstart von Ubuntu-Hersteller Canonical. Mittlerweile haben sich aber praktisch alle großen Distributionen – und das inkludiert Ubuntu – auf Systemd geeinigt. Die Open-Source-Welt hat aber natürlich auch hier Platz für das Ausleben unterschiedlicher Meinungen. Wer will, kann also auch Distributionen wie den Debian-Abkömmling Devuan verwenden, bei dem Systemd vollständig durch andere Programme ersetzt wird. Aktuelle Alternativen zu Systemd sind etwa OpenRC oder Runit.

Pipewire vs Pulseaudio

Das Logo spricht schon mal für Pipewire.
Grafik: Pipewire

Audio und Linux: Das war in der Vergangenheit – freundlich formuliert – kein ganz einfaches Verhältnis. Die Default-Lösung aus Desktop-Sicht ist dabei seit Jahren der Soundserver Pulseaudio. Eine Lösung, mit der aufgrund diverser Schwächen längst nicht alle zufrieden waren, insofern etablierten sich etwa für den Profibereich Alternativen wie Jack.

Mittlerweile gibt es aber so etwas wie einen designierten Nachfolger. Pipewire soll all die unterschiedlichen Linux-Lösungen im Audiobereich ersetzen. Nicht zuletzt verspricht es eine deutlich bessere Performance als Pulseaudio. Mit niedrigeren Latzenzwerten ist es auch für die erwähnten Profiaufgaben geeignet. Zudem ist der Support für Bluetooth-Audio bei Pipewire erheblich besser. Für die Zukunft des Linux-Desktops ebenfalls wichtig: Es kann mit dem Berechtigungssystem von Flatpak verschränkt werden.

Besonders erfreulich dabei: Pipewire kann als direkter Ersatz für Pulseaudio verwendet werden. Programme müssen also nicht angepasst werden, was den Umstieg auf eine neue Technologie natürlich erleichtert. Genau genommen ist Pipewire übrigens keine Audio- sondern eine Multimedia-Lösung, es kommt nämlich auch für Aufgaben wie Screensharing unter Wayland zum Einsatz.

Kommandozeile

An dieser Stelle erinnern wir uns daran, was weiter oben bei den Ausführungen zum Thema X.org erwähnt wurde, nämlich dass es einmal eine Zeit gab, in der Computer noch keine grafischen Oberflächen hatten. Die Kommandozeile ist so etwas wie die Weiterentwicklung der damaligen Terminals – eine Art Text-Interface für den Computer also.

Über die Kommandozeile lässt sich viel machen, hier etwa Details zu allen installierten Snap-Paketen auf einem aktuellen Ubuntu-System.
Screenshot: Proschofsky / STANDARD

Hartnäckig hält sich das Gerücht, dass man bei einem Linux-Desktop nicht um ein gewisses Grundwissen im Umgang mit der Kommandozeile herumkommt. Das mag in früheren Jahren tatsächlich so gewesen sein, bei einem modernen Desktop von Ubuntu, Fedora oder Linux Mint ist das aber eben nicht mehr als das: ein Gerücht. Dort kommt man sehr gut allein mit den grafischen Tools aus.

Gleichzeitig kann es sich durchaus lohnen, sich mal mit diesem Thema auseinanderzusetzen. Ist so eine moderne Kommandozeile doch auch ein äußerst mächtiges Ding, über das sich das System nach Belieben anpassen und kontrollieren lässt. Vor allem lernt man dabei auch gleich etwas darüber, wie so ein System eigentlich aufgebaut und was wofür zuständig ist. Wie gesagt: muss einen nicht interessieren, als Option ist es aber da.

Auch hier gibt es wieder eine Fülle an Terminal-Programmen für jeden Geschmack, in denen dann wieder unterschiedliche Shells laufen können – mit jeweils unterschiedlichen Möglichkeiten und Eigenheiten in der Umsetzung dieses Text-Interfaces. Die unter Linux meistgenutzte Shell ist die Bash, genau gesagt werden durchschnittliche Nutzer kaum mit etwas anderem in Berührung kommen, da sie praktisch überall die Standardwahl ist.

Root / sudo

Aus Sicherheitsgründen sind die Möglichkeiten regulärer Nutzer auf einem Linux-System stark beschränkt. Das hat auch gute Gründe, immerhin soll verhindert werden, dass mal so eben unachtsam eine Änderung vorgenommen wird, nach der der Rechner nicht mehr startet. Oder auch, dass ein harmlos scheinendes Programm mit bösartigen Absichten eine Totalüberwachung des Systems einrichtet. Zudem gilt es auf von mehreren Benutzern verwendeten Systemen, deren Daten sauber voneinander zu trennen, damit nicht jeder all die privaten Informationen der anderen sehen kann.

Für Administrationszwecke braucht es aber oft einen umfassenden Zugriff, dafür ist unter Linux der "Root" genannte Nutzer zuständig, in der Windows-Welt wäre das Pendant dazu der "Administrator". Historisch gesehen steckt hinter Root wirklich ein eigener User mit separatem Passwort. Allerdings gibt es über das Tool "sudo" auch für normale Nutzer die Möglichkeit, Programme einzeln mit Root-Berechtigungen auszuführen – so sie denn dafür die Erlaubnis haben. Als zusätzliche Absicherung muss bei der ersten Ausführung von sudo in einer laufenden Sitzung das Benutzerpasswort noch einmal eingegeben werden.

"sudo" gibt es zwar schon länger, in den vergangenen Jahren sind aber viele Desktop-Distributionen dazu übergangen, von Haus aus ganz auf die Einrichtung eines eigenen Root-Zugangs zu verzichten. Stattdessen bekommt einfach der erste eingerichtete Nutzer automatisch sudo-Berechtigungen. Die Nutzung von sudo ist denkbar einfach, der Begriff wird einfach in der Kommandozeile dem eigentlichen Befehl vorangestellt. Wer nicht weiß, was er da tut, sollte dies aber ohnehin lieber lassen.

Zum Abschluss noch eine kleine Präzisierung: Als "Root" wird – zumindest ausgesprochen – unter Linux auch die unterste Ebene des Dateibaums bezeichnet – also eben die Wurzel. Ausgeschrieben wäre das aber "/" während "/root" jenes Verzeichnis beschreibt, wo die Daten des Root-Users gespeichert werden. Also: Nicht verwirren lassen! (Andreas Proschofsky, 5.12.2021 / letztes Update 9.5.2022)