Pokud nežijete v hlubokých temných lesích, nebo hůře – nezajímá vás, jak Linux funguje, tak jste již museli slyšet o systemd, (relativně) novém init systému, jež postupně nahrazuje starší a zastaralé init systémy, a na který poslední dobou přechází většina hlavních linuxových distribucí.
Co je to init systém?
Když zapnete váš počítač s Linuxem, pravděpodobně se nejprve spustí kód „built-in„, načtený z BIOSu nebo UEFI, následuje bootloader, který podle své konfigurace načte linuxové jádro. Jádro pak načte ovladač a jeho první prací je spuštění procesu init, kterému je jako první přidělen PID (ID procesu) 1.
Z uživatelského pohledu to vypadá, že startuje jen síť, databáze atd.. Ve skutečnosti je to poměrně složitý skrytý proces. Služby se spouští, zastavují a restartují, často souběžně. Některé z nich se spouští pod jinými právy než ostatní, stavy jednotlivých služeb jsou logovány a nahlašovány a je prováděna celá řada dalších úkolů tak, aby byly všechny části vašeho systému schopny pracovat a komunikovat se svým uživatelem a okolním prostředím.
Samotná realizace má však daleko od jednotnosti a opravdu je to místo, kde není nic společné a správně definované.
Starý init systém
Init systém, dosud používaný většinou hlavních linuxových distribucí, byl System V init (zkráceně SysV init), který má svůj název odvozen od Unix System V (vyslovovat „System Five“), prvního komerčně dostupného UNIX systému. System V OS má specifický způsob, jak spouštět svůj init proces a SysV init k tomu zůstává v průběhu let loajální.
A že je to už hodně let. UNIX System V byl původně vydán v roce 1983, což znamená, že SysV init je už více než 30 let starý přístup ke spuštění zařízení s Linuxem.
Potřeba změny
Jak již bylo řečeno, SysV init je zastaralý a již dávno měl být nahrazen. Důvody pro změnu jsou zejména:
- SysV init používá k zahájení procesu init /sbin/init, ale init sám o sobě má velmi omezenou roli. Init však dělá něco více než jen start z /etc/init.d/rc – podle konfigurace načtené z /etc/inittab spouští různé skripty. To se ale děje postupně, jeden skript je spouštěn za druhým, takže celý proces je pomalý, protože každý skript musí čekat až je dokončen ten předchozí.
- SysV init nemá přístup k PID, aby jednotlivé procesy (nepřímo) spustil. Pouze čte PID a spojuje je s aktuálními procesy nepřímo a dost komplikovaným způsobem.
- Pro systémové administrátory, kteří se snaží změnit prostředí, v němž by se určitý proces zahájil, je to v SysV init docela obtížné. (Za účelem dosažení tohoto cíle musí upravovat init strcipt, který je odpovědný za spuštění daného procesu).
- Funkce společné pro více služeb SysV init neimplementuje, ale každý proces je musí provádět sám, „démonizuje“ je (používá systémové démony), což je komplikovaný a zdlouhavý proces . Místo toho, aby tyto kroky provedl jednou, SysV init vyžaduje, aby každý proces měl tuto funkci pro sebe.
- SysV init také ponechává určité funkce na externích programech a neví nic o službách, které tyto programy spustí.
Všechny výše uvedené a i mnoho dalších nedostatků nebo spíše zastaralých systémových řešení u SysV init přineslo nutnost vytvoření moderního init systému.
Příchod systemd
V minulosti proběhlo už mnoho pokusů vytvořit alternativní init systém, systemd je pouze jedním z nich. Ubuntu používá ke spuštění vlastní init systém zvaný upstart. Gentoo stále používá OpenRC. Další init systémy jsou initng, busybox-init, runit, Mudur a další.
Systemd se ale stal jasným vítězem, byl zařazen do většiny velkých distribucí. RHL a CentOS mu prošlapaly cestu, Fedora pak byla první distrem, kam byl systemd v roce 2011 oficiálně zařazen. Systemd se tedy postupně stává jednotným init systémem pro všechny distra i přes počáteční odpor Canonicalu (přesněji Marka Shuttlewortha).
Jaké jsou rozdíly v systemd?
- systemd si klade za cíl zajistit jednotný, centralizovaný způsob, jak projít init procesem od začátku do konce.
- Startuje a zastavuje procesy a služby, přičemž sleduje jejich závislosti. Dokonce může spustit proces jako reakci požadavku závislosti na jiném procesu.
- Kromě spouštění a zastavování procesů při bootování, lze také systemd spustit kdykoliv, kdy má systém reagovat na určité spouštěcí události tak, jako když je počítač zapnut.
- systemd také nevyžaduje „démonizaci“ jednotlivých procesů. Na rozdíl od SysV init, systemd zvládá už běžící služby, aniž by museli procházet dlouhým procesem použití systémových démonů.
- Na rozdíl od SysV init, systemd zná a sleduje všechny procesy, včetně PID a získávání informací o procesech, čímž je mnohem jednodušší pro systémové administrátory.
- Systemd podporuje „zásobníky“, jsou to v podstatě izolovaná prostředí, kde služby nepožadují virtuálních stroje. A to má velký potenciál pro větší bezpečnost a jednodušší projektování systému.
Samozřejmě to jsou jen některé z hlavních výhod. Celou diskusi o výhodách systemd si můžete ZDE.
Polemika
Samozřejmě, systemd nebyl zdaleka všemi přivítán. Ve skutečnosti se řada uživatelů mračí, nazývá jej monolitickým a těžkopádným, někteří jej dokonce obvinili, že jde „cestou Windows“, kde je snaha mít všechno centralizované. Argumentují tím, že to není „linuxová cesta“, a že systemd rozhodně není v souladu se standardy POSIX a pokud vezmeme systemd jako soubor nástrojů (není binární), je prostě „obrovský“.
Nicméně, systemd je jednoznačně krokem kupředu. Hodně kritiky padlo na hlavu i jeho původnímu autorovi a vývojáři Lennartu Poetteringovi. Rozhodně je to ale velmi potřebný pokrok a krok dál od starého init systému. Linus Torvalds, tvůrce Linuxu, se domnívá, že příliš dohadování s jeho „stvořitelem“ ničemu neprospívá.
Závěr
Poté, co ovládl všechny velké linuxové distribuce, systemd je prostě zde a zůstává. A i když někteří administrátoři říkají něco jiného, systemd je budoucností hlavního proudu Linuxu, ať už se to někomu líbí nebo ne. Při pohledu na jeho nesporné výhody, není nutně špatnou věcí.
Pro běžného uživatele to přináší rychlejší bootování a pravděpodobně i spolehlivější operační systémy. Zařazení systemd i do dalších distribucí je může učinit navzájem „kompatibilnější“. Uživatel tak může těžit i z větší aktuálnosti, dodané do svého počítače.
Takže v Linux Mint sa systemd objaví od verzie 18, že? Nakoľko v Ubuntu je od verzie 15.04 a Linux Mint 18 bude založený na Ubuntu 16.04 LTS. Dobre na to idem? 🙂
Asi prvý článok, kde je krásne vysvetlené, čo je systemd a init systémy a je to pochopiteľné aj pre laikov. Skladám poklonu autorovi 🙂
Stejně ale, jako dnes už trochu více poučený laik, nechápu to množství jedových slin co jsem za asi ten 1 a 1/2 roku nechtěně porůznu k systemd přečetl. Varování a konec linuxového světa, ehm, konec prý distribuce která na systemd prý přejde? Možná odpověď PROČ je nastíněná tady:
http://www.root.cz/clanky/co-se-systemd-a-linuxem/
ale pořád mně z toho vychází to, že pokrok (i jinde v souvisejících oblastech) zastavit nejde a s tím že jakási elementární standardizace (která se zase vývojem dál později upraví) je nutná … a osobní nevraživosti a neukojené ambice spojené s ješitností mě, jako toho kdo je uživatelem a kdy měřítkem je slušně funkční systém který nepadá, nezajímá.
Konečne pre nňa pochopiteľný článok o systemd. Vďaka.
Tak to vypadá že systemd není nástroj ďálbův židozednářů a nsa. Dobrý článek.
Problém systemd je v tom, že nezapadá do slobodného softvéru. Odjakživa sme boli zvyknutý spolupracovať a nepretláčať (diktovať) projekty hrubou silou za pomoci peňazí komerčnej firmy a to sa presne teraz stalo.
Lennart Poettering a Kay Sievers sú arogantný idioti a keď si pozriete ich vyhlásenia ku spolupracovníkom a komunite, tak budete vracať.
To že sa do opozície postavili najvýznamnejší (a charimatický) predstavitelia Linux Kernelu, Linus a Ted, hovorí o tom, že spolupráca s nimi je nemožná. Možná je len vďaka poplatným vývojárom ako Greg ktorý sa zmeny snaží pretlačiť do jadra.
Je to projekt ktorý odmieta spoluprácu a nieje možné ho naviazať už na existujúci enviroment, čiže jediná možnosť je používať ho ako celok, nieje možnosť nahradiť komponenty.
Jeho nasadenie skoro rozbilo najlepšiu (a jednu z najväčších) slobodnú komunitu akou je Debian. Po odchode veľkej časti vývojárov sa nakoniec dohodli, že systemd nebude vyžadovaný, ďakujem že vyhral zdravý rozum.
Možno je fajn preríznuť modelku, ale keď má vypatlanú hlavu, žiť s ňou nebudem.
Som už dosť starý a denno denne sa nejak snažím slobodnému softvéru pomôcť, ale takúto aroganciu vývojárov som ešte nezažil. Takže toť môj názor a je na vás ako rozhodnete, či je viac priateľstvo, alebo nablýskané pozlátené …
… častování do prý „arogantních idiotů“ a prý „zvracení“ z jakýchsi vyjádření kohosi atp. je přesně to, o čem jsem psal záměrně nekonkrétně nahoře 16.07. 2015 15:10 a což jako takové já odmítám protože s věcností a racionalitou to nemá společného vůbec nic.
Jen že to nesvědčí o duševní vyrovnanosti a slušnosti autora řádků, který toto veřejně napsal, a je to právě smutný příklad zjevného fanatismu až podivného sektářství, kvůli kterému se s vaničkou potom obvykle vylívá i to dítě a ke škodě věci jako celku … a netýká se to jen Linuxu ale s tímto podstatou jedem jsem se a k mému zklamání setkal za ty roky v mnoha „spolcích“ … co se nakonec úspěšně rozložily samy.
Protože nakonec každý(!) se tam stal tím Bohem povolaným jediným(!) nejvyšším géniem, jehož výtvorům by zeleně záviděl i Einstein.
Jen že to nesvědčí o duševní vyrovnanosti a slušnosti autora řádků
Robíš aj veštenie na telefón?
Ty sa určite určite o arogantných ľuďoch vyjaruješ pekne, že? Nevadí ti ani výsmech a dokozavanie jediného správneho názoru. Nebude ti vadiť ani urážanie celej komunity v ktorej roky žiješ. Pokiaľ je to tak, tiež by som ti vedel spraviť rozbor osobnosti, ale príde mi to zbytočné.
Rozhodující je výsledek a v určitém stupni nazrálého vývoje je (nikoli pro věčnost) standardizace nějaké důležité funkčnosti nutná.
Podivínští fanatici budou pořád vykřikovat své tj. kdo je a není ještě ten správný podivín resp. kdo si podivínem (tady třeba tím linuxovým a cha chááá 🙂 ) prý zaslouží být a kdo už ne: přičemž v pozadí obvykle bývá zklamání, že nikoli jejich geniální výtvor ale tím jakoby hegemonem (po nějakou dobu protože nic netrvá věčně) se stala funkčnost od někoho jiného.
A tak se také rády hledají vady na charakteru u takových šťastně vítězných autorů ale které, bráno racionálně, s jejich výtvorem jako takovým nemají tyto vady ba poklesky nic moc přece společného.
No a zvláště dojemné jsou jakoby argumenty, tedy pseudoargumenty, jestli si to někdo (nebo to dílko) a být tím jakoby vybraným šťastlivcem zaslouží nebo ne: no v historii a obecně asi najdeme hodně příkladů těch a toho, co si to asi prý nezasloužili a možno takto (morálně?) polemizovat třeba už u Woken a abychom nechodili daleko … ale nic s tím neuděláme.
A už vůbec s tím nic neudělá hlásaný purismus s bigotně prosazovaným požadavkem nekomerčnosti: ale ono, složité projekty, se bez peněz dělat nedají a tak jde vždy najít přijatelnou míru a způsob … aby výsledkem byla profesionálně udělaná práce protože to jediné je tady konečným měřítkem. To ostatní jsou jen otravující výkřiky a nepříjemný ruch.
Nemám čo dodať, chcel by som aby si si ty prežil život v tom svete úspešných.
Mne bude stačiť, keď nebudeš zasahovať do toho môjho, čo sa vám úspešným stále nejak nedá.
Tvá ani má (a zcela nevýznamná) osoba s předmětem tohoto článku, který je jaksi věcně technického rázu a jsem mu vděčný za to že snížil moji dosavadní neznalost, tak nijak přece nesouvisí!
A právě proto zde nemá co pohledávat tvé velmi pokleslé výrazivo o jiných osobách, natož o autorech a kteří ani nejsou účastníky zdejší diskuze.
Tudíž tě na to velmi rád a slušně upozorním i příště, to pokud jsi to stále ty nepochopil 🙂
Rád by som sa ospravedlnil za vyslovenie názoru, no zatiaľ som nepodstúpil lobotómiu. Ja viem že u nás väčšina volila Fica a je v tvojich očiach úspešný, no u mňa je zlodej a darebák, rovnako by som to vedel napasovať aj na vašu politiku.
Toto vlákno skončilo mať zmysel odkedy si mi stanovil diagnózu.
Tak sa mi zdá, po prečítaní týchto riadkov, že zraniteľnosť Linuxu, z pohľadu vírusov, už bude väčšia než tomu bolo doteraz. Systemd, tým že je robustný, dáva priestor záškodníkom nájsť si miestečko na a čakať na príležitosť zaútočiť. Verím tomu, že pokusy už boli, aj keď som o tom príliš moc nepátral. Na druhej strane, mňa ako koncového používateľa, ktorý je len obyčajný user, zaujímaju práve jeho prednosti a tými možnými komplikáciami okolo sa do istej miery nezaujímam. Takže vcelku to beriem ako pokrok a teda pozitívne. Článok je fakt napísaný excelentne. Palec hore.
problem je ze z pohladu bezpecnosti, priniesol systemd viac problemov ako pomoci.
sstemd mi nevadi na ntb s deepin ale vadi mi na serveri, tam nema co hladat. ale to ma zozeru mladi admini 🙂