Istorija už „init“ ir „systemd“: kodėl „init“ reikėjo pakeisti „systemd“ sistemoje „Linux“


Esu užsiprenumeravęs kelis adresatų sąrašus, susijusius su įvairiais „Linux“ platinimais ir programomis, kad galėčiau žinoti, kas kur vyksta. Kokios naujos klaidos? Kokie pleistrai išleisti? Ko tikimasi kitame leidime? ir daug kitų dalykų. Šiomis dienomis adresatų sąrašas yra gausiai užpildytas užrašu "Pasirinkite savo pusę Linux Divide", daugiausia Debian'o adresų sąraše kartu su keletu kitų.

Ką reiškia „Pasirinkite savo pusę Linux Divide“?

Kai kuriuose Linux platinimuose init demonas bus pakeistas demonu systemd, o daugelis jų jau jį įdiegė. Tai sukuria/sukurs didžiulį atotrūkį tarp tradicinių „Unix“/„Linux Guard“ ir „New Linux Guard“ - programuotojų ir sistemos administratorių.

Šiame straipsnyje aptarsime ir išspręsime visas užklausas po vieną.

  1. Kas yra init?
  2. Kas yra sistemingas?
  3. Kodėl init reikėjo pakeisti?
  4. Kokias funkcijas turės systemd.

Kas yra init?

Linux sistemoje init yra inicijavimo santrumpa. Init yra demono procesas, kuris prasideda iškart, kai tik kompiuteris paleidžiamas, ir tęsiasi tol, kol jis išjungiamas. Tiesą sakant, init yra pirmasis procesas, kuris prasideda, kai kompiuteris paleidžiamas, todėl jis yra visų kitų tiesiogiai ar netiesiogiai vykdomų procesų pirminis, todėl paprastai jam priskiriama „pid=1“.

Jei kažkokiu būdu nepavyko paleisti init demono, joks procesas nebus pradėtas ir sistema pasieks stadiją, pavadintą „Branduolinė panika“. init dažniausiai vadinamas System V init. „System V“ yra pirmoji komercinė UNIX operacinė sistema, sukurta ir „init“ naudojimas daugumoje šiandienos „Linux“ paskirstymo yra identiškas System V OS, išskyrus keletą išimčių, pvz., „Slackware“, naudojanti BSD stilių, ir „Gentoo“, naudojanti pasirinktinį init. .

Poreikis pakeisti init kažkuo tobulesniu buvo jaučiamas ilgą laiką ir karts nuo karto buvo kuriamos kelios alternatyvos, kai kurios iš jų tapo savuoju platinimo init pakaitalu, kai kurios iš jų yra:

  1. Upstart – inicijavimo pakeitimo demonas, įdiegtas Ubuntu GNU/Linux ir sukurtas pradėti procesą asinchroniškai.
  2. Epocha – inicijavimo pakeitimo demonas, sukurtas remiantis paprastumu ir paslaugų valdymu, skirtas pradėti vienos gijos procesą.
  3. Mudar – pradinio pakeitimo demonas, parašytas Python, įdiegtas Pardus GNU/Linux ir sukurtas pradėti procesą asinchroniškai.
  4. sisteminis – inicijavimo pakeitimo demonas, sukurtas pradėti procesą lygiagrečiai, įdiegtas daugelyje standartinių paskirstymų – Fedora, OpenSuSE, Arch, RHEL, CentOS ir kt.

Kas yra sistemingas?

systemd yra sistemos valdymo demonas, pavadintas UNIX sutartimi, kad demono pabaigoje būtų pridėta „d“. Taigi, kad juos būtų galima lengvai atpažinti. Iš pradžių ji buvo išleista pagal GNU bendrąją viešąją licenciją, tačiau dabar jos išleistos pagal GNU Lesser General Public License. Panašiai kaip init, systemd yra visų kitų procesų, tiesiogiai arba netiesiogiai, pirminis ir yra pirmasis procesas, kuris prasideda paleidžiant, todėl paprastai priskiriamas „pid=1“.

A sistema gali nurodyti visus paketus, paslaugų programas ir bibliotekas aplink demoną. Jis buvo sukurtas siekiant pašalinti init trūkumus. Tai yra foniniai procesai, skirti procesams paleisti lygiagrečiai, taip sumažinant įkrovos laiką ir skaičiavimo išlaidas. Jis turi daug kitų funkcijų, palyginti su init.

