I like to have control over my computer. Generally, when my computer thinks it knows better than I do, 99% of the time or more, it’s wrong. I like to tell it what to do and how to do it, and I expect it to do only that and nothing more.
This is one of the reasons I left Windows so long ago. Windows enjoys automating stuff and taking the administration of the system out of my hands. When I tell it that I do not want to automate certain things, I expect it to obey and not change back, and with Windows, sometimes getting it to do exactly that is an adventure. Many times, it’s simply impossible.
With Linux, I discovered an OS that did exactly as I said, exactly how I said, and nothing more. Configurations were basically straightforward scripts or configuration files that told the OS exactly what I wanted, and at no time did it ever think that it should do any more. It was very liberating and very exciting to use such an OS that I had ultimate control over.
But modern Linux is attempting to get away from all that. For the sake of user-friendliness and to get new users, Linux has begun to collect an arsenal of daemons (programs that run in the background to accomplish certain tasks, like services in Windows) that do nothing but automate pretty much everything. Configuring the X server with xorg.conf? Becoming obsolete. Why should users waste time when X and the collection of daemons can figure out your hardware for you and configure it by itself?
Of course the answer is that often, the “automatic” configuration is dead wrong, and worse, fixing it requires disabling the entire suite of daemons and such to keep X from automating everything. I have yet to see an automatic configuration of X that sufficiently detects the requirements of my (admittedly old, yet still perfectly useful) CRT monitor. I either get 640×480 with no ability to modify it or 1600×1200@60Hz with no 3D acceleration, neither of which is acceptable. (Also, for some horrible reason, the latest nvidia drivers apparently use the refresh rate settings as a sort of internal catalog for the resolutions, causing them to incorrectly report odd values like 57Hz as the refresh rate, which causes problems for some applications — I have to disable “DynamicTwinView” in the nvidia video card section of xorg.conf to get rid of this madness.)
But it’s not just X, it’s the entire battery of daemons that have no real purpose other than to make things slightly more convenient for new users and things horribly inconvenient for experienced users who are often trying to set things up properly for the new users. Take dbus (please, take it, and don’t come back!), an invention created by some twisted mind that decided that passing information from one application to another needed more than simple scripting and created a horribly complicated Windows-like application messaging system that does nothing but take up resources. Take pulseaudio, which hasn’t learned the lessons of aRts and ESD that a daemon-based sound manager for mixing audio causes more problems that it solves (we need to get people to purchase audio cards with functioning hardware mixers via ALSA, or rewrite ALSA to take care of mixing there instead of using a half-baked method of mixing that isn’t consistent over all applications). Take Avahi/mDNSresponder, giving zeroconf configuration to a resource-hogging daemon instead of a simple script. Take hald, which does the above-mentioned “automatic hardware detection and configuration” for X and other programs that can be done much more reliably by hand.
I could go on; Ubuntu alone has a ton of these unnecessarily complex things running at startup, and it seems like every new version adds several more. What we need to do is create scripts and user-friendly configuration dialogs to enable effective configuration of a system for a new user, not throw a lot of unnecessary garbage onto their system just to configure things that eventually spreads out to infect other distributions as it is doing now. Then Ubuntu users can ease into the true Linux way of doing things by having a system that JustWorks(tm) after install but not be crippled by a lot of Windows-like automatic configuration so they can learn that the true strength and power of Linux comes from learning how to manually configure your system, and not just leaning on a bunch of automated stuff that makes it nearly impossible to strip a system down far enough to effectively manage it.
Sadly, as I said, this garbage is infecting other distributions now as well, and it is making it very difficult even on source-based distros such as Gentoo to run a system not dirtied by this garbage. I fear that as time goes on it will get even worse, and sadly there aren’t many places to go from here.
(And why should I care if these things are taking up the large amount of resources available in computers today? Because resources are resources, and any amount is that much less available to what really matters, which is the programs I run. Plus, they simply aren’t necessary when you know how to configure things yourself — which is how it should be when using Linux — and it’s just foolish to have things running that are not necessary.)