Linux and the politics of free

I’d like to end these episodes on Linux with a look at the philosophy behind it, well more particularly, the philosophy behind the free and open source software (FOSS) movement.

Tux the Linux mascot


I could have begun this series with the philosophy but thought it better to cover the practical benefits of FOSS first, then wrap up with the philosophy, as well as the politics. Yes! FOSS also is political, broadly speaking, not party political. It’s very much about freedom of its developers and users from proprietary control. FOSS does not have to be free-of-charge (FoC), and some providers do charge but thankfully, most FOSS software also is FoC. Let’s first take a look at software, its source code and so on.


Source code
Much like even the best  music player is useless without music on CD or in digital form to play on them, likewise computers (the hardware) are pretty useless without programs (the software) which direct them to perform tasks in step by step fashion at very fast speed.

Computer programs are written as a series of lines of code in human-intelligible script, such as in Basic, C, C++, COBOL, Pascal, Fortran, Assembler, Visual Basic and other programming languages, according to certain strict rules of syntax. In complex programs, blocks of code identified by labels or as sub-routines to the main body of the program, whilst professional programming practice also calls for programmers to add annotations to describe what the codes do so other programmers can understand what the code is mean’t to do and be able to debug or enhance them later, especially after the earlier programmers have left the company.

These script-based lines of code which are referred to as the source code but computers cannot execute source code unless they are first converted into ones and zeros which computers can execute using either a compiler or an interpreter.

Running source code through an interpreter is great for learning programming, since it provides immediate feedback and lets the programmer easily see the bugs in their code or program logic and to immediately rectify them. Anyone who’s written and run programs using the Basic interpreter on MS-Dos-based PCs, the Apple II and those early text-based microcomputers will remember how easy and quick it was to amend the Basic script to correct any bugs, save it and run it again, quit eoften several times before the program ran perfectly.

However, running programs in an interpreter is inherently inefficient since they convert each line of code into ones and zeros for the computer to execute, much like two people conducting a dialogue in different languages through a human interpreter.

On the other hand, a compiler converts all the lines of source code into a separate program file of ones and zeroes which the computer can then execute by itself, without having to rely on an interpreter, much like how a book translated from French into English can be read much faster by an English-literate reader.

Executable code


Most executable computer programs we buy or download for free come only in the executable form, whilst their source code is held by the copyright owner as a closely guarded secret, often because they are trade secrets, much like a cake maker who closely guards his secret recipe.

Even the most competent computer programmers find it almost impossible to understand what a whole program does by studying its ones and zeros or binary form, just like how even the most competent chef would have problems determining the exact quantities of ingredients, the mixing and baking process of a cake just by eating it.

So just as a cake maker would need the recipe of a cake, Thus, programmers need its source code to understand what a program does, to make modifications, enhancements or to customise it,

So with open source software, the source code is made available as well, much like how an open-recipe cake would be sold together with its recipe, so you can either bake a similar one for yourself, modify its ingredients or the baking process to better suit your taste. Likewise, having the source code lets programmers understand the function of the program, to be able to modify, improve or customise it, then recompile it to better suit their needs. .

Freedom
In the early days of computing, especially during the early mainframe days, computer vendors gave away the source code with their software with no strings attached. Back then, the hardware alone typically cost millions of dollars and the software was more or less an accessory which came along with it.

So programmers could freely modify and improve the software, which led to a culture sharing their work and resources with each other. This was especially so among scientific, research and academic circles where the culture is to openly share knowledge.

However later in the 1970s and early 80s, computer companies stopped providing the source code and began to require programmers to first seek their permission to make any modifications. Computer hardware had got more compact, whilst the software embodied more share of its value, hence price.

Back in the 1970s, Richard Matthew Stallman, then a computer scientist at the Massachusetts Institute of Technology Artificial Intelligence Lab faced a problem whereby a prototype system laser printer down the hall often jammed but there was no way for users including him to know, so they could walk over and clear the jam.

Richard M Stallman –  by NicoBZH


That was before the days of the PC and hermetically sealed hard disks. The mainframe and minicomputers back then were housed in clean rooms, whilst printers which generated lots of paper dust were generally kept outside.

