Vyhledávání na webu

Příběh za 'init' a 'systemd': Proč je 'init' potřeba nahradit 'systemd' v Linuxu


Jsem přihlášen k odběru několika e-mailových konferencí souvisejících s různými linuxovými distribucemi a aplikacemi, abych byl informován o tom, co se kde děje. Jaké jsou nové chyby? Jaké jsou vydané záplaty? Co se očekává v příštím vydání? a spoustu dalších věcí. V současné době je mailing list hojně zaplněn „Vyberte si svou stranu na Linux Divide“, hlavně na Debian Mailing listu spolu s několika dalšími.

O čem je „Vyberte si svou stranu na Linux Divide“?

Démon init bude nahrazen démonem systemd na některých linuxových distribucích, zatímco mnoho z nich jej již implementovalo. Toto je/bude vytvářet obrovskou propast mezi tradiční Unix/Linux Guard a New Linux Guard – programátory a správci systému.

V tomto článku budeme diskutovat a řešit všechny dotazy jeden po druhém.

  1. Co je to init?
  2. Co je systemd?
  3. Proč bylo potřeba vyměnit init?
  4. Jaké funkce bude mít systemd.

Co v tom je?

V Linuxu je init zkratka pro inicializaci. Init je proces démona, který se spustí, jakmile se počítač spustí, a běží až do jeho vypnutí. Ve skutečnosti je init prvním procesem, který se spustí při startu počítače, což z něj činí přímo nebo nepřímo rodiče všech ostatních běžících procesů, a proto je mu obvykle přiřazeno „pid=1“.

Pokud se nějakým způsobem nepodařilo spustit démona init, nespustí se žádný proces a systém se dostane do fáze zvané „Kernel Panic“. init se nejčastěji označuje jako Init System V. System V je první komerční operační systém UNIX navržený a použití init na většině dnešní distribuce Linuxu je totožné s OS OS V s několika výjimkami, jako je Slackware používající styl BSD a Gentoo používající vlastní init .

Potřeba nahradit init něčím dokonalejším byla pociťována již dlouhou dobu a čas od času bylo vyvinuto několik alternativ, z nichž některé se staly nativní náhradou init distribuce, z nichž některé jsou:

  1. Upstart – Démon nahrazující init implementovaný v Ubuntu GNU/Linux a navržený tak, aby spouštěl proces asynchronně.
  2. Epocha – Démon nahrazující init postavený na jednoduchosti a správě služeb, navržený tak, aby spouštěl proces s jedním vláknem.
  3. Mudar – Démon nahrazující init napsaný v Pythonu, implementovaný na Pardus GNU/Linux a navržený tak, aby spouštěl proces asynchronně.
  4. systemd – Démon nahrazující init určený pro paralelní spouštění procesu, implementovaný v řadě standardních distribucí – Fedora, OpenSuSE, Arch, RHEL, CentOS atd.

Co je systemd?

systemd je démon správy systému pojmenovaný podle konvence systému UNIX pro přidání „d“ na konec démona. Aby je bylo možné snadno rozpoznat. Původně byla vydána pod GNU General Public License, ale nyní jsou vydání provedena pod GNU Lesser General Public License. Podobně jako init je systemd přímo nebo nepřímo rodičem všech ostatních procesů a je prvním procesem, který začíná při bootování, a proto je mu obvykle přiřazeno „pid=1“.

systemd může odkazovat na všechny balíčky, nástroje a knihovny kolem démona. Byl navržen tak, aby překonal nedostatky init. Je to samo o sobě procesy na pozadí, které jsou navrženy tak, aby spouštěly procesy paralelně, čímž se zkracuje doba spouštění a výpočetní režie. Ve srovnání s init má mnoho dalších funkcí.

Proč bylo potřeba vyměnit init?

Proces init se spouští sériově, tj. jedna úloha se spustí až po úspěšném spuštění poslední úlohy a načtení do paměti. To často vedlo ke zpožděnému a dlouhému bootování. Systemd však nebyl navržen pro rychlost, ale pro to, aby se věci dělaly úhledně, což zase zamezilo veškerému zpoždění, které OSN potřebuje.

