Connect with us

Wie man

Warum das Linux-System nach all den Jahren immer noch umstritten ist

Warum stören sich die Leute immer noch mit ihnen?

fatmawati achmad zaenuri / Shutterstock

systemd ist 10 Jahre alt, aber die Gefühle in der Linux-Community haben sich nicht gemildert – es ist jetzt so spaltend wie nie zuvor. Obwohl es von vielen großen Linux-Distributionen verwendet wird, hat die Hardcore-Opposition nicht nachgegeben.

Die Linux-Startsequenz

Wenn Sie Ihren Computer einschalten, startet die Hardware und dann (je nach Typ von Bootsektor Ihr Computer verwendet) entweder die Master Boot Record (MBR) ausgeführt oder die Unified Extensible Firmware Interface (UEFI) läuft. Die letzte Aktion von beiden ist das Starten der Linux Kernel.

Der Kernel wird in den Speicher geladen, dekomprimiert sich selbst und initialisiert. EIN temporäres Dateisystem wird im RAM erstellt, normalerweise von einem Dienstprogramm namens initramfs oder initrd. Dadurch können die erforderlichen Treiber ermittelt und geladen werden. Dies wiederum ermöglicht es dem User-Space-Dateisystem, die User-Space-Umgebung zu laden und vorzubereiten.

Die Erstellung der User-Space-Umgebung wird vom Init-Prozess übernommen. Dies ist der erste Prozess, der vom Kernel in einem User-Space gestartet wird. Es hat ein Prozess ID (PID) von 1. Alle anderen Prozesse sind entweder direkte oder indirekte untergeordnete Elemente des Init-Prozesses.

Vor systemdDer Standard für den Init-Prozess war eine Überarbeitung des Unix System V init. Es gab andere Möglichkeiten, aber System V init war die Standardoption in den meisten Nicht-LändernBerkeley Software Distribution (BSD) abgeleitete Verteilungen. Da es direkt von System V Unix – dem spirituellen Vorfahren von Linux – stammt, betrachten viele Leute es als „den offiziellen Weg“, Init zu tun.

Der Init-Prozess startet alle Dämonen und Dienste, die erforderlich sind, damit das Betriebssystem auf sinnvolle, interaktive Weise funktioniert. Diese Daemons verwalten Dinge wie den Netzwerkstapel, aktivieren andere Hardware in Ihrem Computer und stellen einen Startbildschirm bereit.

Viele dieser Hintergrundprozesse werden nach dem Start weiterhin ausgeführt. Sie protokollieren Ereignisinformationen, achten beim Einfügen oder Entfernen von Geräten auf Hardwareänderungen und verwalten Benutzeranmeldungen. Es überrascht nicht, dass das Init-System auch Funktionen zum Verwalten von Diensten enthält.

Wir können benutzen ps um den Prozess mit PID 1 zu sehen. Wir werden die verwenden f (Vollformat-Auflistung) und p (PID) Optionen:

ps -fp 1

ps -fp 1 in einem Terminalfenster.

Wir sehen den Prozess mit PID 1 ist systemd. Das Ausführen des gleichen Befehls unter Manjaro Linux führte zu einem anderen Ergebnis. Der Prozess mit PID 1 wurde als identifiziert /sbin/init. Ein kurzer Blick auf diese Datei zeigt, dass es sich um einen symbolischen Link zu handelt systemd::

ps -fp 1
ls -hl /sbin/init

ps -fp 1 in einem Terminalfenster.

Verwendung der ppid Option (übergeordnete Prozess-ID) mit pskönnen wir sehen, welche Prozesse direkt von gestartet wurden systemd::

ps -f --ppid 1

ps -f --ppid 1 in einem Terminalfenster.

Es ist eine ziemlich lange Liste, wie Sie im Bild unten sehen können.

ps -f --ppid 1 in einem Terminalfenster.

Die Alternativen