Those were the days of removable hard disks, where even microscopic sized dust particles would accumulate on the disk surface and on the read/write heads which floated above the disk surface on a microscopically thin layer of air created by the fast-spinning disk, and any dust build-up could cause the head to crash onto the disk surface and damage it, along with the data on it.

Stallman wanted to modify the printing software to alert users that the printer had jammed but he could not find the source code however hard he tried and it’s said that even the developer of that code who’d left his job with the company which provided the printer refused to give him the source code, presumably because he had signed a non-disclosure agreement with the company before he left.

The GNU GPL
Stallman then decided to develop a Unix-like operating system called GNU HURD which was free of such restrictions. In 1983 he announced the GNU Project www.gnu.org and in October 1985, he established the Free Software Foundation www.fsf.org to promote his cause and he also developed a number of widely used software components of GNU, including the original Emacs, the GNU Compiler Collection, the GNU symbolic debugger and various other programs for the GNU OS.

He also was the main author of the GNU General Public License (GNU GPL), which is the most widely used free software license today.

The gist of the GNU GPL is:-
The freedom to use free software without any restriction.
The freedom to study the software and to modify it without restriction.
The freedom to supply copies of the software to others for free or for a fee without restriction.
And, the freedom for programmers to distribute modified copies of the software to others without restriction.

The second freedom – i.e. to study and modify the software requires programmers to have access to its source code, so the software had to also be open source.

The GNU GPL also requires programmers to make the source code of their modified software publicly available for the benefit of the user and other developers. Developers can copyright their software but must also apply a “copyleft” which provides others the same freedoms to do what they want with their software.

It’s like saying, “I hold the rights to this piece of software and I give everyone else the right and freedom to do whatever they want with without restriction, provided they do the same with the same conditions for the benefit of others.”

GNU logo – courtesy Free Art Library


The main objective of the free software ethos and the GNU GPL is to ensure that such software remains forever free and does not end up being copyrighted and subjected to proprietary restrictions.

On the GNU website www.gnu.org, Stallman wrote: “These freedoms are vitally important. They are essential, not just for the individual users’ sake, but for society as a whole because they promote social solidarity—that is, sharing and cooperation. They become even more important as our culture and life activities are increasingly digitised. In a world of digital sounds, images, and words, free software becomes increasingly essential for freedom in general.”

So beside the technical aspects, free software also was a matter of human rights and Stallman has since focused on being an advocate of software freedom worldwide.

Meanwhile, he had earlier had developed a number of widely used software components of GNU, including the original Emacs, the GNU Compiler Collection, the GNU symbolic debugger (gdb), GNU Emacs, and various other programs for the GNU operating system but what remained was the need for a free kernel. The the GNU Project was launched in 1984 to develop the GNU HURD operating system which would be that kernel but until today, they have not produced a stable version.

In September 1991, Linus Torvalds, a computer science student at the University of Helsinki, Finland released Linux version 0.01, the first release of the Linux kernel which he and contributors around the world had been working on. Then with the release of Linux 0.12 in February 1992, Torvalds licensed it under the GNU GPL and the free software movement had the free kernel they wanted, so they adopted it and they insist that people call it GNU/Linux and not just Linux.

Linus Torvalds – courtesy Wikimedia Commons


The split
However, some users and developers of free software began to prefer to refer to it as open source software, supposedly to make it more acceptable to end users, especially businesses which reportedly were  wary of the term “free” which they associated with free-of-charge and believed that free-of-charge software can’t be as good as proprietary software which they had to buy.

So, these developers promoted the benefits of the open source nature of free software as allowing users and developers to modify the software to iron out any bugs or deficiencies or to adapt and customise it right away, instead of having to wait for the next release as with proprietary software.

Also, whilst the GNU GPL requires that all free software distributed or redistributed after modification must also be free according to the terms of the GNU GPL, some developers saw no problem with integrating non-free or even proprietary components with free software for practical reasons, since with the wide variety of hardware platforms and peripherals available in the market with new ones entering each day, there simply aren’t enough device drivers to support them or some free software applications unfortunately are not as good as their proprietary counterparts.

