Linux-Distributionen sind nicht nur der Linux-Kernel. Sie alle enthalten andere kritische Software, wie den Grub-Bootloader, die Bash-Shell, GNU-Shell-Dienstprogramme, Daemons, den grafischen X.org-Server, eine Desktop-Umgebung und mehr.
All diese verschiedenen Programme werden von verschiedenen, unabhängigen Entwicklungsgruppen entwickelt. Sie werden von Linux-Distributionen kombiniert, wo sie aufeinander aufbauen, um ein vollständiges „Linux“-Betriebssystem zu bilden. Dies ist im Gegensatz zu Windows, das vollständig von Microsoft entwickelt wird.
Bootloader
Wenn Sie Ihren Computer einschalten, lädt das BIOS oder die UEFI-Firmware Ihres Computers die Software von Ihrem Startgerät. Das erste Programm, das mit jedem Betriebssystem geladen wird, ist der Bootloader. Unter Linux ist dies in der Regel der Grub-Bootloader.
Wenn Sie mehrere Betriebssysteme installiert haben, bietet Grub ein Menü, in dem Sie zwischen ihnen wählen können – wenn Sie beispielsweise Linux in einer Dual-Boot-Konfiguration installiert haben, können Sie beim Booten entweder Linux oder Windows auswählen.
Grub bootet Ihr Linux-System möglicherweise fast sofort, wenn Sie nur ein einziges Betriebssystem installiert haben, aber es ist immer noch vorhanden. Grub übernimmt den Prozess des tatsächlichen Bootens von Linux, gibt Befehlszeilenoptionen aus und ermöglicht es Ihnen, Linux zu Fehlerbehebungszwecken auf andere Weise zu booten. Ohne einen Bootloader würde eine Linux-Distribution einfach nicht booten.
Der Linux-Kernel
Das genaue Stück Software, das Grub bootet, ist der Linux-Kernel. Dies ist der Teil des Systems, der eigentlich „Linux“ heißt. Der Kernel ist der Kern des Systems. Es verwaltet Ihre CPU, Ihren Speicher und Ihre Eingabe-/Ausgabegeräte wie Tastatur, Mäuse und Displays. Da der Kernel direkt mit der Hardware spricht, sind viele Hardwaretreiber Teil des Linux-Kernels und werden darin ausgeführt.
Alle andere Software läuft oberhalb des Kernels. Der Kernel ist die niedrigste Software, die mit der Hardware verbunden ist. Es bietet eine Abstraktionsebene über der Hardware, die sich mit all den verschiedenen Hardware-Macken befasst, damit sich der Rest des Systems so wenig wie möglich darum kümmern kann. Windows verwendet den Windows NT-Kernel und Linux verwendet den Linux-Kernel.
Dämonen
Daemons sind im Wesentlichen Hintergrundprozesse. Sie werden oft als Teil des Bootvorgangs gestartet, also sind sie eines der nächsten Dinge, die nach dem Kernel geladen werden und bevor Sie Ihren grafischen Anmeldebildschirm sehen. Windows bezeichnet solche Prozesse als „Dienste“, während UNIX-ähnliche Systeme sie als „Daemons“ bezeichnen.
Crond zum Beispiel, das geplante Aufgaben verwaltet, ist ein Daemon – das d am Ende steht für „Daemon“. syslogd ist ein weiterer Daemon, der traditionell Ihr Systemprotokoll verwaltet. Server wie der sshd-Server laufen als Daemons im Hintergrund. Dadurch wird sichergestellt, dass sie immer ausgeführt werden und auf Remoteverbindungen warten.
Daemons sind im Wesentlichen nur Hintergrundprozesse, aber sie sind Prozesse auf Systemebene, die Sie im Allgemeinen nicht bemerken.
Die Muschel
Die meisten Linux-Systeme verwenden standardmäßig die Bash-Shell. Eine Shell bietet eine Befehlsprozessorschnittstelle, mit der Sie Ihren Computer steuern können, indem Sie Befehle an einer Textschnittstelle eingeben. Shells können auch Shell-Skripts ausführen, bei denen es sich um eine Sammlung von Befehlen und Operationen handelt, die in der im Skript angegebenen Reihenfolge ausgeführt werden.
Selbst wenn Sie nur einen grafischen Desktop verwenden, laufen Shells und werden im Hintergrund verwendet. Wenn Sie ein Terminalfenster öffnen, sehen Sie eine Shell-Eingabeaufforderung.
Shell-Dienstprogramme
Die Shell bietet einige grundlegende integrierte Befehle, aber die meisten Shell-Befehle, die Linux-Benutzer verwenden, sind nicht in die Shell integriert. Zum Beispiel sind so wichtige Befehle wie der Befehl cp zum Kopieren einer Datei, der Befehl ls zum Auflisten von Dateien in einem Verzeichnis und der Befehl rm zum Löschen von Dateien Teil des GNU Core Utilities-Pakets.
Linux-Systeme würden ohne diese wichtigen Dienstprogramme nicht funktionieren. Tatsächlich ist die Bash-Shell selbst Teil des GNU-Projekts. Deshalb gab es Kontroversen darüber, ob Linux wirklich „Linux“ oder „GNU/Linux“ heißen sollte. Kritiker des Namens „Linux“ weisen zu Recht darauf hin, dass in typischen Linux-Systemen viel mehr Software steckt, was oft nicht anerkannt wird. Kritiker des Namens „GNU/Linux“ weisen zu Recht darauf hin, dass ein typisches Linux-System auch andere kritische Software beinhaltet, die der Name „GNU/Linux“ nicht umfasst.
Nicht alle Shell-Dienstprogramme und Befehlszeilenprogramme werden vom GNU-Projekt entwickelt. Einigen Befehlen und Terminalprogrammen ist jeweils ein eigenes Projekt gewidmet.
X.org Grafikserver
Der grafische Desktop-Teil von Linux ist nicht Teil des Linux-Kernels. Es wird von einer Art Paket bereitgestellt, das als „X-Server“ bekannt ist, da es das vor vielen Jahren entstandene „X-Window-System“ implementiert.
Derzeit ist der beliebteste X-Server – oder grafische Server – X.org. Wenn ein grafisches Anmeldefenster oder ein Desktop angezeigt wird, funktioniert X.org erst richtig. Das gesamte grafische System wird von X.org betrieben, das mit Ihrer Grafikkarte, Ihrem Monitor, Ihrer Maus und anderen Geräten verbunden ist.
X.org bietet nicht die vollständige Desktop-Umgebung, sondern nur ein grafisches System, auf dem Desktop-Umgebungen und Toolkits aufbauen können.
Desktop-Umgebung
Was Sie wirklich auf einem Linux-Desktop verwenden, ist eine Desktop-Umgebung. Ubuntu enthält beispielsweise die Unity-Desktop-Umgebung, Fedora enthält GNOME, Kubuntu enthält KDE und Mint enthält im Allgemeinen Cinnamon oder MATE. Diese Desktop-Umgebungen bieten alles, was Sie sehen – Desktop-Hintergrund, Bedienfelder, Fenstertitelleisten und Rahmen.
Sie enthalten im Allgemeinen auch eigene Dienstprogramme, die so konzipiert sind, dass sie sich in die Desktop-Umgebung als Ganzes einfügen. GNOME und Unity enthalten beispielsweise den Dateimanager Nautilus, der als Teil von GNOME entwickelt wurde, während KDE den Dateimanager Dolphin enthält, der als Teil des KDE-Projekts entwickelt wurde.
Desktop-Programme
Nicht jedes Desktop-Programm ist Teil einer Desktop-Umgebung. Firefox und Chrome sind beispielsweise unabhängig von der Desktop-Umgebung. Sie sind nur Programme, die auf jeder Desktop-Umgebung normal ausgeführt werden können. OpenOffice.org ist eine weitere Suite von Programmen, die auch nicht an eine bestimmte Desktop-Umgebung gebunden ist.
Sie können jedes Linux-Desktop-Programm in jeder Desktop-Umgebung ausführen, aber Programme, die für bestimmte Desktop-Umgebungen entwickelt wurden, wirken möglicherweise fehl am Platz oder ziehen sich in andere Prozesse hinein. Wenn Sie beispielsweise versucht haben, den Nautilus-Dateimanager von GNOME unter KDE auszuführen, sieht er fehl am Platz aus, erfordert die Installation einer Vielzahl von GNOME-Bibliotheken und startet wahrscheinlich GNOME-Desktop-Prozesse im Hintergrund, wenn Sie ihn öffnen. Aber es würde laufen und benutzbar sein.
Linux-Distributionen führen die letzten Schrittschritte aus. Sie nehmen all diese Software, kombinieren sie, damit sie gut zusammenarbeitet, und fügen ihre eigenen notwendigen Dienstprogramme hinzu. Distributionen erstellen beispielsweise ihre eigenen Betriebssystem-Installationsprogramme, damit Sie Linux tatsächlich installieren können, sowie Paketmanager, um zusätzliche Software zu installieren und Ihre installierte Software auf dem neuesten Stand zu halten.
Bildnachweis: tao mai auf Flickr