Init : someone could comment this ?

Ian Burrell ianburrell at gmail.com
Tue Jan 8 22:45:14 UTC 2008


On Jan 8, 2008 2:14 PM, Linus Walleij <triad at df.lth.se> wrote:
> On Tue, 8 Jan 2008, Les Mikesell wrote:
>
> > People running fedora will expect to use sysV style init configuration to
> > control it.
>
> Now, I think Lennart is right in pushing the concept behind Upstart and
> the new InitKit, both of which break the init config paradigm and its
> runlevels.
>
> The reason was actually outlined in Miguel de Icaza's "Let's Make Unix Not
> Suck" a few years back. It outlined some weaknesses of the Unix pipe and
> filter and signalling system: pipes are unidirectional, data is not typed,
> signals are crude in essence. Component-based thinking through CORBA led
> to the invention of Bonobo, then the condensed DCOP and eventually D-Bus
> which actually does the tricks most sought after: bidirectional messages
> between processes, typed messages, a strict namespace, broadcast messages.
>
> The SysVInit system currently suffers from not being able to use such a
> mechanism.
>
> Upstart solved it, basically, but has some design flaws and is used in
> init-compatibility mode in Ubuntu. So now InitKit is coming along.
>
> It's worth sacrificing runlevels to reach the next step of unsucky Unix.
>
> POSIX does not mandate init and its runlevels, nor does the Single Unix
> spec. I think there is a good reason for: it was awkward, so it wasn't
> standardized. If everyone though it was a good idea they would have
> standardized it back when POSIX was written. (I wasn't a member of the
> committes tho, so who knows.)
>

I think it is important to look what interfaces the init system
provides and which ones should be preserved.  The current init has
three, /etc/inittab to determine what is done for runlevels, the
/etc/rc.d/rc symlinks to determine what services are run by
/etc/rc.d/rc, and the /etc/init.d scripts that are executed.

I think it is important that we preserve the ability to use sysv-style
init scripts.  They are part of LSB.  It would be lots of work to
convert everything to any new way.  They are installed by third-party
packages.  It might be possible to change the functions to work better
with a new system (for example by not forking when running new
programs).  I think it would be acceptable if the new features
required a new file format as long as the old one is supported.  The
/sbin/service program should work with both.  It would be nice if
there was a program that could use the LSB metadata to configure
dependencies and other startup.

The /etc/inittab config file is specific to SysV init.  Other systems
don't even have the concept of runlevels.  It would be nice to
preserve the /etc/rc.d symlinks for determining which service to
start, but the standard interface is the chkconfig program.  Other
Linux distributions with SysV init have the symlinks in different
places.  It would be nice if there was a program that could produce
the new configuration from the old and even synchronize them after
changes to the old.

 - Ian




More information about the fedora-devel-list mailing list