Od Linux kernela do systemd

poruka: 2
|
čitano: 516
|
moderatori: pirat, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
3 tjedna
offline
systemd - kako sustav zaista pokreće Linux

Od Linux kernela do systemd targeta: kako sustav zaista pokreće Linux

 

 

Linux kernel u izvršnoj formi sastoji se od velikog broja datoteka.

Dvije grupe datoteka su ključne za njegovo funkcioniranje:

Glavna kernel datoteka – sadrži sve osnovne dijelove kernela, osim loadable modula.

Bootloader učitava ovu datoteku pri pokretanju sustava i od tog trenutka kernel preuzima potpunu kontrolu nad radom sustava.

Kernel datoteka se obično nalazi u direktoriju /boot.

Kernel moduli – to su dodatne funkcionalnosti kernela koje nisu dio glavne kernel datoteke.

Obično se pohranjuju u /lib/modules, s poddirektorijima za različite verzije kernela instalirane na sustavu.

Module se učitava i uklanja po potrebi.

Kompilacija i konfiguracija kernela
Prvi korak u izradi novog kernela je precizno identificiranje hardvera.

Da bismo znali koji su driveri i moduli potrebni, moramo jasno odrediti koje hardverske komponente sustav ima.

To možemo provjeriti kroz:

dokumentaciju hardvera

postojeće konfiguracijske datoteke kernela

vizualni pregled komponenti

specijalizirane alate poput lshw

Praktično pravilo prilikom konfiguracije kernela je da, ako nismo sigurni treba li neka opcija, bolje je uključiti je.

Suvišne funkcionalnosti malo usporavaju kompilaciju i zauzimaju prostor na disku, dok neiskorišteni moduli ne troše memoriju niti CPU tijekom rada sustava.

Bolje je napraviti malo “deblji” kernel nego riskirati da sustav uopće ne radi.

 

Kada znamo hardver i svrhu kernela (desktop, server, ugrađeni sustav), možemo početi s konfiguracijom.

U usporedbi s običnim softverom, kernel nudi puno više opcija.

Komandom make help unutar izvornog direktorija kernela dobivamo popis svih build targeta.

Opcije se mijenjaju s novim verzijama kernela.

Nakon konfiguracije, kernel se kompajlira i instalira.

Instalacija uključuje kopiranje kernel datoteke u /boot, instalaciju modula, generiranje inicijalnog RAM filesystema, ažuriranje bootloadera (npr. GRUB) i na kraju restart sustava.

 

Pokretanje Linuxa i systemd


Danas većina Linux sustava koristi systemd kao init sustav koji upravlja korisničkim prostorom i servisima.

Naziv je u skladu s Unix konvencijom dodavanja slova “d” na daemon.

Systemd je kompatibilan sa starijim SysV init i Upstart skriptama i postao je standard kod većine distribucija.

Osnovni koncept u systemdu je “unit” ili jedinica.

Jedinice predstavljaju resurse sustava i servise, poput servisa, soketa, uređaja, mountova i targeta.

 

Systemd podržava napredne mehanizme kao što su aktivacija putem soketa, D-Bus aktivacija, aktivacija po uređajima ili putanjama, snapshot sustava, upravljanje mountovima i automountima, paralelno pokretanje servisa, upravljanje ovisnostima kroz transakcije i kompatibilnost sa starijim SysV init skriptama.

Iako systemd zadržava kompatibilnost sa starijim init sustavima, postoje značajne razlike u arhitekturi.

Najvažnija je zamjena klasičnih runlevela s targetima.

 

Od runlevela do systemd targeta


Klasični Linux sustavi koristili su runlevele od 0 do 6.

Svaki runlevel predstavljao je unaprijed definirano stanje sustava s određenim servisima.

Systemd je to zamijenio target jedinicama čija imena završavaju s .target.

Targeti grupiraju druge jedinice prema ovisnostima.

 

Radi kompatibilnosti, systemd još uvijek ima alias-e za runlevele koji mapiraju na moderne targete.

To se može provjeriti s systemctl 

list-unit-files | grep runlevel.

 

Ti aliasi postoje samo zbog starijih skripti; unutarnje, systemd radi isključivo s target jedinicama.

Zbog toga se korištenje runlevel komande ne preporučuje na sustavima s systemdom.

Bolje je koristiti systemctl list-units --type=target za pregled aktivnih targeta i stanja sustava.

 

Zadani target i prilagodba sustava


Zadani target u koji sustav pokreće možemo provjeriti komandom systemctl get-default.

Na grafičkim radnim stanicama to je obično graphical.target, koji ovisi o multi-user.target, sukobljava se s rescue modom i paralelno pokreće display manager.

Ovisnosti između targeta određuju sve servise potrebne za stabilan grafički rad.

Prilagodba sustava znači promijeniti koji target je zadani prilikom pokretanja.

Npr. sudo systemctl set-default multi-user.target se često koristi na serverima da se isključi grafičko sučelje i smanji potrošnja resursa.

 

Praktične razlike između SysV init i systemd


Iako systemd podržava SysV init skripte, postoje važne razlike:

 

systemd upravlja servisima isključivo preko systemctl

Samo servisi pokrenuti od systemda se mogu nadzirati i kontrolirati

Pri gašenju sustava se zaustavljaju samo aktivni systemd servisi

Standardni input za servise se preusmjerava na /dev/null

Servisi ne nasljeđuju varijable korisničkog okruženja

Svaki servis ima definirano vrijeme pokretanja

Ovisnosti starih init skripti tumače se iz LSB headera

Ove razlike čine systemd predvidljivijim, sigurnijim i lakšim za debug, ali zahtijevaju promjenu navika administratora.

 

Targeti kao moderni runleveli


Targeti su hijerarhijski i mogu ovisiti jedni o drugima.

Definiraju logička stanja sustava, a ne rigidne numeričke razine.

 

Primjeri:

multi-user.target – tekstualni multi-user sustav

graphical.target – dodaje grafičko sučelje

rescue.target – minimalni recovery mod

emergency.target – najniža razina za troubleshooting

Ova hijerarhija čini konfiguraciju fleksibilnijom, ali i apstraktnijom od starog sustava runlevela.

 

Zaključak


Linux startup se znatno promijenio – od jednostavnih runlevela do sofisticiranog target-based modela systemda.

Razumijevanje odnosa između kernela i njegovih modula, kompilacije i instalacije kernela, systemd jedinica i targeta te legacy runlevela i modernih targeta ključno je za svakog ozbiljnog Linux administratora.

Systemd može djelovati komplicirano u početku, ali nudi pouzdanost, brže pokretanje sustava, bolje upravljanje ovisnostima i snažnu kontrolu u runtime-u.

Njegovo savladavanje više nije opcija, već nužna vještina za moderne Linux sustave.

typing... scrolling...
Poruka je uređivana zadnji put uto 6.1.2026 10:39 (dejvid2).
Moj PC  
0 0 hvala 0
13 godina
offline
Od Linux kernela do systemd

systemd je inicijalno izašao 2010. godine...

Bokte mazo, ja sam tada još bio u srednjoj školi, a sad sam matori prdonja. 

0100011001000001010100000010000000110100001000000100110001001001010001100100010100100001
Moj PC  
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice