Thursday, August 26, 2010

Systemd in Gentoo

A lot of folks are raving about the next generation in init systems (aka systemd), and how it's (almost certainly) going to be the default init system for Fedora 14 (paid article, subscribe to LWN to read! [or wait a week]). It also seems that OpenSuse will be moving to systemd sometime in the near future (don't take my word for this though), and Debian has at least considered it. It is also well-known that Ubuntu will not be using systemd for the foreseeable future.

So where is Gentoo in all this? Our current init system is baselayout-1 in the stable tree, and openrc in the ~arch tree. The maintainer-wanted bug for systemd has been quite active with users posting preliminary ebuilds for it. The bug itself currently has >30 folks CCed (including me), and 86 votes. So users are definitely very interested in seeing systemd in Gentoo. However, it will take a lot of work before systemd can enter portage even as a masked ebuild.

Even after systemd enters portage, it is extremely unlikely that it will become the default init system for reasons that are listed below. Some developers are strongly in favour of moving from baselayout-1 to systemd, while some think it's a pile of crap that Gentoo should stay far away from. Neither of these opinions is shared by the majority of Gentoo devs. (that includes me :-)

In all likelihood, the end result will be that openrc will finally go stable (replacing baselayout-1), and if any developers are willing to spend the massive amount of time and effort required to make systemd usable in Gentoo, systemd will become an optional init system, strongly recommended for desktops/laptops.

Now why can't we throw out baselayout-1 as well as openrc and just use systemd? I was going to make a full list of the reasons, but as I was making it, I realised that I don't know enough details about systemd's requirements, what all it provides, what parts of Baselayout would need to be rewritten, how much porting of the tree (and systemd) would be needed, etc. So instead of hand-waving, I'll just list "needs several volunteer developers" as the blocker for now :)

I'm tempted to list myself as a future volunteer, but I won't do such a thing yet. Rest assured that if I do end up working on this, I'll be sure to blog about it. Although it is probably just a matter of "time" ;)

6 comments:

Unknown said...

I think you will be interested in the link below.
http://busybox.net/~vda/init_vs_runsv.html

Kevin Bowling said...

FWIW systemd makes a ton of sense on servers as well. Read the primary author's "systemd for System Administrators" for some nice features.

James Le Cuirot said...

OpenRC is one of my favourite things about Gentoo. I'm not going to assume that systemd couldn't possibly be any better so what does it offer us that OpenRC doesn't?

Domen Kožar said...

So basically we need a comparison table. Informations what each system brings are randomly distributed over developers heads, causing confusion.

Anonymous said...

In installed systemd on a test system last month and the basic functionality seemed to work, but the biggest problem I could see is that there's no way to pull in the information from /etc/conf.d

The .service files are intended to be uniform across distributions and not edited by system administrators so I don't see how you'd incorporate the configuration in, for example, /etc/conf.d/sshd

m47730 said...

this page:

http://0pointer.de/blog/projects/systemd.html

explains pretty well why systemd exits, and what are his advantages over existing initng, upstream, etc.

i simply can't live without /etc/conf.d files, but systemd looks promising