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ą.
- Kas yra init?
- Kas yra sistemingas?
- Kodėl init reikėjo pakeisti?
- 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:
- Upstart – inicijavimo pakeitimo demonas, įdiegtas Ubuntu GNU/Linux ir sukurtas pradėti procesą asinchroniškai.
- Epocha – inicijavimo pakeitimo demonas, sukurtas remiantis paprastumu ir paslaugų valdymu, skirtas pradėti vienos gijos procesą.
- Mudar – pradinio pakeitimo demonas, parašytas Python, įdiegtas Pardus GNU/Linux ir sukurtas pradėti procesą asinchroniškai.
- 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
- Švarus, pažangus ir efektyvus dizainas.
- Paprastesnis įkrovos procesas.
- Lygiagretus ir lygiagretus apdorojimas įkrovos metu.
- Geresnė API.
- Paprasta vieneto sintaksė.
- Galimybė pašalinti pasirenkamus komponentus.
- Mažas atminties plotas.
- Patobulinta priklausomybių išreiškimo technika.
- Inicijavimo instrukcija parašyta konfigūracijos faile, o ne apvalkalo scenarijuje.
- Pasinaudokite Unix domeno lizdu.
- Darbų planavimas naudojant sisteminius kalendoriaus laikmačius.
- Įvykių registravimas naudojant žurnalą.
- Sistemos įvykių registravimo pasirinkimas naudojant systemd ir syslog.
- Žurnalai saugomi dvejetainiame faile.
- Sistemos būsena gali būti išsaugota, kad vėliau būtų iškviesta.
- Stebėkite procesą naudodami branduolio c grupę, o ne PID.
- Vartotojų prisijungimą valdo systemd-login.
- Geresnė integracija su Gnome sąveikai užtikrinti.
Susistemintos kliūtys
- Viskas vienoje vietoje.
- 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.