The Way of the great learning involves manifesting virtue, renovating the people, and abiding by the highest good.

2009年1月5日星期一

Stallman On the State of Free Software 25 Years On


"What's the state of free software, 25 years after GNU's birth? TechRadar has an interview with Richard Stallman to find out. Stallman thinks free software is making good progress: 'Nowadays hardware developers are also increasingly likely to publish the interface specs so that we can develop free software that works with the hardware. Perhaps we are turning the corner, but we still have a big fight on our hands before all computer users have freedom.' But how many of us actually run an operating system that Richard Stallman would consider free? Many of the more popular GNU/Linux distributions, including Mandriva and Ubuntu, bundle proprietary code with their free software packages. Perhaps free software has reached a large enough install base that companies are happy to use it for their own gain, but aren't quite so willing to make their own commitments to free software development. How important this is to the success of free software depends on how strong your stance is on freedom is."

25 years after Stallman first set the GNU project in motion, what have these ideals achieved, and what can we do to ensure the future of free software? Linux Format spoke to him to find out.

While Linus Torvalds gets most of the plaudits nowadays for the Linux kernel, it was Stallman who originally posted plans for a new, and free, operating system. Free had nothing to do with the cost of the operating system, but with the implicit rights of those who were using the software to do with it exactly as they pleased. "I launched the development of the GNU operating system back in 1983 specifically to make it possible to use a computer without ceding these freedoms and accepting the dominion of the software's developers," he told us.

Those freedoms mean being able to share, edit, copy and add to software without explicit permission from the original author. The oft-repeated mantra of those four essential freedoms, courtesy of Richard Stallman, is as follows:

1. To run the program as you wish.
2. To study the source code, and change it so the program does what you wish.
3. To redistribute exact copies when you wish.
4. To distribute copies of your modified versions, when you wish.

As a programmer, Stallman was in a fortunate position. He was able to put code behind his idea by making the first offering to the GNU operating system himself.

He created GNU Emacs, the GNU Debugger (GDB) and the GNU Compiler Collection (GCC), and to protect his work from commercial exploitation, he penned the first version of the GNU General Public Licence in 1989. This covered the usage rights of the software he'd created under the umbrella of the GNU project, and the GPL has gone on to become the most popular free software licence in use by developers today – at least if the licences used by the top 100 projects on SourceForge are anything to go by. But developer popularity is only one side of the coin.

Running free software as a user doesn't have the same requirement for freedom, as most users aren't technical enough to care about access to the source code. They're far more likely to care about the cost and functionality of free software. But do any of those users know or even care about the philosophy of free software that drives the development of those applications, and is the issue important?

Healthy crossover

Michael Meeks, Novell engineer and OpenOffice.org developer, thinks there's never been a problem. "Free software has had to run on proprietary platforms from the beginning. That's a given." he told us. "Hence the 'system exception' in the GPL. You can even link GPL software to proprietary software of its part of the underlying OS (eg Win32)."

But those terms in the GPL licence were agreed before the free software community had a truly viable alternative operating system. "Whether that is a good thing now that we have fully free systems like GNU/Linux or even GNU/OpenSolaris is an interesting question," explains Michael. "I personally think so – but I'd like to hope that people in our community would show leadership and set a good example by using fully free systems."

One of the most problematic uses for the GPL over the last few years was with Tivo, a subscription-only television recorder built around Linux. The problem was that despite being built on Linux, Tivo included hardware technology that blocked people from making their own modifications to the system, a process that has since become known as Tivoisation.Tivoisation goes directly against the original intent of free software, even if it doesn't go against the word of the GPL. In 2006, this issue split the free software community into two groups: those who believed that Tivo could, and should, do anything it liked as long as it followed the GPL, and those that believed Tivo was exploiting a loophole in the original licence. Linus Torvalds felt there was nothing wrong with what the Tivo was doing, and kernel developer Greg Kroah-Hartman agrees.

