LAKI PINGVINI<>
042013<><>

systemd

Napredni naslednik inita

Svako ko se bavio Linuxom „ispod haube” sigurno je makar čuo za init. Radi se o prvom procesu (sa process ID-om 1) koji Linux kernel pokreće po obavljaju svih sistemskih inicijalizacija i priprema. Init dalje služi kao majka i otac svih budućih procesa u userspaceu. Svaki sledeći proces koji se pokrene na sistemu, bilo da se startuje automatski preko startup skripti ili ručno, zapravo nastaje tako što init prvo sam sebe forkuje (duplira u memoriji), a potom forkovana kopija učitava kontekst novog procesa koristeći sistemski poziv exec. Takođe, init preuzima roditeljstvo nad svim eventualnim procesima-siročićima, tj. onima koji su nastali od drugih procesa, a koji su u međuvremenu krahirali ili završili sa radom. Očigledno je da se radi o jednoj vrlo bitnoj komponenti operativnih sistema zasnovanih na Linux kernelu. Često korišćena varijanta inita na Linuxu poznata je pod nazivom sysvinit, jer je kompatibilna sa konceptima korišćenim na operativnom sistemu System V, istorijski značajnoj verziji Unixa.

Ipak, klasični sysvinit poprilično je zastareo po mnogim svojim osobinama, što je naročito došlo do izražaja širom upotrebom višejezgarnih i višeprocesorskih računara. Systemd nije jedini projekat nastao sa ciljem da se init redizajnira u skladu sa novim konceptima koji su tokom godina razvijeni, ali je verovatno najnapredniji, i to zahvaljujući velikom broju hrabrih koraka na koje su se autori odlučili.

Što se tiče karakteristika primetnih krajnjem korisniku, systemd pre svega potencira agresivnu paralelizaciju praktično svega onoga što se može paralelizovati, što kao prateći efekat ima primetno brže podizanje Linux distribucija u poređenju sa onima zasnovanim na sysvinitu. Neko bi mogao reći da ovo nije od tolikog značaja u serverskom okruženju, pošto se tamo apsolutno izbegava isključivanje i restartovanje sistema, ali s obzirom na to da se administratori trude da „downtime” drže na minimumu, brže butovanje znači i manji „downtime”.

Dalje, mana sysvinita jeste to što se previše oslanja na sistemski shell. Podsetimo, sysvinit zna koje programe treba startovati pri prelasku i izlasku iz određenih runlevela tako što se linkovi za programe (odnosno shell skripte, u načešćem broju slučajeva) kreiraju u folderima /etc/init.d/rc*. S obzirom na to da je bash prilično kompleksan shell, što povlači i nešto veću potrošnju sistemskih resursa, njegova uloga u brzini podizanja operativnog sistema u takvom scenariju postaje vrlo značajna. Zato nije retkost to što su autori distribucija prelazili na nešto lakše i brže shellove kako bi skratili proceduru. Recimo, Ubuntu koristi lagani dash kao podrazumevani shell još od verzije 6.10, što je, prema rečima autora, bio glavni razlog za primetno kraće vreme od uključivanja računara do prikazivanja grafičkog desktopa u poređenju sa drugim Linux teškašima iz tog vremena. Systemd kompletno rešava problem zavisnosti od sistemskog shella tako što podatke o pokretanju i zaustavljanju servisa čuva u odgovarajućim konfiguracionim fajlovima, iz kojih čita kada pokreće servise u sopstvenoj režiji, umesto da se oslanja na shell i njegove skripte.

Osim razlika vidljivih golim okom, najveći deo noviteta koje systemd donosi nalazi se daleko od očiju korisnika. Tu je znatno drugačiji pristup međuprocesnoj komunikaciji u odnosu na sysvinit, kao i praćenju aktivnih procesa (umesto process ID-ova, koriste se procesne grupe) i drugim administratorskim poslovima, što čak ide dotle da su klasični brojčani runleveli proglašeni legacy (zastarelim) konceptom i zadržani su isključivo zbog očuvanja kompatibilnosti sa postojećim softverom. Iako je systemd mlad projekat, dobro je primljen u Linux okruženju, čemu u prilog govori i podatak da su neke bitne Linux distribucije već prešle na systemd (Fedora od verzije 15, openSUSE od verzije 12.1, Chakra i Arch od oktobra prošle godine). Štaviše, systemd zavisi samo od glibca, libcapa i DBusa, tako da se može koristiti i u okruženjima vrlo ograničenih resursa kao što su embedded računarski sistemi, uprkos naizgled velikoj kompleksnosti, koja se zapravo svodi „samo” na drastične razlike u internom dizajnu.

Ako administrirate Linux sistem, jasno je da će vas pre ili kasnije sačekati prelazak na systemd, pa nije zgoreg već sada započeti upoznavanje, pošto ćete teško uspeti da se preko noći adaptirate na znatno drugačiju izvedbu mnogih mehanizama koje smo tokom godina uzimali zdravo za gotovo. Kao početnu tačku preporučujemo stranicu organizacije Freedesktop.org, pošto je projekat systemd pod njihovim pokroviteljstvom. Na tom mestu možete naći zvanična uputstva i odgovore na često postavljana pitanja, što nam se čini kao vrlo dobra polazna tačka za upoznavanje sa novim sistemom za administriranje procesa i servisa na Linuxu.

Ivan TODOROVIĆ

 
systemd
Šta mislite o ovom tekstu?
qBittorrent 3.0.8
NixNote 1.4
Razvoj Linux kernela

Adresa:
freedesktop .org /wiki /Software /systemd
Home / Novi brojArhiva • Opšte temeInternetTest driveTest runPD kutakCeDetekaWWW vodič • Svet igara
Svet kompjutera Copyright © 1984-2018. Politika a.d. • RedakcijaKontaktSaradnjaOglasiPretplata • Help • English
SKWeb 3.22
Opšte teme
Internet
Test Drive
Test Run
PD kutak
CeDeteka
WWW vodič
Svet igara



Naslovna stranaPrethodni brojeviOpšte informacijeKontaktOglašavanjePomoćInfo in English

Svet kompjutera