On 04/26/12 01:57, Leonid Isaev wrote: > On Wed, 25 Apr 2012 22:03:19 +0800 > Patrick Lauer <patrick@xxxxxxxxxx> wrote: > >> Greetings, >> >> in the last months there have been many discussions about init systems, >> especially systemd. The current state seems to make no one really happy >> - the current Arch Linux init system is a bit minimal and gets the job done, >> but it's not superawesome. There's things like init script dependencies that >> would be nice to have, but then it's about the smallest of all init systems >> around. >> >> [...] >> >> Patrick Lauer >> >> Gentoo Developer, OpenRC co-maintainer >> >> > > Thanks for your explanation. However, I sense a confusion regarding an init > system and a boot process. AFAIU openrc still uses /sbin/init Yes and no, we only use sysvinit to trigger the "we are booting" and "we are changing runlevel" events. To quote /etc/inittab: l1:1:wait:/sbin/rc single l2:2:wait:/sbin/rc nonetwork l3:3:wait:/sbin/rc default > -- the daemons/services are handled through a set of (ba)sh scripts. most of the logic is posix sh, the dependency resolution and some other bits are C. > From what > I learn from systemd documentation, all services are handled by one daemon -- > dependencies, tracking, etc. are a natural bonus, so to say. ... why should that be a daemon? (And what happens in the unlikely event that the supercomplexified PID #1 self-terminates? I think there's a very good set of reasons why sysvinit's "init" is very small and simple ...) > Although I also > dislike the idea of systemd-{journald,logind,...}, as long as those things are > implemented via modules, I don't think they are "bloat". So IMO the only > negative thing in arch's adoption of systemd is that rc.conf will have to go > away :) Yes. It's redundant ;) In the end our runlevels are just symlinks to the init scripts in /etc/init.d and managed with the rc-update / rc-config / rc-status tools. "rc-update add squid default; rc" is such a boring way to add a service to the default runlevel and start it ... and once you get hooked on rc-status you'll be wondering why you didn't have it before. About modules and bloat - for systemd you're going from a few hundred lines of shell to a few hundred thousand lines of mandatory dependencies. There's so many exciting ways you could accidentally trigger a bug in that, it goes against my philosophy that computers should be boring and doesn't let me be lazy. It does have a few decent ideas (like CGroups - which ended up taking me an afternoon to get initially patched into OpenRC) but at the cost of a rather hostile upstream that likes writing code more than anything and goes in a direction that makes some of us very much not happy, especially as it now corrupts other unrelated projects like udev (oh, systemd-udevd) and syslog-ng (haha, you get journald now!) and so on. Oh well. Take care, Patrick