Die Geschichte hinter 'init' und 'systemd' Warum 'init' musste durch 'systemd' unter Linux ersetzt werden
- 2873
- 359
- Henry Liebold
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 initWorum 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.
- Was init ist?
- Was ist systemd?
- Warum init ersetzt werden musste?
- 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:
- Emporkömmling - Ein init -Ersatz -Daemon, der in Ubuntu GNU/Linux implementiert ist und den Prozess asynchron starten soll.
- Epoche - Ein Init-Ersatz-Daemon, der sich auf Einfachheit und Servicemanagement entwickelt, das für den Start von Single-Threaded-Verfahren entwickelt wurde.
- Mudar - Ein in Python geschriebenes Init -Ersatz -Daemon, implementiert auf Pardus gnu/Linux und so konzipiert, dass der Prozess asynchron startet.
- 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
- Sauber, staatlich und effizientes Design.
- Einfacherer Startvorgang.
- Gleichzeitige und parallele Verarbeitung beim Start.
- Bessere API.
- Einfache Einheitssyntax.
- Fähigkeit, optionale Komponenten zu entfernen.
- Fußabdrücke mit geringer Speicher.
- Verbesserte Technik, um Abhängigkeiten auszudrücken.
- Initialisierungsanweisung in Konfigurationsdatei und nicht im Shell -Skript geschrieben.
- Nutzen Sie die UNIX -Domänen -Socket.
- Stellenplanung mit Systemd -Kalender -Timern.
- Ereignisanmelde mit Journald.
- Auswahl der Protokollierungssystemereignisse mit Systemd sowie Syslog.
- Protokolle werden in Binärdatei gespeichert.
- Der Systemd -Staat kann erhalten werden, um später in Zukunft aufzurufen werden.
- Trackprozess mit der CGroup von Kernel und nicht der PID.
- Benutzer melden sich von systemd-logind verwaltet an.
- Bessere Integration in GNOME für die Interoperabilität.
Engpässe systemd
- Alles an einem Ort.
- 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.
- « RHCSA -Serie -Prozessmanagement im RHEL 7 -Boot, Herunterfahren und alles dazwischen - Teil 5
- 25 Nützliche Apache '.Htaccess 'Tricks, um Websites zu sichern und anzupassen »