Mehrere Projekte haben versucht, eine Alternative zum traditionellen System V init zu entwickeln. Eines der Hauptprobleme besteht darin, dass mit System V init alle Prozesse nacheinander seriell gestartet werden. Um die Effizienz der Startsequenz zu verbessern, verwenden viele alternative Projekte Parallelität, um Prozesse gleichzeitig und asynchron zu starten.

Hier einige Informationen zu einigen davon:

Es gibt viele andere mit unterschiedlicher Funktionalität und unterschiedlichem Design. Jedoch keiner von ihnen schuf die Aufregung systemd tat.

Der systemd Weg

systemd wurde 2010 veröffentlicht und 2011 in Fedora verwendet. Seitdem wurde es von vielen Distributionen übernommen. Es wurde von entwickelt Lennart Poettering und Kay Sievers, zwei Software-Ingenieure bei RedHat.

systemd ist viel mehr als ein Init-Ersatz. Vielmehr handelt es sich um eine Suite von ungefähr 70 Binärdateien, die sich mit Systeminitialisierung, Daemons und Diensten, Protokollierung und Journaling sowie vielen anderen Funktionen befassen, die bereits von dedizierten Modulen unter Linux ausgeführt wurden. Der Großteil davon hat nichts mit Systeminitialisierung zu tun.

Einige der Dämonen von systemd sind:

  • systemd-udevd: Verwaltet physische Geräte.
  • systemd-logind: Verwaltet Benutzeranmeldungen.
  • systemd-gelöst: Bietet die Auflösung von Netzwerknamen für lokale Anwendungen.
  • systemd-networkd: Verwaltet und erkennt Netzwerkgeräte und verwaltet Netzwerkkonfigurationen.
  • systemd-tmpfiles: Erstellt, löscht und bereinigt flüchtige und temporäre Dateien und Verzeichnisse.
  • systemd-lokalisiert: Verwaltet Systemgebietsschemaeinstellungen.
  • systemd-bearbeitet: Erkennt und überwacht virtuelle Maschinen und Container.
  • systemd-nspawn: Kann einen Befehl oder einen anderen Prozess in einem kompakten Namespace-Container starten und bietet eine ähnliche Funktionalität wie chroot.

Und das ist nur die Spitze des Eisbergs, was auch der Kern der Sache ist. systemd hat längst übertroffen, was von einem Init-System verlangt wird, das nach Ansicht seiner Gegner genau die Definition von Scope Creep ist.

„Es ist zu groß. Es macht zu viel. „

Gegner von systemd weisen Sie auf die große, merkwürdige Mischung von Funktionen hin, die es umfasst. Alle diese Funktionen gab es bereits unter Linux, und möglicherweise benötigten einige von ihnen eine Aktualisierung oder einen neuen Ansatz. Das Bündeln all dieser Funktionen in einem angeblichen Init-System ist jedoch architektonisch rätselhaft.

systemd wurde als Single Point of Failure für zu viele kritische Funktionen bezeichnet, aber dies scheint nicht gerechtfertigt zu sein. Zugegeben, es wirft die Unix-Philosophie kleine Tools zu erstellen, die zusammenarbeiten, anstatt große Software-Teile, die alles aus dem Fenster machen. Während systemd Es ist nicht streng monolithisch (es besteht aus vielen Binärdateien und nicht aus einer einzigen großen), sondern enthält viele unterschiedliche Verwaltungstools und -befehle unter einem Dach.

Es ist zwar nicht monolithisch, aber groß. Um eine Vorstellung von der Skalierung zu bekommen, haben wir die Textzeilen in der Kernel 5.6.15-Codebasis und in der Codebasis gezählt systemd Hauptzweig des GitHub-Repositorys.

Dies war eine relativ grobe Metrik. Es wurden Textzeilen gezählt, nicht nur Codezeilen. Dies beinhaltete also Kommentare, Dokumentation und alles andere. Es war jedoch ein Vergleich auf vergleichbarer Basis und gab uns einen einfachen Maßstab:

( find ./ -name '*.*' -print0 | xargs -0 cat ) | wc -l

