Amazon attracted considerable media attention this week for publishing the source code of some of the components that are used in its popular Kindle reading device. The hype generated by the source release is mystifying and largely undeserved. It seems to be a result of widespread misconceptions about the scope and nature of the code disclosure.

Contrary to the ambiguous headlines declaring that Amazon is opening the Kindle, the reality is that Amazon has not released a significant quantity of new code and is not empowering competitors to replicate their successful product. Amazon has been publishing the source code of various Kindle components since 2007 in order to fulfill its licensing obligations.

Like many new consumer electronic devices, the Kindle's operating system is built on top of the Linux kernel and leverages numerous libraries and frameworks that are part of the Linux platform ecosystem. These components are distributed by their original creators under open source licenses that broadly permit recipients to study, modify, and redistribute the source code. The Linux kernel itself is distributed under version 2 of GNU's General Public License (GPL).

One of the defining characteristics of the GPL is a share-alike provision which requires recipients to make publicly-distributed derivatives available under the same terms. The function of that mandatory reciprocity requirement, which is often referred to as "copyleft," is to guarantee that the freedoms granted by the original developer remain intact and are transfered to recipients of modified versions of the code. Not all licenses share this characteristic. There are some, such as the BSD license, that are more permissive and allow third-party developers to build proprietary derivatives.

When a hardware maker ships a product that contains GPL-licensed source code, the company has to inform users of their rights under the GPL and make the source code available. To inform users of their rights, most consumer electronics companies simply include a printed copy of the GPL license itself in the product's packaging alongside warranty pamphlets, safety notices, and other detritus that typically gets stuffed into the box. To make the source code available, companies will either physically mail users a CD on request or they will publish downloadable code archives on a website.

It's important to understand that companies can (and usually do) make products that have both proprietary and open source components. Including a GPL-licensed program or building your platform on the Linux kernel doesn't mean that you have to open or publish the source code of all the other programs that you ship on your device. In the vast majority of cases where hardware makers use an open source kernel and open source frameworks, the parts that differentiate the device remain proprietary. This allows companies to collaborate on shared infrastructure but maintain a competitive advantage with the parts that really matter to the user.

Amazon's Kindle fits entirely into this model. In addition to the Linux kernel, the underlying Kindle software platform uses other existing open source software components such as the GStreamer multimedia library and the BusyBox shell. In conformance with the requirements of the licenses, Amazon is merely publishing its own modified versions of existing open source components.

Other companies obviously do this too, though with very little fanfare. You can find similar code disclosures for the open source components that are included in the Palm Pre, Roku set-top box, and TiVo DVR. The components of the software that provide the core user experience are not published and remain proprietary. As such, the source code that they publish cannot be used to replicate the unique functionality of their products.

There is nothing especially novel about doing this and certainly nothing that is interesting enough to warrant the buzz that surrounded Amazon's publication of its Kindle source code. It's worth noting that Amazon has already been publishing its Kindle source code since 2007 and the most recent disclosure was simply the updated code for the Kindle DX and new versions of the Kindle software platform.

Part of the confusion about the code release comes from the fact that Amazon CEO Jeff Bezos recently dropped some hints about the possibility of supporting other e-book formats on the Kindle and allowing more devices to read the Kindle e-book format. Some bloggers appear to be conflating this news with the source code release and are wrongly assuming that Amazon is offering its entire Kindle platform up for competitors to use.

Although Amazon doesn't share the most important parts of its software and isn't giving competitors the ability to make a copy-and-paste Kindle clone, the source that it has published is not entirely without value. Open source developers can examine it and look for improvements that might be worth integrating back into the upstream versions. The kernel source code can also be instructive in some ways, as it provides insight into some of the design decisions behind the Kindle. For example, the source code can be examined to discover some of the tricks that Amazon uses to conserve energy or accommodate the device's unusual hardware, including the e-ink display.

The difference between open source and an open device

With some hardware devices, developers can take the underlying source code that is used to power the product and they can build their own open source alternatives to the proprietary parts. This approach enables developers to build a complete drop-in replacement for the software that ships with the device, potentially even making it possible to deliver richer capabilities and more features than the software that was originally shipped by the vendor. An example of this phenomenon in action is the open source Rockbox firmware for hackable portable media players. Another example is DD-WRT, custom firmware that can be loaded on some open Linux-based routers to boost their functionality.

Tragically, a growing number of hardware makers are using code signing and other technical measures to prevent users from swapping out the software that comes with a device. The Kindle is sadly one such device. Even though the source code of the Kindle's kernel is available, it's useless as far as Kindle enhancement is concerned because Amazon blocks installation of custom versions on the product. This means that the Kindle is a fundamentally closed device despite its use of some open source software.

This trend of blocking users from installing custom software on Linux devices is deeply troubling to some members of the open source software community because it arguably prevents users from exercising their GPL rights. It's referred to as "Tivoization" because one of the most prominent examples is the TiVo DVR. The FSF views Tivoization as exploitation of a loophole in the GPL. The FSF has attempted to close the loophole by prohibiting the practice in version 3 of the GPL.

The GPLv3 anti-Tivoization language is considered highly controversial, however, and is strongly opposed by critics of the GPLv3 in the open source software community. Among those critics is Linus Torvalds himself, the creator and lead developer of the Linux kernel. He argues that licenses should not govern what can be done with hardware and that there are legitimate reasons to want to block code tampering. The Linux kernel is licensed under version 2 of the GPL, which means that it can be used freely on closed devices.

The Kindle's closed nature makes it difficult for inventive third-party developers to repurpose the device in interesting ways or build alternate reader software from scratch with a different user interface and more features. Unlike a conventional desktop computer, which can be reformatted and loaded with completely different software, the capabilities of the Kindle and other closed devices are controlled entirely by the companies that make them. This degrades the freedom of end users and detracts from the value of the product.

The breathless proclamations this week from bloggers and Twitter users claiming that Amazon has "opened" the Kindle by releasing the source are simply untrue. Amazon is complying with the GPL like every other company that makes a product with the Linux kernel. The product's most significant software components are still proprietary and the device itself is still completely closed and hostile to modification.