Linux Succumbs to Creeping Windows-Itis
I've been using Linux since 1995, and while that doesn't quite elevate me to grizzled geekbeard status, it's long enough to have observed a whole lot of growth and changes. Most of them are good; but some of them are rather alarming. The changes that bother me the most are the ones that make it harder to understand and control your own system by adding needless complexity and layers of obscurity.
In the olden days most applications and services could be controlled with a single plain-text configuration file, so once you learned your way around it changes were fast and easy, and simple to replicate across multiple machines. But somewhere along the way a trend emerged that split these nice, useful single files into giant herds of files. So what was once simple, elegant, and useful became a big fat headache.
I want to blame Red Hat for this, because as I remember they were always the Linux distribution with the most needlessly-complex filesystem hierarchy. For example, they split network interface configuration files into a giant scattered mess of individual files-- to configure a single interface you need to muck with both /etc/sysconfig/network and /etc/sysconfig/network-scripts/ifcfg-<interface-name>. each interface has its own configuration file. Like we have nothing better to do than navigate among multiple files just to do something as simple as configure an Ethernet card. I always liked how Debian handled it in a single file, /etc/network/interfaces. You could stuff as many interfaces as you liked into this file, and each one configured as individually as you wanted. You also had the option to call other config files if you preferred.
But now as I dig into my Kubuntu system I realize I don't even know how my desktop interface is configured. /etc/network/interfaces contains only this:
Somehow Network Manager crept into my system and took over my wired Ethernet card, and it is set at "Roaming mode enabled." I install and remove all kinds of software, so it's not surprising to find unexpected "gifts" like this. Probably a dependency of some Solitaire game. I called on all of my mighty geekbeard powers, and I could not find anything resembling a sane, normal text configuration file. I checked out the file lists in all the relevant packages, I read the man pages and READMEs and Googled, and could not find anything really useful, because apparently the Network Manager maintainers feel that Network Manager needs little explaining.
That's just one example. Who else remembers when PAM was controlled by a single, comprehensible file, /etc/pam.conf? Then it was exploded into a giant wad of separate files for each application that used it, a tangled mess of redundant and inter-dependent includes. Adding to the fun, Red Hat and Debian each have their own special, different ways of configuring PAM.
udev, hotplug, Avahi, arrggh!
I've long been a fan of letting the computer do the work. Ordinary, mundane,repetitive tasks should be handled by the computer so we can do the brainy stuff, like winning in TuxKart. I'm also a fan of keeping it all transparent so that the average sysadmin or power user can dig into the guts and understand what's happening without needing a PhD. But transparency seems to longer be a design goal-- now we have all these "helpful" daemons that do all right as long as you do not try to deviate from what the daemons think you should do. But deity help you if you want to change anything-- does avahi-daemon actually do anything? If it does, what? udev is supposed to better than the old static /dev system. Call me old and grouchy, but it's a heck of a lot easier to run the mknod command than it is to decipher the huge spaghetti tangle of udev scripts that infest Linux now. These control all kinds of functions, including permissions on devices and mountpoints, which causes all kinds of fun if you need to fix something yourself.
Final whine: I want my /etc/inittab back. One nice clean file, easy to understand and edit. Now we have the horrid /etc/event.d and its giant glob of individual files, most of them a mysterious little script instead of a nice, self-contained, well-commented configuration. What benefit have we gained from this? The new Upstart init system is a needed improvement in this era of hot-pluggable everything, but was it necessary to make administering it so convoluted?
Progress is always good, and Linux has evolved at warp speed in a short time. But if the price of all that wonderful progress is taking control away from users, and forcing an increased dependency on distribution maintainers and other outside parties, that is an awfully high price to pay.