Der Kernel hatte fast 28 Millionen (27.784.340, um genau zu sein) Textzeilen. Im Gegensatz, systemd hatte 1.349.969 oder fast 1,4 Millionen. Mit unserer Happy-Go-Lucky-Metrik systemd kommt bei etwa 5 Prozent der Größe des Kernels heraus, was verrückt ist!

Als weiterer Vergleich betrug die Zeilenanzahl für eine moderne Implementierung von System V init für die Arch Linux-Distribution 1.721 Zeilen.

Poettering hat offenbar keine Rücksicht auf die Institut für Elektro- und Elektronikingenieure (IEEE) Computer Society, noch die Portable Betriebssystemschnittstelle (POSIX) Standard. In der Tat, er ermutigte Entwickler, POSIX zu ignorieren::

„Holen Sie sich also eine Kopie der Linux-Programmierschnittstelle, ignorieren Sie alles, was über die POSIX-Kompatibilität gesagt wird, und hacken Sie Ihre erstaunliche Linux-Software weg. Es ist ziemlich entlastend! „

Es gab Vorwürfe, dass systemd ist ein Red Hat-Projekt, von dem nur Red Hat profitiert, das jedoch der breiteren Linux-Welt zwangsernährt wird. Ja, es wurde in Red Hat geboren und wird von ihm regiert und gesteuert. Von den 1.321 Mitwirkenden arbeitet jedoch nur ein Bruchteil für Red Hat.

Was sind die Vorteile von Red Hat?

Jim Whitehurst, der Präsident von IBM, der war Einmal sagte der CEO von Red Hat:

„Red Hat hat viele verfügbare Optionen in Betracht gezogen und sogar Canonicals Upstart für Red Hat Enterprise Linux 6 verwendet. Letztendlich haben wir uns für systemd entschieden, weil es die beste Architektur ist, die Erweiterbarkeit, Einfachheit, Skalierbarkeit und genau definierte Schnittstellen bietet, um die auftretenden Probleme zu lösen heute und in Zukunft vorausgesehen. “

Whitehurst sagte auch, dass sie Vorteile auch in eingebetteten Systemen sahen. Red Hat arbeitet mit „den größten Embedded-Anbietern der Welt zusammen, insbesondere in der Telekommunikations- und Automobilindustrie, wo Stabilität und Zuverlässigkeit das Hauptanliegen sind.“

Dies scheinen technisch fundierte Gründe zu sein. Sie können das Bedürfnis des Unternehmens nach Zuverlässigkeit verstehen, und es ist für Red Hat nicht unangemessen, auf seine eigenen Interessen zu achten, aber sollten alle anderen nachziehen?

Systemd Kool-Aid trinken?

Einige Gegner von systemd sagen, Distributionen und Leute folgen einfach blindlings Red Hats Führung und übernehmen sie.

Genau wie der Satz „Kool-Aid trinken“ ist das jedoch nicht ganz richtig. 1978 nach geprägt Kultführer Jim Jones, zwang seine über 900 Anhänger, Selbstmord zu begehen, indem er eine mit Zyanid angereicherte Flüssigkeit mit Traubengeschmack trank. Der Satz beschämt Kool-Aid fälschlicherweise. Die Gruppe trank tatsächlich Flavour Aid, aber Kool-Aid wurde seitdem von diesem Pinsel geteert.

Außerdem folgen Linux-Distributionen Red Hat nicht blindlings. sie adoptieren systemd nach ernsthaften Überlegungen. Die Debatte tobte am Debian Mailinglisten für eine lange Zeit. Im Jahr 2014 stimmte die Community jedoch für die Annahme systemd als die Standard-Init-System, aber auch Alternativen zu unterstützen.

Debian ist ein wichtiges Beispiel, da es nicht von RedHat, Fedora oder CentOS abgeleitet ist. Debian wird von Red Hat nicht gesteuert. Und Debian hat wie PID 1 viele Nachkommen, einschließlich Ubuntu und seiner vielen Ausgründungen.

