Leonard Pottering, nie dość że zepsuł dźwięk pod linuksem, to teraz bierze się za zepsucie procesu startowania systemu (i wielu innych rzeczy), w formie nowej usługi zarządzającej startem systemu: systemd.
Celem projektu, jest stworzenie usługi która pozwoli jeszcze bardziej przyśpieszyć start systemu. Bierze kilka idei z Upstarta (którego jednak Leonard określa, jako z gruntu źle zaprojektowanego), dodaje kilka innych, wziętych między innymi a launchd (usługi startowej w MacOS X) i jeszcze parę innych pomysłów.
Co jest takiego ciekawego w systemd? Odpowiedź krótka: poza opisanymi wyżej cechami, systemd, podczas uruchamiania systemu (oraz później) działa podobnie jak inetd, lecz sposób działania inetd, rozciąga na startowanie usług systemowych.
Odpowiedź dłuższa: największą bolączką startu systemu (i czasu jaki to zajmuje) jest fakt że startowanie jednych usług czeka na inne. Wszystko (prawie) czeka na syslogd, jedni czekają na avachi, inni na cups, itd. Oczekiwanie jest to realizowane poprzez sprawdzania istnienia konretnych socketów (np.: /var/run/cups/cups.sock). To co robi systemd to tworzenie tych socketów przed wystartowaniem usług, a później, w momencie próby pierwszego skorzystania z nich - wystartowanie odpowiedniej usługi i przekazanie jej zadania (to samo można zrobić przez DBus, i na to systemd jest także przygotowany).
Co to daje? Po pierwsze: nie musimy opisywać zależności pomiędzy usługami (co jest bolączką innych usług startowych np. Upstarta). Zależności niejako 'wykluwają' nam się w trakcie. Po drugie: podczas startu systemu możemy uruchamiać wszystko 'równocześnie' - dzięki czemu zmniejszymy wzajemne oczekiwanie na siebie różnych usług a przez to lepiej wysycimy IO.
Oprócz tego, systemd robi wszystko to, co potrafi Upstart, oraz tradycyjny sysvinit. Dodatkowo w planach jest też zarządzani sesją (czyli coś co robi dziś gnome-session lub kde-session.
Wszystkim zainteresowanym, chcącym skrytykować, polecam przeczytanie oryginalnego artykułu, jest długi, lecz bardzo treściwy.