By Jake Edge
June 23, 2010
It is frustrating for free software folks to see their friends and family
disappear into the maw of Facebook's walled garden, seemingly unable to
communicate
via any other means. Looking around at Linux conferences and seeing lots
of Apple
laptops is equally frustrating—disheartening even—especially given Apple's draconian policies
that seem to be hell-bent on creating, and enforcing, its own garden. And
let's not forget that Apple is currently pursuing a patent attack that
could do quite a bit of damage to Linux and free software. When looking at
those things,
it's important to remember that the struggle for freedom is rarely
convenient. There
are entrenched interests—and enormous sums of money—arrayed
against software freedom, but that hasn't halted the movement's progress.
While it's clear that Apple, Facebook, Google, and others have made
compelling platforms for users, it's equally clear that they have also
ignored, or actively thwarted, user freedom. They have their reasons for
doing so, not least the profit motive, but those with long memories have
seen this kind of thing before. After all, 20 years ago one would have
been hard-pressed to find a usable free operating system. The reasons were
much the same then as they are now: money and power.
That particular obstacle has been overcome, with a lot of hard work by a
lot of people, so it's a little early to be overly concerned that Apple (or
Facebook or ...) is somehow siphoning off the energy of the free software
movement. There are lots of Windows laptops at Linux conferences as well,
but one would guess the percentage has drastically decreased over the years
and only a small part of that has ended up in Apple's lap (or with an Apple
in their lap).
Companies like Apple and Microsoft have huge advantages that are
extremely difficult for free software to overcome, yet we still make
progress. Anyone who has been a part of the community as a developer or
user for 10 or 15 years—or even less—should be astonished at
the advances made. But in order to do that, some folks will have to take
the less convenient path, whether that means foregoing the latest user
interface enhancements from Apple, or missing out on the über-cool
(and trendy!) social networking widgets and games from Facebook. So far,
fortunately,
we haven't really lacked for people willing to make those choices.
It is probably quite obvious to most LWN readers, but it still bears
repeating: the freedom to use hardware, software, and data as we
desire—rather than as the purveyors want us to use them—sometimes
comes
with a price. Inconvenience, fewer capabilities, and sometimes being
ostracized are some of the possible costs. But, as we have seen, the payoff is
huge and the cost can be amortized over not only years, but also over a
large number
of users and developers.
The alternative, while perhaps convenient, is, in the end, bleak. It is no
surprise that various mega-corporations are constantly trying to distract
us with
"shiny", because if they can just get past these pesky freedoms that some
clamor about, they can get on with the profit-making tasks at hand. If
they can redefine users as strictly "consumers of content", with that content
controlled by the corporations and their allies, they can push more and
more restrictions (a la the DMCA
and the ACTA
treaty) and further perpetuate their control.
By walling themselves off from the rest of the computing
world, while enticing as many as possible to move inside their walls, Apple
and Facebook (and others, those two are just today's high-profile
offenders) are doing those users a grave disservice, at least in the long run.
The battle for software freedom—really, any freedom—is a war of
ideas, and ideals. Software freedom may be the pragmatic choice given a
long enough
view, but it often runs counter to the conventional thinking, which is why
education needs to be a big part of the effort.
In the conflict between free and closed systems, there are many fronts.
The Free Software Foundation (FSF) has generally been in the forefront of
the battle to help people understand software freedom and why it's
important. Other organizations and projects, including things like the Linux
kernel and the FSF's own GNU
project, have taken on other parts of the struggle. There is plenty of
room in our movement for different approaches. Just as we don't require a
single choice for editor, desktop environment, or distribution, diversity
in how we work towards software freedom is important and useful.
Like my colleague, Joe "Zonker"
Brockmeier, I am not always impressed with the campaigns that the FSF
comes up with. I don't, however, see them as any kind of impediment to
achieving the free software goals that we all likely share. Some of the
phrases that have come from the FSF's campaigns (DRM == "digital restrictions
management" and the lesser-known but still perfectly descriptive "defective
by design" for example) have been exactly what was needed to help in the
education process. Sometimes, negative campaigns have their place; what
alternative to DRM should the FSF be pushing? In that case, "Gno" seems
like the right answer.
None of that is to say that providing alternatives is not also important.
Projects to make the Linux desktop more "usable" and user-friendly exist.
There are various nascent efforts to create freedom and privacy-respecting
alternatives to Facebook as well. These things will take time, but we will
get there. Just look back a decade or two.
Comments (67 posted)
By Jonathan Corbet
June 21, 2010
One of the core features of Linux has always been the ability to switch to
a different distribution in the eternal pursuit of something shiny, new,
and different. Linux on handsets should be no different. Someday, with
any luck at all, we'll be able to change between systems like Android and
MeeGo on a single handset. For now, the options are a bit more limited,
but there are still toys to play with. Your editor took the
CyanogenMod
5.0.8 announcement as the perfect opportunity to avoid real work for
while. In short: CyanogenMod is a classic demonstration of what can happen
when we have control over our gadgets.
CyanogenMod is a rebuild of the Android environment with a lot of added
stuff. Some of what's there is code from Google which has not yet made it
into an official Android release; for example, CyanogenMod users got
essential features like color trackball notifications, animated GIF
support, and 360-degree rotation ahead of stock Android users. They also
got features that really are essential, with wireless tethering
being at the top of the list. CyanogenMod also includes newer kernels with
more features enabled, busybox and a whole set of command-line utilities,
proper virtual private network (VPN) support, proper support for
applications on the SD card, a cellular access-point name list which takes the
guesswork out of using the phone with most providers, and lots more.
CyanogenMod also supports older handsets like the G1/ADP1 which, otherwise,
remain stuck with old versions on the Android system.
It's worth noting that the CyanogenMod experience actually starts with the
recovery
image provided by Amon_RA. This image makes it easy to flash new
versions of firmware into the phone. Even more importantly, though, is the
full integration of nandroid backup and restore. Your editor can attest
that this feature is able to take a handset which no longer even boots
after a botched update and return it to its previous state. Needless to
say, this capability makes experimenting with new versions a much
lower-stress affair - if one remembers to make a backup first.
With regard to the CyanogenMod 5.0.8 update, the first thing to be aware of
is this: it is still based on the Android 2.1 release. So while this
release has had a lot of 2.2 features since well before 2.2 existed, it is
also lacking a few, including the multi-lingual keyboard and the
much-faster Java runtime (though it does have the faster V8 JavaScript
engine). People running 2.2-based handsets will want to think before
making the switch to CyanogenMod; there will be losses as well as gains.
One assumes that a 2.2-based release will eventually appear, but nobody has
made any promises as to when.
So what is new in 5.0.8? The headline features include:
- The launcher has been replaced by ADW.Launcher,
which adds a number of features. Some of them - being able to see all
of the launcher screens with a "pinch" gesture - would be more useful
if Android's screens were more dynamic. Many of the others seem
oriented toward cramming more useful stuff onto each screen by
allowing closer icon spacing, adding customizable buttons at the
bottom, etc. It is, all told, an improved experience for users who do
a lot with their phones.
- The music player application has some new features, primarily gesture
support. It remains a fairly minimal music player, though; your
editor anxiously awaits the day when Rockbox is available as an
Android application.
- The camera is now capable of recording 720p video - not bad for a
cellphone.
There's also a number of bug fixes and performance improvements. Some
users are reporting that CyanogenMod 5.0.8 feels a lot faster than its
predecessors; your editor is inclined to agree but it's not entirely clear
why that would be the case. One other nice little change is that the
practice of hiding some settings under "spare parts" appears to have ended;
all settings are, once again, available from the "settings" application.
There have been a few complaints about problems with this release, mostly
associated with video recording. Those may all be due to a failure to wipe
(factory reset) the phone before installing the update, though. Over a
couple of days of usage and testing, your editor has not been able to find
anything that has gone obviously wrong. It appears to be a solid release.
Naturally, CyanogenMod is not the only customized distribution available
for Android phones; a number of alternatives are available. These include
Kang-o-rama
(2.2-based with claimed high speed and good battery life),
AsimROM
(2.2-based with some theme work),
LeoFroYo
(2.2-based with the nice feature that the Facebook and Twitter applications
have been made removable),
MoDaCo
(2.2, "designed to feel as far as possible like a stock ROM, with
optimisations, tweaks and complimentary additions that enhance the user
experience"), and many more. There are also projects creating
specialized kernels, attempting to enable the FM radio said to be built
into the Nexus One, and so on. In summary: there's no lack of
Android distributions for those who wish to play with them. At least, if
one has a Nexus One; there appear to be fewer developers targeting other
handsets.
A word of caution is in order, though. CyanogenMod appears to be developed
with a fair amount of care and should be solid, but there are no
guarantees, and some releases are better than others. The other projects
seem to come and go; the perceived risk level with them may be higher. As
with any computer, good backups are important. One other thing to keep in
mind is this: someday, somebody will certainly yield to the temptation to
build a release with some sort of back door or other malware built into
it; for all we know this may have already happened. A handset running this
software would be thoroughly compromised at the
most fundamental level, and this situation could persist for some time;
there are few people looking at the code being shipped in these
distributions. Until such a time as we have an ecosystem of
trusted distributors for handsets, one must proceed with caution and care.
These concerns reflect the fact that the development of real distributions
for handsets has really just begun. Even so, we can begin to see the
potential for where things may go: we have developers updating device
firmware with versions which are more featureful, more power-efficient, and
more tuned to the needs of specific users. If all goes well, we can look
forward to a future with increasingly open handsets and a wider choice of
operating systems to run on those handsets. Interesting things will
certainly come of it.
Comments (40 posted)
Like most community-run events, the second SouthEast LinuxFest (SELF)
featured the standard set of positive talks on Linux and open source. It
also featured a somewhat more controversial talk about failures to get some
features merged into the Linux kernel by Ryan "icculus" Gordon.
The talk was delivered without slides, and Gordon started by admitting
the talk was biased — unlikely to win many friends in the kernel
community. The focus of the talk, which was not terribly obvious from the
schedule,
was on several high-profile attempts to add new features into the Linux
kernel that failed, due — according to Gordon — to kernel
politics or personality conflicts. He said he had spoken to a number of
kernel developers who experienced failure, but few were willing to go "on
the record," for the talk. As examples he used his own experiences, Eric
S. Raymond's CML2, Con
Kolivas's failure
with the Completely Fair Scheduler, along with Hans Reiser and the Reiser4 filesystem.
Gordon is behind icculus.org, and says
that he spends most of his time porting video games to Linux. In the course
of working with Linux, Gordon says that he discovered that "Linux
sucks at a lot of important tasks." He noted that Apple has solved a
number of the things that Linux does poorly (though he ceded that Mac OS X also does many things badly), and that Linux developers should be "stealing some stuff" from Apple. Gordon pointed to the Time Machine backups and universal binaries that allow users to install software on PowerPC or Intel-based machines and have them "just work."
Gordon wasn't using universal binaries as an idle example. Gordon attempted to solve that problem himself by creating FatELF, a universal binary format for Linux. He described the process of creating the patch, sending it to the kernel list for acceptance, and expecting success. Instead of succeeding, Gordon said it was a "spectacular failure."
The problem? Gordon says that he misinterpreted a response from Alan Cox as being in favor of the patch, when actually he was against it. According to Gordon, "the worst thing you can do is have a kernel maintainer tell you what they don't like and ignore it. Once Alan Cox was openly hostile, people came out of the woodwork." He then drew an analogy between the kernel community and the movie Mean Girls, likening Cox to one of the popular girls and other community members as following Cox's example. Gordon says that the kernel community has a "herd mentality" and that "you can't move the kernel maintainers."
After recounting his own experience with FatELF, Gordon talked about
Raymond and the problems getting CML2 — a replacement for the kernel
build system — into the Linux kernel. Gordon highlighted the fact
that CML2 going into the kernel seemed a foregone conclusion to Raymond,
and that it was originally supposed to go into the 2.5.1 kernel. He also
talked at length about Raymond and Linus Torvalds's discussions about CML2
and Torvalds's general agreement that CML2 could go into the kernel.
Gordon said that the kernel community was hostile towards Python and
Raymond, but little was mentioned about Raymond's sometimes caustic
responses to the kernel developers. Gordon also mentioned a little, but
very little, of the technical problems of CML2,
such as 30-second wait time to compile its kernel-rules.cml into a binary
format for use with the cmlconfigure program. He did discuss the
— perhaps not entirely reasonable — objection that CML2
consisted of a major change to the kernel where the maintainers typically
prefer a set of small incremental changes. He wondered: how does one implement a new configuration language as an incremental change?
One might question the wisdom of using Hans Reiser as an example of the
kernel development process gone wrong, as Gordon did. Reiser had a
contentious relationship with the kernel community to begin with, and the
fact that it was necessary to cite correspondence from Reiser's cell tends
to undermine his credibility. But Gordon is to be credited with, at least, being thorough in interviewing his sources. Gordon showed several letters from Reiser gathered over months of correspondence about the failure to get Reiser4 into the mainline kernel.
He described the problems that Reiser had in attempting to get Reiser4
into the kernel. In an unfortunate analogy, he said that Reiser failed to
get a "fair trial" from the kernel community in considering Reiser4. Gordon
also hinted that corporate interests may have sabotaged Reiser4 from being
adapted into mainline — a longstanding
contention of Reiser's — because of conflicting interests on behalf of the
maintainers, though he cited no evidence for it. Gordon painted the kernel community as abusive towards Reiser, but omitted any mention that Reiser could also be caustic in return. Certainly, Gordon's point that the FAQ on KernelNewbies is unnecessarily personal is well-taken.
But little was said about any of the real technical problems with
Reiser4. Personality issues aside, real technical problems stood
(and still stand) in the way of merging Reiser4 into the mainline kernel.
Due to time, Gordon rushed through the discussion of Kolivas's failure
to get the Completely Fair Scheduler into the kernel. He characterized
Kolivas's treatment as "rude," and suggested that it was
particularly bad treatment that Kolivas's ideas made it into the kernel but his actual code didn't.
Gordon ended his talk by throwing out a few ideas to improve the
kernel development process. He suggested that the audience, and other
Linux users, join the kernel mailing list and lobby for features that
they want. He also challenged the idea that developers should have a
"thick skin" to participate in kernel development, and suggested that
the atmosphere of lkml needs to improve.
Despite the focus on the "spectacular failures," Gordon did
acknowledge that this was a sporadic problem at worst — not a
systemic failure. He also took great pains to say, both during and after
the talk, that everyone he spoke with held Andrew Morton in the highest regard. Gordon said that developers should "study Andrew Morton" with great intensity.
The talk was interesting because it provides a different view of the kernel development process than is normally given to general audiences. The kernel development community, and larger FOSS development community, has an understanding of the development process as imperfect. It is well-known that it can be political and personal, as Torvalds himself pointed out in response to Kolivas's departure. The SELF audience, by and large, was composed of Linux enthusiasts that are far removed from the development process. It will be interesting to see if any of the audience decides to take Gordon's advice and begin lobbying the kernel list.
Kernel development is often held up as a shining example of the open source development process to larger audiences. Gordon's talk presented a narrative that demonstrates the less pleasant side of kernel hacking, and the disappointment that developers feel when their contributions are rejected. It might have been more valuable by presenting a less biased view, but it is a story that should be heard.
Comments (157 posted)
Page editor: Jonathan Corbet
Inside this week's LWN.net Weekly Edition
- Security: Striking back against web attackers; New vulnerabilities in cups, firefox, moodle, tiff,...
- Kernel: Wakeup events; LSM stacking; Btrfs: broken by design?; Concurrency-managed workqueues.
- Distributions: Poseidon Linux 3.2; AV Linux 4.0; openSUSE 11.3 RC1; openSUSE strategy proposals; elementary OS.
- Development: Sphinx 1.0; F-spot, GParted, Membase, Tahoe, VLC...
- Announcements: FSF against ACTA; OIN Associate Member Program; IFOSSLR 2.1 available; Mandriva saved by investors; OpenOffice at the crossroads; The Party of Gno; more on SCO...
Next page:
Security>>