Linux E X P R E S

Facebook

Lennart Poettering: Budeme se snažit vyrovnat se dalším IPC systémům

lennart.png

Lennart je v linuxovém světě poměrně známou osobností – vytvořil součásti používané napříč distribucemi, jako je PulseAudio (svobodný multiplatformní zvukový server) a Avahi (svobodná implementace zeroconf). Aktuálně pracuje na init systému systemd (systémový démon), který používají nebo v budoucnu budou používat všechny velké distribuce.


Mohl by ses představit a popsat svou práci?

Jmenuji se Lennart Poettering a jsem autorem AvahiPulseAudio a teď se spolu s dalšími kolegy soustředím na práci na systemd.

Na konferenci jsi mluvil o kdbusu, mohl bys jej popsat?

Na Linuxu je zajímavé, že nikdy neměl dostatečně dobrý IPC (inter-process communication – meziprocesová komunikace) systém. Třeba microkernel má dobře navrhnutý IPC systém a vše ostatním je postavené nad ním. S kdbusem se tohle snažím zlepšit a poskytnout vysokoúrovňový a přátelský IPC systém přímo z jádra, který bude dostupný už od bootu.

Kdbus je postaven na klasickém návrhu D-Bus, který byl testován a vylepšován už 10 let. D-Bus sice poskytuje dostatek funkcí, ale není tak rychlý a je zde mnoho možností pro zlepšení. Budeme se snažit vyrovnat se dalším IPC systémům, třeba Microsoft má IPC systém dobře propracovaný.

Během rozhodování o init systému v distribuci Debian došlo k poměrně ostrým diskuzím. Mohl bys prosím popsat výhody, které podle tebe systemd nabízí oproti ostatním init systémům?

Z technického hlediska jsem si jistý, že návrh Upstartu je špatný. Tento init systém totiž neposkytuje systém závislostí, ale jenom systém událostí. Programátor v tomto případě musí přesně specifikovat, co se má udát a kdy. Na druhou stranu, v systemd stačí napsat, co potřebuje co, a systemd rozhodne, kdy se daný kód provede.

Nejedná se ale jenom o rozdíl technický, ale i filozofický. Spolu s dalšími vývojáři jsme zanalyzovali proces bootování a dospěli jsme k závěru, že ke spuštění je potřeba i mnoho Bash skriptů. Hodně distribucí mělo toto implementováno po svém a každá implementace poskytovala jiné možnosti, někdy lepší a někdy zase horší. Celkově však situace nebyla tak dobrá, jak by mohla být v případě jednotného řešení.

A tak jsme se rozhodli, že tyto části zavádění přidáme přímo do systemd, takže dnes obsahuje části, o kterých si myslíme, že jsou užitečné pro postavení operačního systému nad systemd. Naproti tomu se Upstart soustředí jen na klasický init systém.

Vývojáři GNOME a KDE uvažují a hlubší integraci systemd do těchto prostředí, co od toho může očekávat uživatel?

Systém spustí prostředí, třeba GNOME, a čas zavedení se na moderních strojích může pohybovat okolo 4 sekund. Když se na bootování podíváme blíže, tak zjistíme, že nejdelší čas zabírá samotné prostředí, dokonce i rozdíly mezi jednotlivými desktopy jsou velké. To lze ale zredukovat tím, že mezi sebou budou sdílet více kódu.

Zrychlení ale není tím hlavním, proč by k této integraci mělo dojít. Jde tady třeba o funkce známé ze systému Android. Aplikace v popředí mohou mít vyšší prioritu, a ty v pozadí nižší, nebo je lze úplně uspat. Díky tomu, že systemd má přístup k těmto nízkoúrovňovým věcem, toho lze dosáhnout. Kromě této funkce lze přidat třeba sandbox a další věci.

Za pomoc při tvorbě reportáže a rozhovorů z DevConf.cz děkujeme společnosti Red Hat. Za poskytnutí fotografií děkujeme Tomášovi Bžatkovi.

RedHat.png

Diskuze (29) Nahoru