Open Source Initiative
This disagreement led to a split in the free software movement in 1998, with the open source faction breaking off to promote the software as open source. The “Open Source” label was created at a strategy session in Palo Alto, California on 3 February, 1998.

Those present included other luminaries of open source, including Todd Anderson, Chris Peterson of the Foresight Institute, John “maddog” Hall and Larry Augustin – both of Linux International, Sam Ockman of the Silicon Valley Linux User’s Group, Michael Tiemann, and Eric Raymond.

Netscape had invited Raymond to help them to plan to release the source code of their Netscape web browser to the community and the strategy session grew from their realisation that Netscape’s announcement provided them with a precious window of opportunity to get the corporate world to listen to them about the superiority of the open development process.

“The conferees decided it was time to dump the moralising and confrontational attitude that had been associated with ‘free software’ in the past and to sell the idea strictly on the same pragmatic, business-case grounds that had motivated Netscape,” the OSI website says.

Open Source Initiative logo – courtesy Wikimedia Commons


Raymond and others worked on spreading the word over the following week, Torvalds gave it his support, Phil Hughes offered them a voice in the Linux Journal, whilst Stallman initially considered adopting the term but later changed his mind.

At that meeting, the participants voted to promote the use of the term ‘open source’, and agreed to adopt with it the new rhetoric of pragmatism and market-friendliness that Raymond had been developing and the Open Source Initiative (OSI) was founded by Eric Raymond and Bruce Perens towards the end of that month.

It’s objective is to be the steward of the Open Source Definition  (OSD) and the body recognised by the open source community for reviewing and approving licenses as conforming to the 10 terms and conditions of the OSD.

Then on 8th February, 1998, Raymond issued the first public call to the community to begin using the new term “open source.”

The first three terms and conditions of the OSD are somewhat similar to those of the GNU GPL in terms of freedom to use, distribute, modify, redistribute and to make the source code publicly available.

However, a key difference between the OSD and the GNU GPL is in the 9th requirement – i.e. “The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be open-source software.”

To date, there altogether are 69 different open source licenses approved by the Open Source Initiative. They are listed on its website, www.opensource.org and including several company licences such as IBM, Ricoh, Nokia, Sun and even two Microsoft licenses.

However, Stallman objects: “For the free software movement, free software is an ethical imperative, because only free software respects the users’ freedom. By contrast, the philosophy of open source considers issues in terms of how to make software “better”—in a practical sense only. It says that non free software is an inferior solution to the practical problem at hand. For the free software movement, however, non-free software is a social problem, and the solution is to stop using it and move to free software,” Stallman recently wrote.

Different denominations
However, despite their differences in strategy, Stallman and the free software movement don’t regard the Open Source Initiative as enemies but more like a different denomination of a religion, since their different values can lead to similar conclusions but not always.

“Radical groups in the 1960s had a reputation for factionalism: some organisations split because of disagreements on details of strategy, and the two daughter groups treated each other as enemies despite having similar basic goals and values. The right wing made much of this and used it to criticise the entire left,” writes Stallman.

“Some try to disparage the free software movement by comparing our disagreement with open source to the disagreements of those radical groups. They have it backwards. We disagree with the open source camp on the basic goals and values, but their views and ours lead in many cases to the same practical behaviour—such as developing free software.

“As a result, people from the free software movement and the open source camp often work together on practical projects such as software development. It is remarkable that such different philosophical views can so often motivate different people to participate in the same projects. Nonetheless, there are situations where these fundamentally different views lead to very different actions,” he added.

Practically speaking
As desktop Linux user for for about close to five years now, I tend lean towards the open source position.

The free software movement’s insistence that all pieces of software used in a distribution must be free is workable if the software is run on host computers or servers at the back end, since they don’t require the kinds of graphics cards, audio adaptors, WiFi or 3G dongles, scanners and to support a vast range of printers, unlike desktop PCs.

Stallman himself admitted during a talk at University Malaya in 2005 that Linux driver availability for peripherals typically were two years behind those for Windows and whilst he did not elaborate as to why.

