*UPDATE: 9/3/2006 It seems that Upstart will be ready for Edgy.
Upstart is a new boot loader that is in development that could be a potential replacement for sysvinit. The program is basically in charge of starting up all the programs you need when you start your machine to make it do anything useful. This program is quite important because it is a major factor in determining how long your computer takes to boot.

I first heard about Upstart a few days ago. It is being developed by some of the developers at Canonical Limited, the company behind Ubuntu, and is looking like a good system. You can read in more detail about how Upstart works when compared to other systems, but basically it differs from the others in that it uses an Event Driven model to boot the system rather than a liner system.
For example, the current sysvinit program runs boot scripts one after another, in a liner fashion, until the system is up. Each step in the boot sequence relies on the fact that all the previous steps are complete before it starts it work.
Upstart on the other hand is driven by events. So an example event could be "the root file system is writable", boot processes that require writing to the root file system do not have to wait for that step to finish before they can be started. The processes could be started before then when the file system becomes writable all the waiting processes are notified and continue loading.
This system allows for a more flexible and robust boot processes that should also lead to faster boot times by allowing the system to do more work concurrently rather than forcing some steps to wait for a whole host of other steps to be completed, which they may not even require to continue themselves.
Before we start remember that Upstart is still in heavy development, it is far from ready for a main Ubuntu system. That is why I am doing all of this in Parallels so I can test it out, and see what it does without compromising my main system.
In the blog posting that first peeked my interest in Upstart stated that the package is in the "Ubuntu Universe" repository. So the first thing I did was install Dapper in Parallels and try to download the Upstart package from the Universe repository, but alas it was not there! After some more thought it seemed obvious that the author meant the Edgy Eft Universe repository, after all who would want to install a incomplete, experimental boot system on their Stable Ubuntu system? So I took some Dapper boot up times in Parallels then moved on to installing Edgy Eft.
After Install Edgy Eft Knot 1, and adding the Edgy Eft Universe repositories I then saw the Upstart Package. After installing the package and reading the README (/usr/share/doc/upstart/README) grub menu option that allowed me to boot Ubuntu using Upstart. One reboot later and I was again disappointed, because Upstart complained about missing files, and would not boot anything.
So my next conclusion was that Upstart really required the cutting edge version of Edgy Eft. So using Synaptic I did a system update moving my system from Edgy Eft Knot 1 to the latest current release. After that Upstart booted just fine, shutting down, and restarting are another story.
Obviously Upstart is still in heavy testing, and is in no way intended to be used on a production system. That is why I was pleased that the Upstart developers made Upstart an option at boot, so if it does not work you can just ignore it and boot normally.
The system booted just fine, shutdown, and restart have not been implemented yet. You can shutdown the system by sending a event directly to the program, but it is not very friendly yet. To be honest I was a little surprised that the system booted at all. Normally when you try to change something this fundamental in a Linux system something normally breaks horribly. This time however I was greeted with the familiar Ubuntu log in and went straight to Gnome.
I took a few boot up time readings using my trusty stopwatch and here are the results:
| Boot #1 | Boot #2 | Avg | |
| Dapper: | |||
| Sysvinit | 1:15.91 | 1:13.80 | 1:14.86 |
| Upstart | N/A | N/A | N/A |
| Edgy Eft (8/29/06): | |||
| Sysvinit | 40.13 | 39.99 | 40.06 |
| Upstart | 36.57 | 36.77 | 36.67 |
The first thing that shocked me was how much faster Edgy Eft was booting than Dapper Drake. I am not sure if developers start with a stripped down version of Ubuntu then add things back before release, or if they have done something dramatic to the boot up processes, but Edgy seemed a lot faster. Hopefully this will stick with the final release of Edgy because if the boot up time can be reduced by anywhere near 40% that will be a great thing for Ubuntu. Upstart was also much faster than Dappers standard boot up , but that's probably due more to overall reduced boot time of Edgy.
Upstart was a couple of seconds faster booting than the standard Edgy sysinitv. While this is not as dramatic as the difference between Edgy and Dapper, it is still impressive. Upstart is still in development, where sysinitv has been hammered on and optimized for years. Also Upstart still has all the debugging messages turned on. So just that fact that it is currently just a little faster than sysvinit is nice.
I am quite excited to see what Upstart can do in the future. These tests are not very scientific or anything, but some of the huge time differences also bode well for the future of Ubuntu. If Edgy Eft can keep their boot times this much lower than Dapper, and my readings were not just a fluke, then we might start seeing some much faster booting Linux systems soon.
There is still a ways to go in both Edgy Eft and Upstart development, so I will have to take a wait and see approach to both projects, but I really hope my findings here hold out until release.