Tarina "init" ja "systemd" takana: Miksi "init" piti korvata sanalla "systemd" Linuxissa


Olen tilannut useita postituslistoja, jotka liittyvät erilaisiin Linux-jakeluihin ja -sovelluksiin, jotta pysyn ajan tasalla siitä, mitä missäkin tapahtuu. Mitkä ovat uudet bugit? Mitä korjaustiedostoja on julkaistu? Mitä seuraavalta julkaisulta odotetaan? ja paljon muuta tavaraa. Nykyään postituslistalla on runsaasti "Choose your side on Linux Divide" -tekstiä, pääasiassa Debianin postituslistalla ja muutamien muiden kanssa.

Mistä "Valitse puolesi Linux Dividessa" on kyse?

init-daemon korvataan daemonilla systemd joissakin Linux-jakeluissa, vaikka monet niistä ovat jo ottaneet sen käyttöön. Tämä on/tulee luomaan valtavan kuilun perinteisen Unix/Linux Guardin ja uuden Linux Guardin – ohjelmoijien ja järjestelmänvalvojien – välille.

Tässä artikkelissa käsittelemme ja ratkaisemme seuraavat kaikki kyselyt yksitellen.

  1. Mikä init on?
  2. Mikä on systemd?
  3. Miksi init piti vaihtaa?
  4. Mitä ominaisuuksia systemd omistaa.

Mitä siinä on?

Linuxissa init on lyhenne sanoista Initialization. Init on demoniprosessi, joka käynnistyy heti, kun tietokone käynnistyy ja jatkaa toimintaansa, kunnes se sammutetaan. Itse asiassa init on ensimmäinen prosessi, joka käynnistyy, kun tietokone käynnistetään, mikä tekee siitä suoraan tai epäsuorasti kaikkien muiden käynnissä olevien prosessien ylätason, ja siksi sille tyypillisesti määritetään "pid=1".

Jos init-daemon ei jostain syystä käynnistynyt, prosessia ei käynnistetä ja järjestelmä saavuttaa vaiheen nimeltä "Kernel Panic". initistä käytetään yleisimmin nimitystä System V init. System V on ensimmäinen kaupallinen UNIX-käyttöjärjestelmä, joka on suunniteltu ja init:n käyttö suurimmassa osassa tämän päivän Linux-jakelua on identtinen System V OS:n kanssa muutamaa poikkeusta lukuun ottamatta, kuten BSD-tyyliä käyttävä Slackware ja mukautettua initiä käyttävä Gentoo. .

Tarve korvata init jollakin täydellisemmällä on tuntunut jo pitkään ja useita vaihtoehtoja kehitettiin aika ajoin, joista osa tuli jakelun alkuperäisiksi init-korvauksiksi, joista osa on:

  1. Upstart – Ubuntu GNU/Linuxissa toteutettu käynnistyksen korvaava demoni, joka on suunniteltu käynnistämään prosessi asynkronisesti.
  2. Epoch – Yksinkertaisuuden ja palvelunhallinnan ympärille rakennettu käynnistyksen korvaava demoni, joka on suunniteltu käynnistämään yksisäikeinen prosessi.
  3. Mudar – Pythonilla kirjoitettu käynnistyksen korvaava daemon, joka on toteutettu Pardus GNU/Linuxilla ja suunniteltu käynnistymään asynkronisesti.
  4. systemd – Init-korvausdemoni, joka on suunniteltu käynnistämään prosessi rinnakkain, toteutettu useissa vakiojakeluissa – Fedora, OpenSuSE, Arch, RHEL, CentOS jne.

Mikä on systemd?

systemd on järjestelmänhallinnan daemon, joka on nimetty UNIX-käytännöllä lisäämällä 'd' demonin loppuun. Joten ne voidaan helposti tunnistaa. Aluksi se julkaistiin GNU General Public License -lisenssillä, mutta nyt julkaisut tehdään GNU Lesser General Public License -lisenssillä. Kuten init, systemd on kaikkien muiden prosessien vanhempi suoraan tai epäsuorasti, ja se on ensimmäinen prosessi, joka alkaa käynnistyksen yhteydessä, joten sille on yleensä annettu "pid=1".

systemd voi viitata kaikkiin daemonin ympärillä oleviin paketeihin, apuohjelmiin ja kirjastoihin. Se oli suunniteltu voittamaan initin puutteet. Se itsessään on taustaprosessi, joka on suunniteltu käynnistämään prosessit rinnakkain, mikä vähentää käynnistysaikaa ja laskennallisia lisäkustannuksia. Siinä on paljon muita ominaisuuksia verrattuna initiin.

