Warum Linux systemd Ist immer Noch Uneinigkeit Nach All Diesen Jahren

fatmawati achmad zaenuri/Shutterstock

systemd ist 10 Jahre alt, aber die Gefühle, über die es in der Linux-community noch nicht gemildert—es ist so polarisierend, wie es jetzt immer war. Obwohl es viele der großen Linux-Distributionen, die hardcore-opposition hat sich nicht erweichen.

Die Linux Boot-Sequenz

Wenn Sie Ihren computer einschalten, hardware-Stiefel, und dann (nach der Art von boot-Sektor, die Ihr Rechner verwendet) entweder den master boot record (MBR) ausführt, oder das Unified Extensible Firmware Interface (UEFI) ausgeführt wird. Die Letzte Aktion von beiden ist, um Feuer auf den Linux-kernel.

Der kernel in den Speicher geladen, dekomprimiert sich, und initialisiert. Ein temporäres Dateisystem im RAM erstellt, in der Regel durch ein Dienstprogramm namens initramfs oder initrd. Dies ermöglicht die erforderlichen Treiber werden bestimmt und geladen werden. Dies wiederum ermöglicht es dem user-space-Dateisystem zu laden und vorbereiten zum einrichten der Benutzer-Umgebung.

Die Erstellung der user-space-Umgebung behandelt wird der init-Prozess, die ist der erste Prozess gestartet, die vom kernel in den user-space. Es hat eine Prozess-ID (PID) der 1. Alle anderen Prozesse sind entweder direkte oder indirekte Kinder der init-Prozess.

Bevor systemd, die mainstream-Standard für den init-Prozess wurde eine überarbeitung des Unix-System-V-init. Es gab andere Möglichkeiten, aber System-V-init wurde die standard-option in den meisten nicht-Berkeley Software Distribution (BSD) abgeleiteten Distributionen. Denn es kam direkt aus der System-V-Unix—die spirituellen Vorfahren von Linux—viele Menschen betrachten es als die “offiziellen Weg” zu tun, init.

Der init-Prozess startet alle daemons und Dienste erforderlich, um das Betriebssystem Arbeit in eine aussagekräftige, interaktive Art und Weise. Diese daemons behandeln Dinge wie der Netzwerk-stack, so dass sich andere hardware in Ihrem computer, und bietet eine boot-Bildschirm.

Viele dieser Prozesse im hintergrund weiterhin ausgeführt, nachdem Sie gestartet. Sie tun Dinge wie log-event-Informationen, sehen für die hardware-änderungen, wie Sie Sie einfügen oder entfernen von Geräten und verwalten von Benutzer-logins. Wenig überraschend ist, dass das init-system beinhaltet auch Funktionen, um Dienste zu verwalten.

Wir können mit ps zu sehen, den Prozess mit PID 1. Wir werden das f (full-format-Auflistung) und p (PID) Optionen:

ps -fp-1

Wir sehen den Prozess mit der PID 1 ist systemd. Laufen Sie den gleichen Befehl auf Manjaro Linux ergab ein anderes Ergebnis. Der Prozess mit der PID 1 wurde erkannt als /sbin/init. Ein kurzer Blick auf die Datei zeigt, es ist eine symbolische Verknüpfung zu systemd:

ps -fp-1
ls -hl /sbin/init

Mit der ppid (parent-Prozess-ID) option mit ps können wir sehen, welche Prozesse wurden direkt gestartet von systemd:

ps -f –ppid 1

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

Die Alternativen

Zahlreiche Projekte haben versucht, zu produzieren, die eine alternative zum traditionellen System-V-init. Eines der wichtigsten Probleme ist, mit System-V-init-werden alle Prozesse gestartet sind, Seriell, einer nach dem anderen. Zur Verbesserung der Effizienz der boot-Sequenz, viele alternative Projekte verwenden Parallelität der Prozesse zu starten, die gleichzeitig und asynchron.

