Leapdragon 2016 - Aron Hsiao Was Here

The state of Linux and a bit on PulseAudio  §

This isn’t a technology blog. This isn’t even really a “public” blog in the sense that I expect anyone to ever read it apart from my family and friends. But I’m posting just to join the Google ranks of those who say that:

PulseAudio SUCKS.

And something is not right in the world of Linux these days.

Now I’m no newbie. I started using Linux when a 386DX with a co-processor, an ESDI hard drive over 100GB, and a couple of XMS-capable memory boards in ISA slots combined to make about the hottest system around. Unaccelerated 640x480x256 video was luxurious and expensive.

I was using Slackware from the beginning, when there were actually floppy images sized OTHER than 1.44MB to install from, and they all had to be downloaded at 1200 bps using your shell account and ZModem.

I switched to Red Hat around 5.0 and liked it so much that I ended up writing a series of books about the product family.

So I’m not new to Linux, I’ve been using it since before even most computer science departments knew it existed.

Thing is, Linux was always better in the ways that mattered to me. That meant that it was:

a) More configurable

b) More powerful (a kind of corollary to (a) above)

c) More modular

d) More stable

e) Faster than other operating systems on similar hardware

For many years, this was the case.

These days I dual-boot Linux and Windows Vista on a 2.1GHz Pentium M Tablet PC machine. It’s not a brand spanking new 64-bit multi-core RAID-10 SATA Gigawatt-Graphics wowza suppa duppa whizbang geek machine.

I’m done with that stage of my life for a lot of years now.

But here’s the thing.

Windows Vista is bloated. It isn’t slow, really, but it’s nowhere near as fast as Windows 2000 used to be, and it takes up a shit ton of hard drive space and breaks compatibility with lots of things.

And Linux is slower, less stable, and less compatible these days.

What happened?

PulseAudio is a case in point.

What is it for? Why does it exist? Little documentation is around apart from “rpm -i” and I really don’t have the time these days to go on quests to understand some obscure service that the distribution packager thinks is essential. It should just get out of my way, or it should have a convenient and obvious configuration dialogue accessible through the desktop menu system.

Neither is the case.

So far as I can gather, PulseAudio lets me do things like software mixing (which I don’t need) and network sound (which I don’t need) and software resampling (which I don’t need).

For about the last three versions of Fedora, the process has gone something like this:

1) Install distribution

2) Try to use old applications

3) Get no sound whatsoever

4) Try to use new applications

5) Get sound for 10-15 seconds with massive CPU load

6) Until pulseaudio server crashes hard and sound disappears

7) Figure out how to surgically remove PulseAudio from system

8) Have sound in old applications and new applications just fine without PulseAudio

9) With significantly reduced CPU load

Why is this thing here if it just plain doesn’t work? Why do I have to spend hours each time I install a new version of Fedora trying to figure out why basic things like sound aren’t working, then figuring out how to amend system-level stuff without easy configuration dialogues in order to restore basic functionality?

This basic set of questions goes a long way.

Why is there a distinct lack of configurability any longer in either KDE or GNOME without having to play around with arcane sets of files and tools that are poorly documented and not friendly?

Why have all the configuration files, once easily discoverable as “dotfiles” in a home directory or “system configuration” files in an /etc directory been dispersed throughout the filesystem in a nonstandard, variable-per-system-or-daemon way?

Why does loading a simple web page or playing a YouTube video bring my Linux system to a crawl with a 2.1GHz CPU that has 2MB of cache and 2GB of RAM?

Why does it seem harder and harder to “pick and choose” what parts of the system I want in a modular way, rather than finding that everything depends on everything else in default configurations, and that configurability has been hidden and made user-unfriendly to the extent that it can’t be done without a serious investment in study and experimentation time?

I’m no noob. I wrote six books about Linux, starting back when Linux didn’t even have a “real” word processor to its name.

But things are bad when I find myself booting into Windows Vista because it’s faster, more stable, and easier for me to configure and modularize.

Linux these days seems to be less and less UNIX and more and more an inadequate riff on Windows. I’m about ready to switch to FreeBSD or OpenBSD, but I hate at this stage of my life and (now non-IT/non-CS) career to switch my primary operating system.

And by the way, let’s get the fuck rid of PulseAudio as a default configuration, at least until it works (i.e. can play sound) and does so with both legacy and new Linux applications.