Probably the most talked about feature of the new Ubuntu is Upstart. This is an event-based, asynchronous sysvinit replacement. Most users will just notice that their computer boot and shuts down faster (significantly faster in my case).
Oldskool initFrom Wikipedia:
The functionality diverged considerably between BSD and System V. The usage on most Linux distributions is compatible with System V, but some distributions, such as Slackware, use a BSD-style and others, such as Gentoo Linux, have their own customized version.
Given that Upstart was largely designed to replace sysvinit, and retain compatiblity, I shall cover it briefly here.
sysvinit uses "runlevels". The initialisation process involves starting services and performing tasks required for each runlevel, before moving on the next. Most machines will continue until reaching the multiuser runlevel, which on Debian and Ubuntu happens to be 2.
This process requires that things are done in a predefined order, and relies on hardware being in a suitable state before things can move on.
Upstart was designed to solve two main problems. Boot/shutdown speed, and modern hardware flexibility. It also aims to do this in a compatible manner, allowing affected programmes to run unchanged.
This problem is solved by making Upstart asynchronous. That is, it will perform number of tasks at once, rather than doing everything in a linear fashion. The difference is quite noticeable.
When System V was written, you could rely on hardware being available at specific times during the boot process, and that disks were always there. Today’s computers are far more flexible. You may want your home directory to be mounted on an external USB hard disk; your network card may be a wireless USB dongle; a network drive may only be available when you are within range of a Wireless Access Point.
Upstart tackles this issue by being event-based. When certain hardware is available, or a subsystem is running, then it will perform appropriate tasks - such as mounting the external drive as /home when the USB subsystem is up.
This should mean that unnecessary services are not started, which should mean a reduced memory footprint, and improved performance. Also, Upstart restarts services if they crash, reducing the need for reboots.
One ingenious aspect of Upstart is that it has been designed to be compatible with sysvinit. This means that it’s almost a drop-in replacement, but still gives the increased performance and flexibility.
Upstart has its own format for tasks, but achieves the compatibility by also supporting sysvinit scripts.
Ubuntu also hopes that Upstart can replace cron, atd, and inetd.
Is Upstart cutting edge?
Upstart uses a very different approach for the initialisation process. It also surpasses other attempted replacements, such as Initng, in features, ingenuity, and success.
Yes, I would say that Upstart is cutting edge.
I look forward to seeing the further developments of Upstart, and its adoption by other distributions.