"How could following the letter of the free software licence be a 'bad thing'?" he asked us (rhetorically). "You do realise that Tivo asked the FSF if what they were proposing to do with the BIOS key lock was going to be OK, and the FSF said that it was. That happened many years ago. So how could Tivo be doing anything 'wrong' here, since they are doing everything the FSF and the owners of the software who they are using asked them to do?"

The question was tackled in the recently published version 3 of the GPL, which prohibits technical evasion of Stallman's original freedoms when devices are sold to consumers. But despite broadly agreeing with the changes (and being involved with some of the Tivoisation amendments), Linus Torvalds has so far declined to switch the kernel to version GPL version 3.

This means that companies like Tivo can continue to use a modern Linux kernel in their products. It seems that the GPL has split the free software community into those who think of it as a model for improved software development, and those that see it as a flag for freedom.

Stallman thinks the issues surrounding freedom have been divisive. "Free software does not imply any particular development model. Our concern is not how a program was developed, but with our freedom (and yours) in using it as we wish. In 1998, people of the free software community who did not agree with our philosophy of freedom and social solidarity coined the term 'open source' as a way to avoid raising these ethical issues. Instead they promote a development model which is said to usually result in software that is better in a technical sense. If freedom brings us that benefit, that's nice, but I think freedom is essential anyway."

Why does it matter?

When we asked asked Stallman whether non-technical users should care about his free software philosophy, he answered by comparing your computer to your house. "If you are not a programmer, you won't know how to exercise freedom 1 directly by studying and changing the source code." he said. "Likewise, if you don't know carpentry you won't know how to exercise the freedom to change the walls in your house or office. Nonetheless these freedoms are still very useful, because you can exercise these freedoms indirectly by paying professionals to do the work for you."

This is a similar line taken by Stephen Fry in his recent video to commemorate the 25th anniversary of the GNU project. In this video, he talks about the what free software has achieved and what it has the potential to achieve. He does this, with apparently no irony, while sat next to a MacBook Air.He likens free software to the household plumbing, where the the home owner may not have the knowhow to change or fix the plumbing themselves, but that doesn't stop them from getting someone else to do the job. What started off as a personal experiment in freedom has taken over the collective imagination of the whole internet, and free software can now be found on even the most stalwart proponents of proprietary software.

But that doesn't necessarily mean that free software has been a success. If success is judged by the number of people using free software, then the answer has to be undoubtedly yes. But if success is judged by the amount of freedom we enjoy while using our computers, then the answer isn't quite so easy, and that's because it's a difficult idea to communicate. Users are far more likely to understand and appreciate free cost than they are their freedom to mess around with the source code.

One positive side to the popularity of free software is official vendor support for GNU/Linux. A higher profile means more companies taking the operating system seriously. And even if companies like Canon don't offer any official support, they still have to acknowledge the demand. "We've been getting this kind of support from hardware vendors for many years now, way before Firefox was ever created, or even Mozilla for that matter," says Greg Kroah-Hartman. "So it's not a new thing at all."

And Richard Stallman thinks free software is making good progress too, despite the lack any significant dent in Microsoft's market share. "Nowadays hardware developers are also increasingly likely to publish the interface specs so that we can develop free software that works with the hardware. Perhaps we are turning the corner, but we still have a big fight on our hands before all computer users have freedom."

Everybody needs good neighbours

Kroah-Hartman made another point in his opening keynote for the Linux Plumbers Conference in Portland, September 2008. The highest-profile Linux distributions aren't necessarily the biggest contributors to Linux kernel development. He used Canonical as an example. Despite the obvious success of Ubuntu and the rapid expansion of the company behind it, there have been comparatively few Canonical-sponsored patches to the Linux kernel.

Over the last three years, there have been just 100, which according to Greg puts Canonical in 79th place as a company, and 195th place as an individual contributor, way behind the likes of Red Hat, Novell and Mandriva. Canonical has obviously done a lot of good for the acceptance of GNU/Linux and free software, but it hasn't made a corresponding commitment to kernel development.

This could mean that free software has reached a large enough install base that companies are happy to use it for their own gain, but aren't quite so willing to make their own commitments to free software development. How important this is to the success of free software depends on how strong your stance is on freedom.