Miksi init piti vaihtaa?

Init-prosessi käynnistyy sarjassa eli yksi tehtävä käynnistyy vasta sen jälkeen, kun viimeinen tehtävän käynnistys onnistui ja se on ladattu muistiin. Tämä johti usein viivästyneeseen ja pitkiin käynnistysaikaan. Systemd ei kuitenkaan ollut suunniteltu nopeuteen, vaan asioiden hoitamiseen siististi, mikä vuorostaan välttää kaikki YK:n välttämättömät viivytykset.

Systemd:n ominaisuudet
  1. Puhdas, edistyksellinen ja tehokas muotoilu.
  2. Yksinkertaisempi käynnistysprosessi.
  3. Samanaikainen ja rinnakkainen käsittely käynnistyksen yhteydessä.
  4. Parempi API.
  5. Yksinkertainen yksikön syntaksi.
  6. Mahdollisuus poistaa valinnaisia komponentteja.
  7. Vähäiset muistijalanjäljet.
  8. Parannettu tekniikka riippuvuuksien ilmaisemiseen.
  9. Alustuskäsky kirjoitettu asetustiedostoon, ei komentotulkkikomentosarjaan.
  10. Käytä Unix Domain Socketia.
  11. Työn ajoitus systemd kalenteriajastimien avulla.
  12. Tapahtumaloki päiväkirjaan.
  13. Järjestelmätapahtumien kirjausvaihtoehto systemd:llä sekä syslogilla.
  14. Lokit tallennetaan binääritiedostoon.
  15. systemd-tila voidaan säilyttää, jotta se voidaan kutsua myöhemmin.
  16. Seuraa prosessia käyttämällä ytimen cryhmää eikä PID:tä.
  17. Käyttäjien kirjautumista hallinnoi systemd-login.
  18. Parempi integraatio Gnomen kanssa yhteentoimivuuden takaamiseksi.
Pullonkaulat systemd
  1. Kaikki yhdessä paikassa.
  2. Ei POSIX-standardi.

Systemd- ja Distro-integraatio

Linux Distribution

Integraatio

Fedora

Kyllä, ensimmäinen distro, joka ottaa käyttöön systemd

Arch

Joo

RedHat

Joo

CentOS

Joo

Debian

Kyllä, Debian 8 koodinimi Jessie on systemd oletuksena

Gentoo

Kyllä, mutta se on ladattava, asennettava ja määritettävä mukautetulla initillä

OpenSUSE

Joo

Slack

Ei (Vaikka sitä ei ole toistaiseksi otettu käyttöön slackwaressa, Patric Volkerding ei ole osoittanut mitään viitteitä siitä, otetaanko se käyttöön vai ei)

Ubuntu

Kyllä, se on asennettava ja määritettävä Upstreamin kanssa.

Kiista

Linus Torvalds, Linux-ytimen pääarkkitehti, kokee systemd:n keskeisen kehittäjän asenteen käyttäjiä kohtaan ja virheraportit eivät vaikuta hyvältä. Lisäksi kerrottiin, että systemd-filosofia on outo ja vieras tapa hallita järjestelmäprosesseja. Sama on tallennettu Patric Volkerdingiltä ja muilta merkittäviltä Linux-käyttäjiltä ja -kehittäjiltä sekä online-foorumilta ajoittain.

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)

Johtopäätös

Mikään, joka toimii pid=1-muodossa, ei saa rikkoutua, se ei saa olla sekaisin ja käyttäjien on valvottava sitä tehokkaasti ja tehokkaasti. Monet käyttäjät uskovat, että initin korvaaminen systemd:llä ei ole muuta kuin pyörän keksimistä uudelleen joka kerta Linuxin sivuvaikutuksena. Mutta tämä on Linuxin monimuotoisuus. Tämä johtuu siitä, että Linux on niin tehokas. Muutos on hyvä asia, ja meidän on arvostettava sitä, jos se on hyvästä syystä.

Tässä kaikki tältä erää. Tulen tänne jälleen toisen mielenkiintoisen artikkelin kanssa, jota ihmiset rakastavat lukea. Pysy kuulolla siihen asti ja ole yhteydessä Tecmintiin. Älä unohda antaa meille arvokasta palautetta alla olevissa kommenteissa.