Mohl by ses představit a popsat svou práci?
Jmenuji se Lennart Poettering a jsem autorem Avahi a PulseAudio 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.