Hier einige Informationen über einige von diesen auf:

  • Upstart: Entwickelt von Canonical, wurde es in Ubuntu 9.10, Red Hat, Red Hat Enterprise Linux (RHEL) 6, CentOS 6, Fedora 9.
  • Runit: Läuft auf FreeBSD und andere BSD-Derivate, macOS, und Solaris, sowie Linux-Systemen. Es ist auch das Standard-init-system auf Void Linux.
  • s6-linux-init: Dieser Ersatz für System-V-init wurde entwickelt, um eng an die Unix-Philosophie, das ist oft reduziert auf den Ton “eine Sache zu tun, und tun es auch.”

Es gibt viele andere, abweichende Funktionalität und design. Jedoch, keiner von Ihnen erstellt die Aufregung systemd hat.

Die systemd Weg

systemd wurde veröffentlicht im Jahr 2010 und wurde in Fedora in 2011. Seit dann, es wurde angenommen durch viele Distributionen. Es wurde von Lennart Poettering und Kay Sievers, zwei software-Ingenieure bei RedHat.

systemd ist viel mehr als ein init-Ersatz. Eher, es ist eine suite von etwa 70 Binärdateien, die mit der Initialisierung des Systems, daemons und-Dienste, die Protokollierung und Journale, und viele andere Funktionen, die wurden schon verarbeitet durch spezielle Module in Linux. Der Großteil der diese haben nichts zu tun mit der Initialisierung des Systems.

Einige der Dämonen zur Verfügung gestellt von systemd sind:

  • systemd-udevd: Verwaltet physische Geräte.
  • systemd-logind: Verwaltet Benutzer-logins.
  • systemd-behoben: Netzwerk-Namensauflösung für lokale Anwendungen.
  • systemd-networkd: Verwaltet und erkennt Netzwerk-Geräten und verwaltet die Netzwerk-Konfigurationen.
  • systemd-tmpfiles: Erstellt, löscht und bereinigt flüchtige und temporäre Dateien und Verzeichnisse.
  • systemd-localed: Verwaltet die lokalen Einstellungen des Systems.
  • systemd-bearbeitet: Erkennt und überwacht die virtuellen Maschinen und Containern.
  • systemd-nspawn: starten Sie einen Befehl oder einen anderen Prozess in einem leichten namespace container, was eine ähnliche Funktionalität wie chroot.

Und das ist nur die Spitze des Eisbergs, das ist auch die Krux an der Sache. systemd hat sich längst überholt, was erforderlich ist, ein init-system, die, nach Ihren Gegnern, ist die definition von scope creep.

“Er ist Zu Groß. Es Tut Viel Zu Viel.”

Gegner von systemd Punkt aus die große, interessante Mischung von Funktionen, die es umfasst. All diese features gab es bereits in Linux, und, vielleicht, einige von Ihnen mussten eine Aktualisierung oder einen neuen Ansatz. Allerdings bündeln Sie alle diese Funktionen in dem, was sein soll, ein init-system ist architektonisch rätselhaft.

systemd wurde als single point of failure für zu viele der kritischen Funktionen, aber dies scheint nicht gerechtfertigt werden. Zugegeben, es wirft die Unix-Philosophie der Erstellung von kleinen tools, die zusammenarbeiten, anstatt große Stücke von software, die alles aus dem Fenster. Während systemd ist nicht unbedingt monolithische (es ist aus vielen Binärdateien, sondern als eine einzige große eins), es beinhaltet eine Menge von unterschiedlichen management-tools und-Befehle unter einem Dach.

Während es möglicherweise nicht monolithisch, es ist groß. Um eine Vorstellung von dem Maßstab, den wir gezählt, die Zeilen des Textes in den kernel 5.6.15 codebase und die systemd master-branch des GitHub-repository.

Dies war ein relativ rohes Metrik. Es zählte Zeilen text, nicht nur code-Zeilen. So, diese enthalten Kommentare, Dokumentation, und alles andere. Allerdings war es ein like-for-like-Vergleich und gab uns eine einfache Messlatte:

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

Der kernel hatte fast 28 Millionen (27,784,340, um genau zu sein) Zeilen text. Dagegen, systemd hatte 1,349,969, oder fast 1,4 Millionen. Mit unserem happy-go-lucky Metrik, systemd kommt bei etwa 5 Prozent der Größe des Kernels, die ist verrückt!