Vlastnosti systemd
  1. Čistý, pokrokový a efektivní design.
  2. Jednodušší proces spouštění.
  3. Souběžné a paralelní zpracování při spouštění.
  4. Lepší API.
  5. Jednoduchá syntaxe jednotek.
  6. Schopnost odstranit volitelné součásti.
  7. Nízké nároky na paměť.
  8. Vylepšená technika pro vyjádření závislostí.
  9. Inicializační instrukce zapsaná v konfiguračním souboru a ne ve skriptu shellu.
  10. Využijte Unix Domain Socket.
  11. Plánování úloh pomocí systémových kalendářových časovačů.
  12. Protokolování událostí pomocí journald.
  13. Volba protokolování systémových událostí pomocí systemd i syslog.
  14. Protokoly jsou uloženy v binárním souboru.
  15. stav systemd lze zachovat pro pozdější volání.
  16. Sledujte proces pomocí cgroup jádra a nikoli PID.
  17. Přihlášení uživatelů je spravováno systemd-logind.
  18. Lepší integrace s Gnome pro interoperabilitu.
Úzká místa systemd
  1. Vše na jednom místě.
  2. Není standardem POSIX.

Integrace Systemd a Distro

Linux Distribution

Integrace

Fedora

Ano, první distribuce, která přijala systemd

Arch

Ano

RedHat

Ano

CentOS

Ano

Debian

Ano, Debian 8 kódové jméno Jessie bude mít ve výchozím nastavení systemd

Gentoo

Ano, ale je třeba stáhnout, nainstalovat a nakonfigurovat stranu s vlastním init

OpenSUSE

Ano

Slack

Ne (ačkoli dosud nebyl ve slackwaru přijat, Patric Volkerding neukázal žádný údaj, zda bude přijat nebo ne)

Ubuntu

Ano, je třeba nainstalovat a nakonfigurovat pomocí Upstream.

Kontroverze

Linus Torvalds, hlavní architekt linuxového jádra, cítí přístup klíčového vývojáře systemd k uživatelům a hlášení o chybách se nezdají být v pořádku. Bylo také oznámeno, že filozofie systemd je zvláštní a cizí způsob, jak řídit systémové procesy. Totéž bylo zaznamenáno od Patrica Volkerdinga a dalších významných uživatelů a vývojářů Linuxu a také prostřednictvím online fóra, čas od času.

systemd vs init

Features init systemd
DBus Dependency – Mandatory No Yes
Device based Activation No Yes
Device dependency configuration with udev No Yes
Timer based Activation Cron/at Proprietary
Quota Management No Yes
Automatic Service Dependency Handling No Yes
Kills users Process at logout No Yes
Swap Management No Yes
SELinux integration No Yes
Support for Encrypted HDD No Yes
Static kernle module loading No Yes
GUI No Yes
List all the child processes No Yes
Sysv compatible Yes Yes
Interactive booting No Yes
Portable to non x86 Yes No
Adopted on Several Distro Several Distro
Parallel service startup No Yes
Resource limit per service No Yes
Easy extensible startup script Yes No
Separate Code and Configuration File Yes No
Automatic dependency calculation No Yes
Verbose debug Yes No
Version N/A V44+
Size 560 KB N/A
Number of Files 75 files 900 files + glib + DBus
Lines of code – LOC 15000 (Approx) 224000 (Approx) (inc Codes, comments and white space) 125000 (Approx) (acctual code)

Závěr

Nic, co běží jako pid=1, se nesmí rozbít, nesmí být nepořádek a musí to uživatelé efektivně a efektivně ovládat. Mnoho uživatelů věří, že nahrazení init za systemd není nic jiného než pokaždé znovuobjevení kola jako vedlejší efekt Linuxu. Ale to je různorodá povaha Linuxu. Je to proto, že Linux je tak mocný. Změna je dobrá a musíme ji ocenit, pokud je z dobrého důvodu.

To je prozatím vše. Budu tu znovu s dalším zajímavým článkem, který si lidé rádi přečtou. Do té doby zůstaňte naladěni a připojeni k Tecmint. Nezapomeňte nám v komentářích níže poskytnout svou cennou zpětnou vazbu.