La història darrere d'init i systemd: per què cal substituir init per systemd a Linux


Estic subscrit a diverses llistes de correu relacionades amb diverses distribucions i aplicacions de Linux només per mantenir-me actualitzat amb el que està passant on. Quins són els nous errors? Quins són els pegats publicats? Què s'espera en el proper llançament? i un munt de coses més. En aquests dies, la llista de correu està molt plena de \Tria el teu costat a Linux Divide, principalment a la llista de correu de Debian juntament amb unes quantes altres.

El dimoni init es substituirà pel dimoni systemd en algunes de les distribucions de Linux, encara que moltes d'elles ja l'han implementat. Això crearà una gran bretxa entre la tradicional Unix/Linux Guard i la New Linux Guard: programadors i administradors del sistema.

En aquest article, parlarem i resoldrem totes les consultes una per una.

  1. Què és init?
  2. Què és systemd?
  3. Per què cal substituir init?
  4. Quines funcions tindrà systemd.

A Linux, init és una abreviatura de Inicialització. L'init és un procés dimoni que s'inicia tan bon punt s'inicia l'ordinador i continua executant-se fins que s'apaga. De fet, init és el primer procés que s'inicia quan s'inicia un ordinador, el que el converteix en el pare de tots els altres processos en execució directament o indirectament i, per tant, normalment se li assigna pid=1.

Si d'alguna manera el dimoni init no es pot iniciar, no s'iniciarà cap procés i el sistema arribarà a una fase anomenada “Kernel Panic“. init es coneix com a System V init. System V és el primer sistema operatiu UNIX comercial dissenyat i els usos d'init a la major part de la distribució de Linux d'avui és idèntic al System V OS amb algunes excepcions com Slackware que utilitza l'estil BSD i Gentoo que utilitza init personalitzat. .

La necessitat de substituir init per alguna cosa més perfecte es va sentir des de fa molt de temps i es van desenvolupar diverses alternatives de tant en tant, algunes de les quals es van convertir en el substitut natiu d'inici de la distribució, algunes de les quals són:

  1. Upstart: un dimoni de substitució inicial implementat a Ubuntu GNU/Linux i dissenyat per iniciar el procés de manera asíncrona.
  2. Època: un dimoni de substitució inicial construït al voltant de la simplicitat i la gestió del servei, dissenyat per iniciar el procés d'un sol fil.
  3. Mudar: un dimoni de substitució inicial escrit en Python, implementat a Pardus GNU/Linux i dissenyat per iniciar el procés de manera asíncrona.
  4. systemd: un dimoni de substitució inicial dissenyat per iniciar el procés en paral·lel, implementat en una sèrie de distribucions estàndard: Fedora, OpenSuSE, Arch, RHEL, CentOS, etc.

Un systemd és un dimoni de gestió del sistema anomenat amb la convenció UNIX per afegir d al final del dimoni. Així que es poden reconèixer fàcilment. Inicialment es va publicar sota la llicència pública general GNU, però ara els llançaments es fan sota la llicència pública general menor GNU. De manera similar a init, systemd és el pare de tots els altres processos directament o indirectament i és el primer procés que s'inicia a l'arrencada, per tant, normalment se li assigna un pid=1.

Un systemd pot referir-se a tots els paquets, utilitats i biblioteques al voltant del dimoni. Va ser dissenyat per superar les mancances d'init. Es tracta d'un procés de fons dissenyat per iniciar processos en paral·lel, reduint així el temps d'arrencada i la sobrecàrrega computacional. Té moltes altres característiques en comparació amb init.

Un procés d'inici s'inicia en sèrie, és a dir, una tasca s'inicia només després que l'última tasca s'iniciï correctament i s'ha carregat a la memòria. Això sovint va provocar un temps d'arrencada retardat i llarg. Tanmateix, systemd no va ser dissenyat per a la velocitat, sinó per fer les coses de manera ordenada, cosa que al seu torn evita tot el retard necessari per l'ONU.

  1. Disseny net, avançat i eficient.
  2. Procés d'arrencada més senzill.
  3. Processament simultània i paral·lel a l'arrencada.
  4. Millor API.
  5. Sintaxi d'unitat simple.
  6. Capacitat d'eliminar components opcionals.
  7. Empremta de memòria baixa.
  8. Tècnica millorada per expressar dependències.
  9. Instrucció d'inicialització escrita al fitxer de configuració i no a l'script de l'intèrpret d'ordres.
  10. Feu ús de Unix Domain Socket.
  11. Programació de treballs mitjançant temporitzadors de calendari systemd.
  12. Registre d'esdeveniments amb journald.
  13. Elecció de registrar esdeveniments del sistema amb systemd i syslog.
  14. Els registres s'emmagatzemen en un fitxer binari.
  15. L'estat del sistema es pot conservar per ser cridat més endavant.
  16. Fes un seguiment del procés utilitzant el grup c del nucli i no el PID.
  17. Inici de sessió dels usuaris gestionat per systemd-logind.
  18. Millor integració amb Gnome per a la interoperabilitat.

  1. Tot en un sol lloc.
  2. No és estàndard POSIX.

Linus Torvalds, arquitecte en cap del nucli de Linux, considera que l'actitud del desenvolupador clau de systemd envers els usuaris i els informes d'error no sembla bé. També es va informar que la filosofia systemd és estranya i una forma estrangera de controlar els processos del sistema. El mateix s'ha registrat de Patric Volkerding i altres usuaris i desenvolupadors de Linux notables, així com a través del fòrum en línia, de tant en tant.

Qualsevol cosa que funcioni com a pid=1 no s'ha de trencar, no ha de ser un desastre i ha de ser controlat pels usuaris de manera eficaç i eficient. Molts usuaris creuen que substituir init per systemd no és més que reinventar la roda cada vegada com un efecte secundari de Linux. Però aquesta és la naturalesa diversa de Linux. Això és perquè Linux és molt poderós. El canvi és bo i l'hem d'agrair si és per una bona raó.

Això és tot per ara. Tornaré a ser aquí amb un altre article interessant que us encantarà llegir. Fins aleshores estigueu atents i connectats a Tecmint. No us oblideu de proporcionar-nos els vostres valuosos comentaris als comentaris següents.