Well it’s pretty obvious. Whilst there is plenty of disagreement over the share FOSS has of the desktop OS market, since these software are mostly downloaded for free and not bought, NetMarketShare says that Linux had about 1.28% of the desktop PC market in June 2013, compared to 91,3% for all versions of desktop Windows from 8 to 2000 and 6.95% for all versions of MacOS X 10.

Linux market share – courtesy NetMarketShare


So it is in the interests of any peripheral or device manufacturer to go after the lowest hanging fruit and provide the Windows drivers together with their products, whether on CD or their website. Fewer provide the drivers for Apple Mac and a handful do for Linux and if they do, it’s quite often non-free and perhaps not even open source.

The onus then rests upon the FOSS and Linux developer community to create the drivers for these devices and they too go after the lowest hanging fruit and develop drivers for the most widely used peripherals such as printers, scanners, graphics cards, sound cards, LAN cards, WiFi dongles, 3G modem dongles and so on.

So a rule of thumb can be stated thus: “You can almost always find a Windows driver of any piece of hardware but with Linux, you must find the right hardware to fit the software.”

Fortunately today, you can search sites such as Xsane http://xsane.org/, OpenPrinting http://www.openprinting.org/printers, Linux Wireless LAN support http://linux-wless.passys.nl, The Linux Foundation http://www.linuxfoundation.org, online forums for your respective Linux distribution, device manufacturers’ sites or search Google for it.

Generally, most printers and scanners from Hewlett-Packard, Epson, Canon and Brother are supported, as are WiFi cards and dongles with Atheros and Ralink chipsets, most Huawei and ZTE 3G cellular modems. However, Linux still has little support for synchronisation of smartphones with PCs.

Different meanings of freedom
Whilst the freedoms advocated by the Free Software Movement and enshrined in the GNU GPL are commendable, they tend to overlook the fact that freedom means different things to different users.

For example, most PC users would want to play MP3 music files on them but the Fraunhofer Institute at the University of Hannover has done most of the work on MP3 (MPEG audio layer 3) and owns most of the patents on it, so whilst it’s been accepted as a standard by the ISO (International Organisation of Standards), and often available FoC, MP3 codecs are not free software.

Also, the Fluendo MP3 decoder plug-in to GStreamer which lets it play MP3 files is not itself free software either, even though it can be distributed free-of-charge and many Linux distributions let users download and install it for free. GStreamer is a library for constructing graphs of media-handling components. The applications it supports range from simple Ogg Vorbis playback, audio/video streaming to complex audio (mixing) and video (non-linear editing) processing.

Ogg Vorbis is a completely open, patent-free, open source professional audio encoding and streaming technology and the audio CD rippers which come with Linux distributions such as Ubuntu extract the audio tracks to Ogg rather than MP3 format.

That’s just one example but if we want to watch You Tube videos in the web browser on our PC we’ll need an Adobe Flash plug-in which is proprietary but free-of-charge, whilst some printer and scanner drivers may not be free software either but are necessary accessories for our PC running free or open source software.

At the end of the day, most PC users just want to get their work done as quickly and conveniently as possible or to enjoy their online recreation without hassle and quite frankly, most couldn’t care less as to how they do it but that they can do it and their platform’s OS, codecs, drivers, etc. should let them have the freedom to do what they want, rather than insist that they forsake their freedom for the sake of an ideology which advocates a certain types of freedom.

I believe that’s one of the major reasons why most users prefer Windows and Mac OS, both of which are proprietary and non-free but lets them get most of what they want done.

This isn’t a perfect world and until the day when Linux has substantially more market share and more device manufactures provide Linux drivers for it which are free software, FOSS advocates will have to accept some compromise with non-free software in the interim.

Fortunately, many do, including the Debian Project which develops Debian Linux. It provides only free software on the Debian DVDs for download but after installation, users can obtain non-free components from its online repositories.

I’ll take a break from Linux after this and talk about other market, technology and industry issues, but may come back to FOSS again from time to time.

Happy FOSS computing!




There are no comments

Add yours