
Originally Posted by
mgc8
Typing a username/password usually doesn't dake more than 10 seconds (well, unless the user is old and/or disabled). The "services-loading" phase lasts anywhere from around 30s up to 2min, depending on hardware speed and installed packages. So even in the best possible case you don't really save much time, if you still have to wait for stuff to load after typing the password.
I really don't see what benefit a nice desktop with frozen icons brings -- seriously, I've encountered this many times in *win: the system is supposedly "on" and I can try and launch applications, but so much stuff is still being loaded that everything slows to a crawl and sometimes fails to work entirely (for example you try to launch an app yet nothing happens). I really don't want that experience in Linux -- when I log in, I expect everything to be up and running, including CUPS, a web server, sshd and whatever I may have installed on the system.
The best thing to do is have the system boot faster. By far the worst offender there is the HDD, especially in a laptop/netbook. If the HDD is replaced by a SSD things improve tremendously, so that will be solved in time as SSD's slowly start to appear everywhere, maybe even included in HDD's for a swift system partition.
Another avenue is in improving the efficiency of the boot tools themselves, and here upstart is a very good example which we can hope will be implemented properly -- the problem is a lot of innertia, as always with invasive changes. Shortening loading times for things like X (via KMS and optimizations) will also move us the right way.
All-in-all, there are a lot of areas where the boot time can be made shorter, however simply throwing a xDM prompt before the system is half-way loaded is not the right way to do it, that's like swiping dust under the carpet -- it's still there, you just can't see it!
As to using GRUB to log in, that may be possible if using something like LinuxBIOS, so the whole system is actually initialized _before_ GRUB. Otherwise, you'd have to implement a whole bunch of things right into it, making GRUB sort-of a miniature kernel. Deffinitely not the right way to go.