Als ein weiterer Vergleich, der die Anzahl der Zeilen für eine moderne Implementierung der System-V-init für die Arch Linux distribution heraus kam 1,721 Linien.

Hans-Gert Pöttering, einfach keine Wertschätzung für das Institute of Electrical and Electronics Engineers (IEEE) Computer Society, noch die Portable Operating System Interface (POSIX) standard. In der Tat, er forderte die Entwickler zu ignorieren POSIX:

“Also, Holen Sie sich eine Kopie des Linux Programming Interface, ignorieren Sie alles, was Sie sagt über POSIX-Kompatibilität und hacken Sie Ihre erstaunliche Linux-software. Es ist sehr entlastend!”

Es gab Vorwürfe, dass systemd ist ein Red Hat Projekt, das nur Vorteile von Red Hat, doch es wird Kraft zugeführt, die größeren Linux-Welt. Ja, es geboren wurde, innerhalb von Red Hat und ist geregelt und gesteuert durch es. Jedoch, der 1,321 Beitragszahler, die nur einen Bruchteil der Arbeit für Red Hat.

Also, was sind die Vorteile von Red Hat?

Jim Whitehurst, Präsident von IBM, die einst der CEO von Red Hat, sagte:

“Red Hat als viele Optionen und sogar verwendet Canonical ist der Emporkömmling, der sich für Red Hat Enterprise Linux 6. Letztlich entschieden wir uns für systemd, weil es die beste Architektur, bietet die Erweiterbarkeit, Einfachheit, Skalierbarkeit und gut definierte Schnittstellen, um die Probleme, die wir heute sehen und sehen in der Zukunft.”

Whitehurst sagte auch, Sie sahen Vorteile in der embedded-Systeme, auch. Red Hat Partner mit “die größte embedded-Anbieter in der Welt, insbesondere in der Telekommunikations-und Automobilindustrie, wo Stabilität und Zuverlässigkeit ist die Sorge Nummer eins.”

Diese wirken wie technisch gute Gründe dafür. Sie können verstehen, die den Bedarf der Firma für Zuverlässigkeit, und es ist nicht unvernünftig für Red Hat, um den Blick für seine eigenen Interessen, aber sollten alle anderen Folgen?

Trinken die systemd Kool-Aid?

Einige Gegner von systemd sagen Distributionen und die Leute sind einfach blind von Red Hat führen und Annahme.

Aber, genau wie der Satz: “trinken Sie die Kool-Aid,” das ist nicht ganz richtig. Prägte im Jahr 1978 nach dem Kult-Anführer Jim Jones, genötigt, seine über 900 Anhänger, Selbstmord zu Begehen, durch das trinken einer Traube-gewürzte Flüssigkeit mit Cyanid geschnürt werden, ist der Satz falsch shames Kool-Aid. Die Gruppe eigentlich Trank Geschmack-Hilfe, aber Kool-Aid ist schon geteert, indem der Pinsel immer da.

Plus -, Linux-Distributionen sind nicht blind nach Red Hat; Sie sind zur Annahme systemd nach schwerer Beratung. Die Debatte tobte auf der Debian mailing-Listen für eine lange Zeit. Jedoch, im Jahr 2014, die Gemeinde stimmte zu erlassen, um systemd als Standard-init-system, sondern unterstützen auch alternativen.

Debian ist ein wichtiges Beispiel, da es nicht abgeleitet von RedHat, Fedora oder CentOS. Es gibt keine Steuerung angewandt, um Debian von Red Hat. Und Debian, wie die PID 1 hat, hat viele Nachkommen, darunter auch Ubuntu und seine vielen spin-offs.

Entscheidungen, die die Debian-Gemeinschaft sind weit reichend. Sie sind auch heftig diskutiert, und die Abstimmung mit der Condorcet-Abstimmung-Methode. Die Gemeinschaft macht nicht solche Entscheidungen leicht, entweder.

Es stimmte wieder im Dezember 2019 weiterhin Fokus auf systemd und weiter nach alternativen zu suchen. Das Gegenteil von blind zu Folgen, das ist eigentlich ein lehrbuch-Beispiel von Demokratie und Freiheit der Wahl bei der Arbeit.

