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.
- Mikä init on?
- Mikä on systemd?
- Miksi init piti vaihtaa?
- 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:
- Upstart – Ubuntu GNU/Linuxissa toteutettu käynnistyksen korvaava demoni, joka on suunniteltu käynnistämään prosessi asynkronisesti.
- Epoch – Yksinkertaisuuden ja palvelunhallinnan ympärille rakennettu käynnistyksen korvaava demoni, joka on suunniteltu käynnistämään yksisäikeinen prosessi.
- Mudar – Pythonilla kirjoitettu käynnistyksen korvaava daemon, joka on toteutettu Pardus GNU/Linuxilla ja suunniteltu käynnistymään asynkronisesti.
- 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
- Puhdas, edistyksellinen ja tehokas muotoilu.
- Yksinkertaisempi käynnistysprosessi.
- Samanaikainen ja rinnakkainen käsittely käynnistyksen yhteydessä.
- Parempi API.
- Yksinkertainen yksikön syntaksi.
- Mahdollisuus poistaa valinnaisia komponentteja.
- Vähäiset muistijalanjäljet.
- Parannettu tekniikka riippuvuuksien ilmaisemiseen.
- Alustuskäsky kirjoitettu asetustiedostoon, ei komentotulkkikomentosarjaan.
- Käytä Unix Domain Socketia.
- Työn ajoitus systemd kalenteriajastimien avulla.
- Tapahtumaloki päiväkirjaan.
- Järjestelmätapahtumien kirjausvaihtoehto systemd:llä sekä syslogilla.
- Lokit tallennetaan binääritiedostoon.
- systemd-tila voidaan säilyttää, jotta se voidaan kutsua myöhemmin.
- Seuraa prosessia käyttämällä ytimen cryhmää eikä PID:tä.
- Käyttäjien kirjautumista hallinnoi systemd-login.
- Parempi integraatio Gnomen kanssa yhteentoimivuuden takaamiseksi.
Pullonkaulat systemd
- Kaikki yhdessä paikassa.
- 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.