Scott Remnant has published a new roadmap for Upstart 0.5, Ubuntu’s init replacement. It picks up several items which has been discussed earlier with developers of other distributions.
The roadmap was posted a month after a “State of Upstart” post. In this state post Scott described what kind of changes were requested or mentioned by other distribution developers to fit Upstart to their ideas and visions thus creating a cross distribution solution for an init replacement. The roadmap now includes several of these parts.
As a result the IPC service for Upstart will be D-BUS. While the original idea to have an own IPC service was to keep it simple and easy the other distributions requested/suggested/demanded (well, at least Fedora mentioned something in that direction afaik) D-BUS for this. It also makes sense since IPC isn’t that easy and D-BUS is already out there and the de-facto IPC service of Linux (once KDE 4 gets spread enough).
It can be said that Upstart plans work better with HAL and D-BUS in general: in the future Upstart could take over most of the tasks where services have to be started due to a HAL or D-BUS event/request.
Besides the IPC stuff a big part of the roadmap is covered by the service management: Upstart will not only start or stop services but will also manage them if necessary. A use case would be that Upstart could ask a service to reload its configuration – or to reload a different configuration.
This allows conflicting configuration to exist and be handled sanely; which is especially important since I’d like to support job creation by
external processes. They’ll be able to register themselves as a configuration source and define jobs under it.
Scott also plans to add resources and more environment variables to the service management. A process could for example come along with a specific resource request (1 GB free RAM or whatever). If that resource is not available Upstart would put the process into a queue until the resource is available. The additional environment variables will not be hardcoded but depend on the job’s own definition.
All in all it is great to see that Upstart is further developed. Why I know that a lot can be done by just improving the init and start scripts (like almost all recent distributions did) the old init system had its best time some ten years ago. Today’s systems need a flexible and careful service manager which works together with the other basic elements of the system (HAL, D-BUS, etc.). There is simply no need that specific network services are started on my machine as long as NetworkManager says the system is offline.
I’m looking forward to the first Upstart version which incorporates all these changes. I would like to have another look at it then with Fedora.