Die Einschränkungen der Wahl

Sie in der Regel nicht bekommen, zu wählen, ob systemd mit einer bestimmten Linux-distribution. Vielmehr sind die Distributionen selbst entscheiden, ob Sie es verwenden möchten, und Sie können auswählen, welche Linux-Distribution Sie bevorzugen. Vielleicht eine Linux-distribution, die Sie lieben eingeschaltet, um systemd. Wie ein Lieblings-Musiker, änderungen, genres, kann dies hinderlich sein.

Leute, die verwenden, Debian, Fedora, CentOS, Ubuntu, Arch, Solus, und openSUSE, und Objekt, um die Einführung von systemd, vielleicht das Gefühl, Sie werden nicht verdrängt, mit Ihrer distribution der Wahl. Wenn Sie fühlen sich stark genug, über die architektonischen Entscheidungen, scope creep, oder ignorieren, POSIX, könnte es für unhaltbar zu halten mit dieser Verteilung.

Es gibt ein Spektrum, natürlich. An einem Ende haben Sie die Menschen, die nicht verstehen, die Probleme (oder auch Pflege), und auf der anderen, haben Sie die leidenschaftliche Verweigerer. Irgendwo in der Mitte sind diejenigen, die nicht gerne Veränderungen, aber nicht die Mühe gemacht, genug über ihn zu springen Schiff. Aber was ist mit der Verteilung der Flüchtlinge, die es nicht können bleiben auf Ihrer gewählten distribution, die aufgrund Ihrer Einstellungen oder Prinzipien?

Leider, es ist nicht nur einfach installieren, welches init-system, die Sie wollen. Nicht jeder hat die technische Fähigkeit, dies zu tun, nevermind die Schwierigkeiten, die auftreten, wenn Anwendungen oder desktop-Umgebungen wie GNOME, Abhängigkeiten zu systemd.

Was über den Umzug zu einer anderen distribution? Einige, wie Devuan, erschien als nicht-systemd-Gabeln von Distributionen (in diesem Fall Debian), die angenommen hatten systemd. Mit Devuan werden sollte, ähnlich wie die Muttergesellschaft den Vertrieb, aber das ist nicht der Fall für alle nicht-systemd-Gabeln. Zum Beispiel, wenn Sie verlassen, Fedora und bewegen zu AntiX, Gentoo oder Slackware, du gehst zu haben eine ganz andere Erfahrung.

Es ist Nicht Überall

Ich mag einiges von dem, was systemd macht (einfache und standardisierte Kontrollmechanismen für Prozesse). Ich verstehe nicht die Gründe für etwas, was es tut (Binär-logs). Ich auch nicht mögen, was es tut (Umgestaltung der home-Ordner—wer gefragt?).

Distributionen wie Debian tun die intelligente Sache und Untersuchung von alternativen zu halten Ihre Optionen offen. Aber systemd ist in ihm für die Langstrecke.

Falls Sie für die Administration von Linux-Maschinen für den anderen, lernen systemd so gut wie Sie wissen-System-V-init. Auf diese Weise, egal, was Sie begegnen, werden Sie in der Lage ist seine Aufgaben zu erfüllen.

Benutzen Sie einfach Linux zu Hause? Wenn ja, wählen Sie eine distribution, die beide erfüllt Ihre technischen Anforderungen und ergänzt Ihre Linux-Ideologie.

RELATED: Systemd Wird sich Ändern, Wie Sie Ihr Linux-Home-Verzeichnis Funktioniert

LESEN SIE WEITER

  • › Wie man die Größe von Ihrem Start-Menü in Windows 10
  • › Was Ist Google Treffen, und Wie Kann Man Es Kostenlos Nutzen?
  • › Braucht Es Wirklich 60 Sekunden eine Ablaufverfolgung für ein Anruf?
  • “Wie man den Handel mit Anderen Spieler in “Animal Crossing: New Horizons’
  • “What Does “IDK” Mean, und Wie Verwenden Sie Es?

Posted

in

by

Tags: