Yesterday I read this rather interesting "Ask Slashdot" post on Slashdot..
There are a plethora of reasons why a computer takes time to boot.
For the moment, let’s ignore Power On Self Test (POST) and various other hardware and CMOS related tests which are run automatically when a computer boots (this is to ensure that the machine is running with no serious memory or device issues which could provoke further problems when an operating system is loaded). Lets also forget discussing cold boot vs. warm boot, and hibernation (we need to focus on what constitutes a ‘clean’ boot).
Once a modern operating system is loaded (be it a Unix variety, Macintosh or a Microsoft system), it loads file system drivers, memory management, device drivers and so forth. This is prior to loading any kind of user interface environment (a shell or windowed environment).
Comparing the load times (from booting to the login shell) between gentoo, freeBSD and Windows is stupid. Any such comparisons should compare loading Windows to loading XWindows. Loading a feature-rich user environment, requires initializing sound cards, CD/DVD-ROM drivers, USB devices, advanced video support et cetera.
Keep in mind that all of this loading is at the mercy of hardware resources – the speed of the computer’s one or more CPUs, and the amount of available memory (and what kind of memory management is used).
In the case of Windows, load time can also be affected by the type of shell extensions which are to be loaded, and any third party software which runs below user-mode (ring 3), including device drivers.
Simply put, it’s not reasonable to expect all of these operations to work instantly.
There are many, many reasons why a computer will have a variable boot time, and it will always wildly fluctuate between computers based on hardware and software and the way the computer has been configured. Comparing booting a computer with switching on a TV is insane, even comparing the load times of a set top box and a modern personal computer is an unrealistic comparison.
It is fair to expect to be able to log on to a Windows (or XWindows) machine in a reasonable amount of time, but as an end user you have to be fair and reasonable. If you are running Windows Vista on a 1 GHz machine with 256 MB of RAM you may suffer a slower and more painful experience then on a 2 GHz dual core machine with 2 GB of RAM. The more advanced the operating system and the slower/older the hardware, as a user you must expect to be at a disadvantage. A user with the same 1 GHz machine may reasonably expect WIndows 2000 or Windows XP to run faster – and to load faster, as the resource overhead is less. Again, even this simple assumption doesn’t take into account any optimizations that a more recent OS may have.
In summary, I honestly believe that people deserve to understand the reasoning behind longer boot times, but people should also maintain a fair and reasonable expectation regarding performance. Having a fully featured computer carries the burdon of operating overhead, and the more exotic the devices that are attached, the larger the burdon.
Stay tuned for my next exciting installment: Why I loathe and hate the Windows Vista shell or why do file transfers on a wireless LAN cause the Vista shell to hang?