Systemd presented as SysV-Init and Upstart alternative
In his "Rethinking PID 1" blog post, open source developer Lennart Poettering, who is known for his work on Avahi and Pulseaudio, has announced "Systemd", an alternative to SysV-Init and the Init system Upstart. Upstart is used in a lot of modern Linux distributions to execute or launch all of the things and services required for operation when the system is booted.
In the very detailed blog entry, Poettering discusses the problems of current Init systems and explains how Systemd, which is still very experimental and currently only available via Git, is going to make things better. For the system to be launched as quickly as possible, he argues that the Init system should only execute what is absolutely necessary and take care of as many tasks as possible in parallel in order to use resources efficiently. Furthermore, services should only be launched when they are needed – as is done with (x)inetd, which automatically launches server services such as SSH, Telnet and Webmin when a specific port is accessed. Poettering adds that the large number of shell scripts executed when current Linux distributions are launched are a problem because they are relatively slow. He discusses why he does not like the approach currently used by Upstart, which is used by Fedora, OpenSuse and Ubuntu, though he does have words of praise for a few properties of launchd used in Mac OS X.
Poettering also talks about how Systemd works. He says a lot of the features he had in mind have already been implemented, while others are still being worked on. He has made a Qemu image with a modified beta version of Fedora 13 available to those who want to give Systemd a test drive. Systemd launches a system in a virtual machine three seconds faster than Upstart does, according to Poettering, though he admits that these values are only rough estimates determined with debugging activated; only normal LSB launch scripts were used to call a number of services, which means that a lot of the concepts behind Systemd were not really used.
A Red Hat employee, Poettering makes it clear in the FAQ at the end of his announcement that Systemd is a hobby project, but that, nevertheless, he has coordinated the project with developers from a number of different companies, including Novell’s Kay Sievers, who is known for his work as a Udev maintainer. Poettering and Sievers seem to be working towards inclusion in Fedora and OpenSuse once further experiments with Systemd show that the concept is viable.
The main developer of Upstart, Scott James Remnant, commented on Systemd shortly after it was presented in his own blog. Remnant admits that Upstart is by no means perfect and that he cannot argue with the points of criticism that Poettering brings up. But now that Ubuntu 10.04 has been released, he says he plans to spend more time on Upstart and focus on a number of the criticised elements. He adds that it is too early to tell which of the two approaches will be better in the long term.