Kodėl reikėjo pakeisti init?

Init procesas pradedamas nuosekliai, t. y. viena užduotis pradedama tik sėkmingai paleidus paskutinę užduotį ir įkėlus ją į atmintį. Tai dažnai lėmė atidėtą ir ilgą įkrovos laiką. Tačiau „systemd“ buvo sukurta ne greičiui, o tam, kad viskas būtų atlikta tvarkingai, o tai savo ruožtu išvengtų visų JT būtinų vėlavimų.

Sistemos ypatybės
  1. Švarus, pažangus ir efektyvus dizainas.
  2. Paprastesnis įkrovos procesas.
  3. Lygiagretus ir lygiagretus apdorojimas įkrovos metu.
  4. Geresnė API.
  5. Paprasta vieneto sintaksė.
  6. Galimybė pašalinti pasirenkamus komponentus.
  7. Mažas atminties plotas.
  8. Patobulinta priklausomybių išreiškimo technika.
  9. Inicijavimo instrukcija parašyta konfigūracijos faile, o ne apvalkalo scenarijuje.
  10. Pasinaudokite Unix domeno lizdu.
  11. Darbų planavimas naudojant sisteminius kalendoriaus laikmačius.
  12. Įvykių registravimas naudojant žurnalą.
  13. Sistemos įvykių registravimo pasirinkimas naudojant systemd ir syslog.
  14. Žurnalai saugomi dvejetainiame faile.
  15. Sistemos būsena gali būti išsaugota, kad vėliau būtų iškviesta.
  16. Stebėkite procesą naudodami branduolio c grupę, o ne PID.
  17. Vartotojų prisijungimą valdo systemd-login.
  18. Geresnė integracija su Gnome sąveikai užtikrinti.
Susistemintos kliūtys
  1. Viskas vienoje vietoje.
  2. Ne POSIX standartas.

Sistemos ir Distro integracija

Linux Distribution

Integravimas

Fedora

Taip, pirmasis distribucija, kuri pritaikyta systemd

Arch

Taip

RedHat

Taip

CentOS

Taip

Debian

Taip, Debian 8 kodinis pavadinimas Jessie bus įdiegtas pagal numatytuosius nustatymus

Gentoo

Taip, bet jį reikia atsisiųsti, įdiegti ir konfigūruoti naudojant pasirinktinį init

OpenSUSE

Taip

Slack

Ne (nors iki šiol jis nebuvo pritaikytas „slackware“, Patricas Volkerdingas nenurodė, ar jis bus priimtas, ar ne)

Ubuntu

Taip, reikia įdiegti ir sukonfigūruoti naudojant „Upstream“.

Ginčas

Linusas Torvaldsas, vyriausiasis Linux branduolio architektas, mano, kad pagrindinio sistemos kūrėjo požiūris į vartotojus ir klaidų ataskaitos atrodo netinkamos. Taip pat buvo pranešta, kad sisteminė filosofija yra keista ir svetimas būdas valdyti sistemos procesus. Tą patį retkarčiais įrašė Patricas Volkerdingas ir kiti žymūs „Linux“ vartotojai ir kūrėjai, taip pat internetiniame forume.

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)

Išvada

Viskas, kas veikia kaip pid=1, neturi lūžti, neturi būti netvarkinga ir turi būti efektyviai ir efektyviai kontroliuojama vartotojų. Daugelis vartotojų mano, kad init pakeitimas systemd yra ne kas kita, kaip dviračio išradimas kiekvieną kartą kaip šalutinis Linux poveikis. Tačiau tai yra įvairi Linux prigimtis. Taip yra todėl, kad Linux yra toks galingas. Pokyčiai yra gerai ir turime tai įvertinti, jei tai yra dėl rimtos priežasties.

Tai kol kas viskas. Aš vėl būsiu čia su kitu įdomiu straipsniu, kurį jums patiks skaityti. Iki tol sekite naujienas ir prisijunkite prie Tecmint. Nepamirškite pateikti mums savo vertingų atsiliepimų toliau pateiktose pastabose.