Article in Mobile Future, Mobile Operating Systems, Companies, General, Mobile, Programmable Web, Tech Industry, Technology, Origins categories.
Android and Open Source: It’s Complicated
“Open source” is one of those positively-charged terms touted by producers in order to assure the public of their social responsibility and admirable intentions. While…
“Open source” is one of those positively-charged terms touted by producers in order to assure the public of their social responsibility and admirable intentions. While many of us non-developers swallow the concept straight, more erudite techies - like iconic developer and free-software champion Richard Stallman, for example - tend to take the term with a grain of salt.
Yesterday, in The Guardian, Stallman challenged the “openness” of the supposedly open-source Android platform, drawing a clear distinction between software that is “open” and software that is “free.” “The idea of ‘open source’ focuses on how to develop code,” Stallman explains. “It is a different current of thought whose principal value is code quality rather than freedom."
Despite being thoroughly packed with technical jargon, Stallman’s article does a decent job of explaining the reasons why the Android platform, a supposed paragon of open source technology, does not quite jive the with liberal connotations of the phrase. Any good engineer knows that taking things apart is the best way to understand how they work. In this vein, we’ve decided to delve into the Android platform a little in order to better appreciate Stallman’s gripe.
Anatomy of an Android
Let’s start at the Linux kernel. The Linux kernel was developed by Finnish computer science student Linus Torvalds in 1991. It is the foundation of the contemporary Linux operating system. The Linux kernel was released under the Gnu General Public License (GPL), the most widely used licensing agreement to employ copyleft standards. Copyleft is a form of licensing, which (unlike copyright) permits the work to be shared freely and requires all altered or extended versions of the work to be bound under the same license. The GPL was originally written by Stallman, who founded the Gnu Project in 1981. The Gnu Project promotes Stallman’s philosophy that software development is based on four essential freedoms:
- freedom to run a program for any purpose,
- freedom to study the mechanics of the program and modify it,
- freedom to redistribute copies,
- freedom to improve and change modified versions for public use.
With all these free-software standards backing Linux, the basis of the Android operating system, what could possibly be the problem, Stallman? Turns out, what is commonly referred to as the Linux operating system is actually a GNU/Linux hybrid. The Gnu Project strove throughout the 1980s to develop a computer operating system based entirely on free software. By the early 1990s it had developed a nearly complete operating system that lacked base-level capabilities such as kernel, device drivers, system-level utilities, and daemons. Enter the Linux kernel. It was a match made in heaven - computer operating systems began running Gnu components on top of the Linux kernel, and voila, Gnu/Linux was born. Except the name didn’t really stick, and today “Linux” often refers to operating systems both with and without Gnu software.
Which brings us back to Android. According to Stallman, Android’s Linux is an essentially Gnu-less Linux. Android uses the Linux kernel, which is still held to the GPL free-software standards; however, many of the free Gnu components are missing. The non-Linux Android components are licensed under Apache 2.0, which allows users to modify and distribute software, but does not require that modified versions be released under the same license. Therefore, though Google (Android’s parent company) complied with Apache by releasing the full source code for the original Android, it is under no obligation to distribute newer versions of Android under the same free-software license. In fact, Google has so far withheld the source codes for Android version 3 Honeycomb, which debuted earlier this year. Essentially, concludes Stallman, “Android 3, apart from Linux, is non-free software, pure and simple.”
Aside from licensing issues, Stallman complains, Android also contains proprietary (non-free) libraries, applications, and firmware that limit the development potential of any source code that is shared. On the other hand, there’s Apple, which has been far more stingy in regards to its operating systems. OS X (built on the Darwin operating system) is not quite as “free” as Android might claim to be. Only part of the code was released under the Apple Public Source License, which is only grudgingly recognized as a free software license by the Free Software Foundation.
Even when put in layman’s terms, these issues are infinitely complicated, but, like many things in life, it all comes back to freedom versus control. While many assume that open means free and free means open, these are not always interchangeable.