LWN.net Logo

LWN.net Weekly Edition for June 24, 2010

Freedom and convenience

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)

A look at CyanogenMod 5.0.8

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:

    [ADW.Launcher]
  • 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)

SELF: Anatomy of an (alleged) failure

June 23, 2010

This article was contributed by Joe 'Zonker' Brockmeier.

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.

[Ryan 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>>

Copyright © 2010, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds