Die Geschichte hinter 'init' und 'systemd' Warum 'init' musste durch 'systemd' unter Linux ersetzt werden

Die Geschichte hinter 'init' und 'systemd' Warum 'init' musste durch 'systemd' unter Linux ersetzt werden

Ich habe mehrere Mailinglisten abonniert, die sich auf verschiedene Linux -Verteilungen und -Anträglichkeiten beziehen, nur um mich über das, was los ist, auf dem Laufenden zu halten. Was sind die neuen Fehler?? Was sind die veröffentlichten Patches?? Was wird in der nächsten Veröffentlichung erwartet? Und eine ganze Menge anderer Sachen. Heutzutage ist die Mailingliste stark mit „Wählen Sie Ihre Seite unter Linux Divide aus“, hauptsächlich auf der Debian -Mailingliste zusammen mit einigen anderen.

systemd ersetzt init
Worum geht es darum?

Der drin Daemon wird durch Daemon ersetzt systemd Auf einigen der Linux -Verteilungen haben viele von ihnen bereits implementiert. Dies erzeugt/wird eine große Lücke zwischen traditionellem Unix/Linux -Guard und neuem Linux -Guard - Programmierern und Systemadministern.

In diesem Artikel werden wir alle Abfragen nacheinander besprechen und lösen.

  1. Was init ist?
  2. Was ist systemd?
  3. Warum init ersetzt werden musste?
  4. Was Features Systemd besitzen wird.

Was ist darin?

Unter Linux, drin ist eine Abkürzung für die Initialisierung. Der drin ist ein Daemon. In-fact init ist der erste Prozess, der beginnt, wenn ein Computer stirbt, soPID = 1“.

Wenn irgendwie drin Daemon konnte nicht starten, kein Prozess wird gestartet und das System wird eine Bühne namens namens "Kernel Panik“. Init wird am häufigsten als bezeichnet als System V init. System V ist das erste kommerzielle UNIX -Betriebssystem, das entworfen wurde, und die Verwendung von Init auf den größten Teil der heutigen Linux -Verteilung ist identisch mit System v os Mit ein paar Ausnahmen wie Slackware unter Verwendung des BSD-Stils und Gentoo mit benutzerdefiniertem Init.

Die Notwendigkeit, init durch etwas Perfekteres zu ersetzen, war aus langer Zeit zu spüren, und von Zeit zu Zeit wurden mehrere Alternativen entwickelt, von denen einige der native Init-Ersatz für Verteilung wurden, von denen einige Folgendes sind:

  1. Emporkömmling - Ein init -Ersatz -Daemon, der in Ubuntu GNU/Linux implementiert ist und den Prozess asynchron starten soll.
  2. Epoche - Ein Init-Ersatz-Daemon, der sich auf Einfachheit und Servicemanagement entwickelt, das für den Start von Single-Threaded-Verfahren entwickelt wurde.
  3. Mudar - Ein in Python geschriebenes Init -Ersatz -Daemon, implementiert auf Pardus gnu/Linux und so konzipiert, dass der Prozess asynchron startet.
  4. systemd - Ein Init -Ersatz -Daemon, der parallel gestartet wurde und in einer Reihe von Standardverteilung implementiert ist - Fedora, OpenSuse, Arch, Rhel, CentOS usw.

Was ist systemd?

A systemd ist ein Systemverwaltungs -Daemon, der mit Unix -Konvention benannt wird, um hinzuzufügen 'D'Am Ende von Daemon. So dass sie leicht erkannt werden können. Zunächst wurde es unter GNU General Public Lizenz veröffentlicht, aber jetzt werden die Veröffentlichungen im Rahmen der GNU Lesser General Public Lizenz erstellt. Ähnlich wie init ist systemd das übergeordnete aller anderen Prozesse direkt oder indirekt und der erste Prozess, der mit dem Start beginnt, weshalb normalerweise ein „zugewiesen wird“ zugewiesen wurde “PID = 1“.

A systemd, Kann sich auf alle Pakete, Dienstprogramme und Bibliotheken rund um Daemon beziehen. Es wurde entwickelt, um die Mängel von init zu überwinden. Es selbst ist ein Hintergrundprozesse, mit dem Prozesse parallel gestartet werden sollen, wodurch die Startzeit und die Rechenaufwand verkürzt werden. Es hat viele andere Funktionen im Vergleich zu Init.

Warum es notwendig war, Init zu ersetzen?

Ein Init -Prozess beginnt seriell ich.e., Eine Aufgabe beginnt erst, nachdem das Startup der letzten Aufgaben erfolgreich war und in den Speicher geladen wurde. Dies führte oft zu verzögerten und langen Bootszeiten. Systemd war jedoch nicht für Geschwindigkeit ausgelegt, sondern für die Dinge, die sich nicht ordentlich erledigen, vermeiden alle unnötigen Verzögerungen.