Search Google for 'free software' and the top result is a site dedicated to mostly proprietary software that's free to try, but often crippled by shareware licensing or demo restrictions. Ask the author of one of those applications for the source code, and you're likely to get a rude response.The idea of freedom doesn't seem to have caught on quite so well in the world of Windows in particular. Even the programmers of small utilities like a desktop shadow effect, or a virtual cube, expect some financial recompense before they'll unlock the full features version of their software. If you've been stuck in the land of GNU/Linux for a while, it all comes as quite a shock.

If you want free software, you often find yourself looking for proper GPL applications, and these are going to be the same you use on your favourite operating system. Whether their availability on other operating systems is a good thing or a bad thing has always been a contentious issue for free software advocates.

Freedom isn't free

On the one hand, the more people using free software, the more people there will be who are interested by its principles and try switching to ever more free alternatives. On the other hand, there are plenty of people whose only concern is that the software is functional and saves them a few pounds. The latter tendency isn't going to further the cause, but it's not exactly harming it either.

How many of us actually run an operating system that Richard Stallman would consider free? Many of the more popular GNU/ Linux distributions, including Mandriva and Ubuntu, bundle proprietary code with their free software packages. Nvidia's graphics drivers and Adobe's Flash are the two worst offenders. And despite many attempts over the years, neither of these technologies have been recreated under a free software licence.

The biggest problem is that the both Adobe and Nvidia are reluctant to give away their intellectual property. Nvidia undoubtedly feels, for example, that its competitors would get some insight into Nvidia hardware and use this to their advantage. Nvidia engineers have also stated in the past that their proprietary driver include licenced technology that simply can't be opened. But similar issues haven't stopped Sun Microsystems from opening the vastly larger Java, one of the more successful open source stories.

When it comes to the future, there's still a lot of work to be done. Free software has been incredibly successful in getting thousands of applications built, distributed and used. But it hasn't done such a great job of broadcasting the message that made the building the code possible.

This means that if you want to help free software in the future, you can help by spreading the message. What seems obvious is that a philosophy that was originally intended for software development has broadened into a political idea with a global ambition.

This is especially true of Richard Stallman, who has become a full-time activist, where software freedom is only one aspect of the ideas he likes to evangelise. This is reflected in how he'd like to see free software succeeding in the future: "In the long run, whether we keep or lose our freedom depends on our values.," explained Richard.

"That's true in computing just as in every other area of life. If you value freedom enough to make a small sacrifice for it, you can reject proprietary software and insist on free software. (Nowadays a large sacrifice, such as writing an operating system, is generally not required because we have done it already.) But if you won't accept an inconvenience to save your freedom, you're headed for the gutter."

Four alternatives to the GPL

Apache Licence 1 & 2
The main difference between these licences and the GPL is that they allow for the development of free software as well as proprietary software. Modified versions of software released under the Apache Licence don't need to inherit the same licence, and the developer doesn't have to release the source code.

BSD-style Licences
These licences place very few restrictions on how the code can be used, and includes proprietary and commercial use without necessarily making any commitment back to the original project.

LGPL
The Lesser General Public Licence permits developers to link to proprietary code against LGPL-licensed code. This allows proprietary software to be developed using LGPL code, but without the same restrictions that the GPL places on how that code can be used.

Mozilla Public Licence
Primarily used by the Mozilla foundation for its software. MPL can be combined with proprietary code and is judged incompatible with the GPL by the Free Software Foundation. As a result, Firefox has subsequently been relicensed to include GPL and LGPL.

-------------------------------------------------------------------------------------------------------

First published in Linux Format, Issue 114

Now read our interviews with Samba's Jeremy Allison and Former Fedora Project Leader Max Spevack

Sign up for the free weekly TechRadar newsletter
Get tech news delivered straight to your inbox. Register for the free TechRadar newsletter and stay on top of the week's biggest stories and product releases. Sign up at http://www.techradar.com/register

没有评论: