The fourth and final day of the ninth annual Ottawa Linux Symposium wrapped up on Saturday
with a few more session and a keynote address by Linux kernel SCSI maintainer James Bottomley.
During the day I attended a few sessions, among them one entitled "Cleaning Up the Linux
Desktop Audio Mess" by PulseAudio lead developer Lennart Poettering.
Linux audio is a mess, Poettering asserted. There are too many incompatible sound APIs,
with OSS, ALSA, EsounD, aRts, and others vying for the sound device. Each of these systems
has limitations, Poettering said. There are also abstraction APIs, but they are
not widely accepted, he said. Abstraction layers slow things down while removing
functionality from the APIs they are abstracting.
What desktops lack, he said, is a "Compiz for sound." Different applications should be
able to have different volumes. Music should stop for VoIP calls. It should be possible
for the application in the foreground to be louder than the application in the background
in X. Applications should remember which audio device to use. Hot switching of playback
streams, for example between music and voice over IP, should be possible, and the sound
streams should seamlessly be able to transition between speakers an a USB headset without
interruption, he said.
In spite of these missing capabilities and the API mishmash, Poettering said that there
are some things that Linux audio does do well -- among them, network transparent sound, the
range of high-level sound applications, and a low-latency kernel at the core.
The audio mess in Linux, Poettering said, is not a law of nature. Apple's CoreAudio proves
this, as does Windows Vista's userspace sound system. In the effort to improve Linux
audio, he said, we need to acknowledge that although the drivers may be going away, the
Open Sound System (OSS) API is not. It is the most cross-platform of the Linux sound APIs.
It is important to remain compatible with the OSS API, he said, but it is necessary to
standardise on a single API. Linux audio needs to stop abstracting layers, he said, and it needs
to marry together all the existing APIs and retain existing features.
Poettering said PulseAudio, a modular GPL-licensed sound server that is a drop-in
replacement for EsounD, offers a solution to the problem. It is a proxy for
sound devices that receive audio data from applications and send audio data to
applications, he said. It can adjust sample rate, volume, provides filters, and can
redirect sound and reroute channels. PulseAudio comes with 34 modules and supports OSS,
ALSA, Solaris sound, and Win32. It even supports the LIRC Linux remote control
PulseAudio is not a competitor for the professional audio package Jack, Poettering
said; it can run side by side with it. What PulseAudio is not is a streaming solution, nor
a demuxing or decoding system. It is not an effort to try to push another EsounD on
people. It is a drop-in replacement for EsounD that will just work, superseding
every aspect of EsounD and ALSA dmix in every way.
PulseAudio is included, but not enabled, in most distributions. Now that he works at
Red Hat, Poettering says, maybe Fedora 8 will have it enabled by default.
James Bottomley's keynote address
This year's keynote address was delivered by kernel SCSI maintainer James Bottomley, a
charismatic Brit known, among other things, for wearing a bow tie. His lively presentation was
called "Evolution and Diversity: The Meaning of Freedom and Openness in Linux."
Borrowing a slide from Greg Kroah-Hartman's 2006 keynote, Bottomley showed a picture of David
and the flying spaghetti monster with the caption:
"Linux is evolution, not intelligent design." Evolution is a process for selection, he said, and
diversity is the input to the evolution. Evolution selects the most perfect options from the
diversity tree. In nature, evolution results in only one or two or three perfect species from
the diversity input. In Linux, Bottomley said, evolution is an adversarial process with the
occasional bloodbath of the Linux Kernel Mailing List, patch review, testing, and taste.
Bottomley said oddball architectures like Voyager and PA-RISC create diversity to feed the
evolutionary process of Linux. Getting architectures like these included in the kernel requires
innovation. There are other constituencies with small communities that make a big difference --
accessibility, for example. It is not popularity and number of users that determine what gets
into the kernel; anything that is done well can go in.
Evolution and diversity are battling forces, Bottomley said. Innovation is created by their
give and take. Freedom also appears as a result of this give and take. As long as the ecosystem
works, you have freedom to think, innovate, and dream. Linux supports any device, large
Openness is not like freedom, Bottomley said. Openness is a fundamental input to the
evolutionary process, while freedom appears as a result of the process. Unless you show the
code, no one can review it, and it cannot be debugged and stabilised.
If you are not testing Linux kernel -rc1, you have less right to complain about the
kernel, he said. Don't concentrate on distribution kernels, concentrate on upstream
kernels. If you test for bugs upstream, fewer bugs will flow to the distros. Wouldn't it
be nice, he asked, to find the bugs before they get into distribution kernels?
Maintainers are arbiters of taste and coding style. They are the guarantors of the
evolutionary process. They have the job of applying the process to get people to come
forward and innovate.
Diversity itself acts as an evolutionary pressure, he said. Bit rot, an old but heavily used term,
is the equivalent of mold, sweeping up dead things. Bit rot ensures old code is dead and gone.
Bit rot is why we will never have a stable API in Linux, Bottomley said.
A lot of people are afraid of forking, Bottomley said, but the -mm tree is technically a
fork of the Linux kernel. He posted a slide quoting Sun CEO Jonathan Schwartz: "They like
to paint the battle as Sun vs. the community, and it's not. Companies compete, communities
simply fracture." The quote was part of an argument on the Linux Kernel Mailing List
(LKML) earlier this year.
What does it mean that companies compete, asked Bottomley, posting a slide of the names
HP-UX, AIX, SYSV, SunOS, and MP-RAS overlayed over a nuclear explosion. The battle of the Unixes
is what it means, he said, and it left a lot of corpses and wounded a lot of customers. He
warned that Schwartz is trying to portray Linux as an inevitable return to the Unix wars.
The forking that we do and the fragmentation that we do in Linux, he said, is necessary
for our ecosystem. Forking provides the energy for our evolutionary process. It is a hard
idea to get your mind around, a paradigm shift, he said. No project is open source unless
it is prone to forking, he stated. Go look at Solaris code, he challenged, and see how you
can fork it. No one owns Linux, but all of the thousands of people who have contributed own
a piece of the Linux kernel. The freedom to think, to experiment, and to fork is what
drives the community. Sun is engaged in a FUD campaign to link Linux to fragmentation.
Rather than fighting this we must embrace this message, he said. Openness and innovation
force forks to merge. The combination of these forks is usually better than either fork.
Nature creates lots of forks, he noted. Evolution is wasteful, but Linux does this in a
We must increase the pace of the "innovation stream," Bottomley said. The process is getting
faster. The increasing number of lines modified per release is not a problem, it is in fact a
good thing. Increasing the pace of change must increase the evolutionary pressure.
One of the problems facing Linux, he noted, is that it is written in English, which limits
the non-English-speaking majority of the world from contributing to the Linux kernel. We
need to come up with a way of accepting patches in foreign languages, he said.
No talk about Linux is complete, Bottomley said, without a discussion of closed source
drivers. When you produce a closed source driver, you cut yourself off
from the community and from the evolutionary process. Bit rot is powerful against you and you are
in a constant race to keep up with the kernel. Closed source drivers waste the talent of your
engineers and waste money. They aren't immoral or illegal, just "bloody stupid," he said.
We often preach to the converted, he warned. Engineers at companies providing closed
source drivers generally support open aims. It is the management and lawyers
that have the problems. They see the code as intellectual property, and property needs
defending. Encouragement is not brought about by flaming the engineers on the LKML, he
warned. You have to go after the executives and the legal arm. Go to the Linux Foundation
if need be, you can tell the companies. The Linux Foundation has an NDA program to produce
fully open source drivers from NDA specifications. Saying he wasn't sure if it had
been announced, but that if not he hereby announced it, Adaptec will be the first company
to use the NDA program to get open source drivers.
The purpose of the NDA program, he said, is for companies whose specs themselves are fine for
releasing, but whose document margins are full of comments from the engineers that could be
construed as slanderous. Hewlett-Packard, for instance, once gave out some PA-RISC
documentation with doodles containing blasts against the competition. Lawyers had to redact the
doodles before it could be released. The NDA program can get around the issue of dirty little
secrets like this, he explained. All we want, he said, is the driver.
To wrap up, he said, evolution and diversity put tension in the system until freedom is
created in the middle. Forking is good. Whatever we are doing, we need to keep doing.
Following the keynote, the OLS organisers provided entertaining
announcements and gave away prizes. Aside from the routine announcements about the
functioning of the conference, organiser Craig Ross said that this, the ninth OLS, is the
first at which the organisers had not heard from the main hotel where attendees were
staying, the police, or the city of Ottawa about any of the attendees.
The ninth Ottawa Linux Symposium demonstrated Andrew J. Hutton and C. Craig Ross's
professionalism at putting on the conference yet again. The well-oiled organisation team
kept everything flowing smoothly and more or less on time, with nearly all talks recorded
on high definition video, and WPA-protected wireless available throughout the conference
Just a couple of days before this year's Ottawa Linux Symposium, I attended
the annual Debian Conference (DebConf) in Edinburgh, Scotland. I saw fewer
than five people in common between the two conferences -- a testament to the diversity and
number of people involved in the Linux community.