Merkmale von systemd
  1. Sauber, staatlich und effizientes Design.
  2. Einfacherer Startvorgang.
  3. Gleichzeitige und parallele Verarbeitung beim Start.
  4. Bessere API.
  5. Einfache Einheitssyntax.
  6. Fähigkeit, optionale Komponenten zu entfernen.
  7. Fußabdrücke mit geringer Speicher.
  8. Verbesserte Technik, um Abhängigkeiten auszudrücken.
  9. Initialisierungsanweisung in Konfigurationsdatei und nicht im Shell -Skript geschrieben.
  10. Nutzen Sie die UNIX -Domänen -Socket.
  11. Stellenplanung mit Systemd -Kalender -Timern.
  12. Ereignisanmelde mit Journald.
  13. Auswahl der Protokollierungssystemereignisse mit Systemd sowie Syslog.
  14. Protokolle werden in Binärdatei gespeichert.
  15. Der Systemd -Staat kann erhalten werden, um später in Zukunft aufzurufen werden.
  16. Trackprozess mit der CGroup von Kernel und nicht der PID.
  17. Benutzer melden sich von systemd-logind verwaltet an.
  18. Bessere Integration in GNOME für die Interoperabilität.
Engpässe systemd
  1. Alles an einem Ort.
  2. Nicht posix -Standard.

Systemd- und Distolenintegration

Linux -Verteilung Integration
Fedora Ja, erste Distribution, um systemd zu übernehmen
Bogen Ja
Roter Hut Ja
Centos Ja
Debian Ja, Debian 8 Codename Jessie wird systemd standardmäßig haben
Gentoo Ja, muss aber mit benutzerdefiniertem Init heruntergeladen, installiert und konfiguriert werden
OpenSuse Ja
Locker Nein (obwohl es bis jetzt in Slackware nicht übernommen wurde, hat Patric Volkerding keinen Hinweis darauf gezeigt, ob es angenommen wird oder nicht)
Ubuntu Ja, muss mit Upstream installiert und konfiguriert werden.
Kontroverse

Linus Torvalds, Chefarchitekt von Linux Kernel, verspürt die Einstellung des Schlüsselentwicklers von Systemd gegenüber Benutzern und Fehlerberichte scheint nicht in Ordnung zu sein. Es wurde auch berichtet, dass die Systemd -Philosophie seltsam ist und eine fremde Methode zur Kontrolle von Systemprozessen ist. Gleiches gilt von Patric Volkerding und anderen bemerkenswerten Linux-Benutzern und -Enternern sowie über Online-Forum, Zeit zu Zeit.

Systemd vs Init

Merkmale drin systemd
DBUS -Abhängigkeit - obligatorisch NEIN Ja
Gerätebasierte Aktivierung NEIN Ja
Geräteabhängigkeitskonfiguration mit Udev NEIN Ja
Timerbasierte Aktivierung Cron/at Proprietär
Quotenmanagement NEIN Ja
Automatische Handhabung der Serviceabhängigkeit NEIN Ja
Tötet Benutzerprozess beim Abmelden NEIN Ja
Swap -Management NEIN Ja
Selinux -Integration NEIN Ja
Unterstützung für verschlüsselte Festplatte NEIN Ja
Statisches Kernelmodulbelastung NEIN Ja
GUI NEIN Ja
Listen Sie alle Kinderprozesse auf NEIN Ja
Sysv kompatibel Ja Ja
Interaktiver Booting NEIN Ja
Tragbar zu non x86 Ja NEIN
Adoptiert auf Mehrere Distribution Mehrere Distribution
Parallele Service -Startup NEIN Ja
Ressourcenlimit pro Dienst NEIN Ja
Einfach erweiterbares Startskript Ja NEIN
Separate Code- und Konfigurationsdatei Ja NEIN
Automatische Abhängigkeitsberechnung NEIN Ja
Ausführliches Debuggen Ja NEIN
Ausführung N / A V44+
Größe 560 kb N / A
Anzahl der Dateien 75 Dateien 900 Dateien + GLIB + DBUS
Codezeilen - loc 15000 (ca.) 224000 (ca.) (Inc -Codes, Kommentare und Weißraum) 125000 (ca.) (Actual Code)

Abschluss

Alles, was als PID = 1 läuft, darf nicht brechen, nicht durcheinander sein und muss von Benutzern effektiv und effizient gesteuert werden. Many-a-User ist der Ansicht, dass das Ersetzen von Init in Systemd nichts anderes ist, als das Rad jedes Mal als Nebeneffekt von Linux neu zu erfinden. Aber dies ist die vielfältige Natur von Linux. Dies liegt daran, dass Linux so viel mächtig ist. Veränderung ist gut und wir müssen es zu schätzen wissen, wenn es aus gutem Grund ist.

Das ist alles fürs Erste. Ich werde wieder mit einem anderen interessanten Artikel sein, den Sie Leute lieben werden zu lesen. Bis dahin bleiben Sie dran und mit Tecmint verbunden. Vergessen Sie nicht, uns in den Kommentaren unten Ihr wertvolles Feedback zu geben.