Entscheidungen der Debian-Community sind weitreichend. Sie werden auch heftig diskutiert und über die Verwendung abgestimmt die Condorcet-Abstimmungsmethode. Die Community trifft solche Entscheidungen auch nicht leichtfertig.

Im Dezember 2019 wurde erneut abgestimmt sich weiterhin darauf konzentrieren systemd und weiterhin nach Alternativen zu suchen. Das Gegenteil von blindem Folgen, dies ist tatsächlich ein Lehrbuchbeispiel für Demokratie und Wahlfreiheit bei der Arbeit.

Die Grenzen der Wahl

Sie können im Allgemeinen nicht entscheiden, ob Sie verwenden möchten systemd mit einer bestimmten Linux-Distribution. Vielmehr entscheiden die Distributionen selbst, ob sie es verwenden möchten, und Sie können auswählen, welche Linux-Distribution Sie bevorzugen. Vielleicht eine Linux-Distribution, auf die Sie gerne umgestellt haben systemd. Wie ein Lieblingsmusiker, der das Genre wechselt, kann dies erschütternd sein.

Leute, die Debian benutzen, Fedora, CentOS, Ubuntu, Bogen, Solus, und openSUSEund widersprechen der Annahme von systemd, könnte das Gefühl haben, dass sie nicht mehr in der Lage sind, ihre Verteilung der Wahl zu nutzen. Wenn sie sich stark genug für eine der architektonischen Entscheidungen, das Scope Creep oder die Missachtung von POSIX fühlen, ist es möglicherweise unhaltbar, diese Distribution weiterhin zu verwenden.

Natürlich gibt es ein Spektrum. Auf der einen Seite haben Sie die Leute, die die Probleme nicht verstehen (oder sich sogar darum kümmern), und auf der anderen Seite haben Sie die leidenschaftlichen Verweigerer. Irgendwo in der Mitte sind diejenigen, die Änderungen nicht mögen, sich aber nicht genug darum kümmern, um Schiff zu springen. Aber was ist mit den Verteilungsflüchtlingen, die aufgrund ihrer Vorlieben oder Prinzipien nicht in der von ihnen gewählten Verteilung bleiben können?

Leider ist es nicht so einfach, nur das gewünschte Init-System zu installieren. Nicht jeder hat die technische Fähigkeit, dies zu tun, ungeachtet der Schwierigkeiten, die auftreten, wenn Anwendungen oder Desktop-Umgebungen wie GNOME, Abhängigkeiten haben von systemd.

Was ist mit einem Wechsel zu einer anderen Distribution? Einige wie Devuan, erschien als nicht-systemd Gabeln von Distributionen (in diesem Fall Debian), die angenommen hatten systemd. Die Verwendung von Devuan sollte der übergeordneten Verteilung ähnlich sein, dies ist jedoch nicht bei allen Nicht-Anbietern der Fall.systemd Gabeln. Zum Beispiel, wenn Sie Fedora verlassen und zu wechseln AntiX, Gentoo, oder SlackwareDu wirst eine ganz andere Erfahrung machen.

Es geht nirgendwo hin

Ich mag etwas von was systemd tut (einfache und standardisierte Kontrollmechanismen für Prozesse). Ich verstehe die Gründe für einige seiner Funktionen (binäre Protokolle) nicht. Ich mag auch einige Dinge nicht (Überarbeiten von Home-Ordnern – wer hat danach gefragt?).

Distributionen wie Debian machen das Kluge und suchen nach Alternativen, um ihre Optionen offen zu halten. Jedoch, systemd ist auf lange Sicht dabei.

Wenn Sie Linux-Computer für andere verwalten, lernen Sie systemd sowie Sie wissen, System V init. Auf diese Weise können Sie, egal auf was Sie stoßen, Ihre Aufgaben erfüllen.

Verwenden Sie Linux einfach zu Hause? Wenn ja, wählen Sie eine Distribution, die sowohl Ihren technischen Anforderungen entspricht als auch Ihre Linux-Ideologie ergänzt.

Continue Reading
Click to comment

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Tendencia