But let’s get back one step first: Why should anyone replace the well known init.d system?
The background should be familiar to every Linux user: the init.d system of Linux with starting and stopping a fixed set of services and different runlevels has an old tradition and works quite well. However, it has a lot of shortcomings: first of all it is very slow, and it cannot start and run scripts in parallel. Second, the idea behind the system is chain like: you now what is available when, and place a script starting the service behind it.
Today, the world has changed: for desktop machines we need a fast boot and since there are services which are independent we could start them parallel also. Additionally, the approach with fixed sets of scripts does not make sense anymore because systems can change quite a lot after the boot time: (un) pluggable USB sticks, cameras, scanners; hotplug for hard disks and even processors, and so on. Services should be started and stopped here as an reaction to events, not running all the time in the background.
The approach of the new system introduced by Ubuntu developers, called Upstart, is now an event based system which reacts to events instead of starting a fixed set of scripts. The given link gives a much more detailed introduction, so read on there.
The page also lists the current competitors which also try to address the problems of init.d, and compares all of them to the design of Upstart so you get a pretty good idea what this all is about, what is would have been possible – and of course why Upstart is the best since sliced bread from the developers point of view 😉
But, to be clear about it: I also mentioned the speed problems and the non-parallel problems about init.d although this is not (yet) addressed by Upstart – or at least not mentioned as a main goal. I just hope that they will address these problems also, keep in mind that they are only at an early state of development.
However, the main reason why Upstart is probably much more important than all the other attempts to solve the init.d problem is that with Ubuntu one major distribution now includes a new solution – and all the other distributions will very carefully observe if the new approach is going to really solve the problems and really improves the situation on the system. If yes, then these will hopefully also include Upstart and it will become a new “standard” on Linux machines.
All other solutions are still not included in any bigger distribution and without a standard inclusion in one of the bigger distributions it is unlikely to become mainstream.
I cross my fingers for Upstart and hope that Fedora Core is loyal to its core principles (” Fedora is about the rapid progress of Free and Open Source software and content.”) and includes Upstart also fast – if it turns out to be usable. Then there would be two major distributions, and it would be unlikely that the other would not follow (see NetworkManager, Xen, and so on; until now only SELinux seem to divide the distributions again (SELinux vs AppArmor).