Stāsts aiz init un systemd: Kāpēc Linux sistēmā Linux bija jāaizstāj ar systemd


Es esmu abonējis vairākus adresātu sarakstus, kas saistīti ar dažādiem Linux izplatījumiem un lietojumprogrammām, lai tikai būtu informēts par to, kas kur notiek. Kādas ir jaunās kļūdas? Kādi ir izlaistie ielāpi? Kas gaidāms nākamajā izlaidumā? un daudz citu produktu. Šajās dienās adresātu saraksts ir ļoti apdzīvots ar “Izvēlies savu pusi Linux Divide”, galvenokārt Debian adresātu sarakstā kopā ar dažiem citiem.

Dažos Linux izplatījumos init dēmons tiks aizstāts ar dēmonu systemd , kamēr daudzi no tiem to jau ir ieviesuši. Tas rada/radīs milzīgu plaisu starp tradicionālo Unix/Linux Guard un New Linux Guard - programmētājiem un sistēmas administratoriem.

Šajā rakstā mēs apspriedīsim un atrisināsim visus jautājumus pēc katra.

  1. Kas ir init?
  2. Kas ir systemd?
  3. Kāpēc init bija jāaizstāj?
  4. Kādas sistēmas sistēmai piederošās funkcijas.

Linux valodā init ir saīsinājums no inicializācijas. init ir dēmona process, kas sākas, tiklīdz dators sāk darboties, un turpina darboties, līdz tas tiek izslēgts. Faktiski init ir pirmais process, kas sākas, kad dators tiek palaists, padarot to par tiešu vai netiešu visu citu palaisto procesu vecāku, un tāpēc tam parasti tiek piešķirts “ pid = 1 ”.

Ja kaut kādā veidā init dēmonu nevarēja sākt, process netiks sākts un sistēma sasniegs stadiju ar nosaukumu Kernel Panic . init visbiežāk tiek dēvēts par System V init . Sistēma V ir pirmā komerciālā UNIX operētājsistēma, kas ir izstrādāta, un lielākajā daļā Linux izplatīšanas sistēmu šodien izmantotie iniciāļi ir identiski Sistēmai V OS ar dažiem izņēmumiem, piemēram, Slackware, izmantojot BSD stilu, un Gentoo, izmantojot pielāgotu init .

Nepieciešamība aizstāt init ar kaut ko pilnīgāku tika jūtama jau ilgu laiku, un laiku pa laikam tika izstrādātas vairākas alternatīvas, no kurām dažas kļuva par izplatīšanas vietējo init aizstājēju, no kurām dažas ir:

  1. Upstart - init aizstājējdēmons, kas ieviests Ubuntu GNU/Linux un paredzēts procesa asinhronai sākšanai.
  2. Laikmets - vienkāršības un pakalpojumu pārvaldības pamatā esošs init aizstājējdēmons, kas paredzēts, lai sāktu procesu ar vienu pavedienu.
  3. Mudar - Python rakstīts init aizstājējdēmons, kas ieviests Pardus GNU/Linux un paredzēts procesa asinhronai sākšanai.
  4. systemd - init aizstājējdēmons, kas paredzēts procesa paralēlai sākšanai, tiek ieviests vairākos standarta izplatīšanas veidos - Fedora, OpenSuSE, Arch, RHEL, CentOS utt.

systemd ir sistēmas pārvaldības dēmons, kas nosaukts ar UNIX konvenciju, lai dēmona beigās pievienotu ‘ d ’. Lai tos varētu viegli atpazīt. Sākotnēji tas tika izlaists ar GNU General Public License, bet tagad izlaidumi tiek veikti ar GNU Lesser General Public License. Līdzīgi kā init, systemd ir tieši vai netieši visu citu procesu vecāks, un tas ir pirmais process, kas sākas ar sāknēšanu, tāpēc parasti tam tiek piešķirts “ pid = 1 ”.

Sistēma var atsaukties uz visām paketēm, utilītprogrammām un bibliotēkām ap dēmonu. Tas tika izstrādāts, lai pārvarētu init trūkumus. Tas pats ir fona process, kas paredzēts procesu paralēlai uzsākšanai, tādējādi samazinot sāknēšanas laiku un skaitļošanas izmaksas. Tam ir daudz citu iespēju, salīdzinot ar init.

Inicializācijas process sākas sērijveidā, t.i., viens uzdevums sākas tikai pēc tam, kad pēdējā uzdevuma startēšana bija veiksmīga un tā tika ielādēta atmiņā. Tas bieži noveda pie aizkavēta un ilga sāknēšanas laika. Tomēr systemd nebija paredzēts ātrumam, bet gan tam, lai kārtīgi paveiktu lietas, kas savukārt novērš ANO nepieciešamo kavēšanos.

  1. Tīrs, mūsdienīgs un efektīvs dizains.
  2. Vienkāršāks sāknēšanas process.
  3. Vienlaicīga un paralēla apstrāde sāknēšanas laikā.
  4. Labāka API.
  5. Vienkārša vienības sintakse.
  6. Spēja noņemt izvēles komponentus.
  7. Zemas atmiņas pēdas.
  8. Uzlabota atkarību izteikšanas tehnika.
  9. Inicializācijas instrukcija, kas rakstīta konfigurācijas failā, nevis čaulas skriptā.
  10. Izmantojiet Unix domēna ligzdu.
  11. Darba plānošana, izmantojot sistēmas kalendāra taimerus.
  12. Notikumu reģistrēšana, izmantojot žurnālu.
  13. Sistēmas notikumu reģistrēšanas izvēle ar systemd, kā arī syslog.
  14. Žurnāli tiek glabāti binārā failā.
  15. systemd statusu var saglabāt, lai to varētu izsaukt vēlāk.
  16. Izsekojiet procesu, izmantojot kodola cgroup, nevis PID.
  17. Lietotāju pieteikšanos pārvalda systemd-logind.
  18. Labāka integrācija ar Gnome, lai nodrošinātu savietojamību.

  1. Viss vienā vietā.
  2. Nav POSIX standarts.

Linux kodola galvenais arhitekts Linuss Torvalds uzskata, ka galvenā sistēmas izstrādātāja attieksme pret lietotājiem un kļūdu ziņojumi nešķiet labi. Tika arī ziņots, ka sistēmas filozofija ir dīvaina un svešs veids, kā kontrolēt sistēmas procesus. Tas pats ir ierakstīts no Patrika Volkerdinga un citiem ievērojamiem Linux lietotājiem un izstrādātājiem, kā arī tiešsaistes forumos, laiku pa laikam.

Viss, kas darbojas kā pid = 1, nedrīkst izlauzties, nedrīkst būt nekārtīgs, un lietotājiem tas ir jākontrolē efektīvi. Daudzi lietotāji uzskata, ka initd nomaiņa systemd ir nekas cits kā riteņa izgudrošana katru reizi kā Linux blakusparādība. Bet tas ir daudzveidīgais Linux raksturs. Tas ir tāpēc, ka Linux ir tik daudz spēcīgs. Pārmaiņas ir labas, un mums tās ir jānovērtē, ja tas notiek pamatotu iemeslu dēļ.

Tas pagaidām ir viss. Es atkal būšu šeit ar citu interesantu rakstu, kuru jūs, cilvēki, labprāt lasīsit. Līdz tam sekojiet līdzi un sazinieties ar Tecmint. Neaizmirstiet zemāk esošajos komentāros sniegt mums vērtīgas atsauksmes.