Amazon code release irrelevant, Kindle is still closed

Amazon recently released the source code of some of the components that are …

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.

17 Reader Comments

Well, I do agree it would be great if the Kindle were open, but I do not think it is the tragedy you make it out to be. Open hardware is a competitive advantage for those companies that choose to offer it. PC and netbooks pretty much have to be open to be competitive, but even among consumer devices it is becoming common. There are several ebook readers on the market, for instance, which allow the installation of OpenInkpot, a free open-source linux distro designed for such devices. If that is an important feature for you, do your homework.

I agree with Linus in that one of the great things about open source software is that it allows people to build great products, including some great proprietary products, both hardware and software. Why create impediments to that process? We do not require that proprietary software running along side open source be made open, why treat hardware differently?

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.

Where does the screensaver hack fit into this? You can get a hacked firmware that allows you to replace the built-in screensavers with your own and it is in the form of new firmware. You download the firmware, transfer it to the Kindle via USB, and then flash the device.

Originally posted by Thraxen:Where does the screensaver hack fit into this? You can get a hacked firmware that allows you to replace the built-in screensavers with your own and it is in the form of new firmware. You download the firmware, transfer it to the Kindle via USB, and then flash the device.

To do things like that you dont need source, that is replacing a section of data inside the firmware. This is how you get new skins on many devices that are not open source.

The four freedoms that the FSF promotes are very much intact even here, you still have every right to:

1) run the open source software for any purpose2) study and adapt the code3) distribute it 4) take the open source code they used and modify it, and distribute modifications

Nothing is stopping someone from taking the open source parts of the code and use them on another device, that is all the license guarantees, it doesn't guarantee you the right to use hardware that comes with GPL code on it, for whatever you want to use it for or to "modify in place".

The GPL is working perfectly fine here, take the code and beat them, make something better

Originally posted by Drazick:What's the format of Kindle's documents?Are they PDF's?

Only the newest Kindles support PDFs, Amazon has their own format.

quote:

Originally posted by mrsteveman1:The four freedoms that the FSF promotes are very much intact even here, you still have every right to:

1) run the open source software for any purpose2) study and adapt the code3) distribute it 4) take the open source code they used and modify it, and distribute modifications

Nothing is stopping someone from taking the open source parts of the code and use them on another device, that is all the license guarantees, it doesn't guarantee you the right to use hardware that comes with GPL code on it, for whatever you want to use it for or to "modify in place".

The GPL is working perfectly fine here, take the code and beat them, make something better

I thought that Stallman was trying to make the next version of the GPL cover hardware locks such as this and TiVo

The original Kindle didn't support PDF solely because it would be a bad user experience to try to display a fixed-layout document on such a small, slow screen. The DX supports PDF because the screen is big enough that most PDFs will be readable.

Kindle's native format is actually two different formats, one being Mobipocket (which is very common) and one called Topaz (which has a very specific business case for existing and is about making more legacy content available and is specifically NOT about vendor lock-in, but I will not say any more about it).

But... as far as I know, PDF *is* still a proprietary format, ie. Adobe still owns it, in a copyright, patent and trademark sense.

It is still an open format, and freely usable (at least for non-commercial products -- I'm not up on the details). Thus there are innumerable PDF readers available (usually for free download) on both Linux and Windows, and PDF creators/converters too. OpenOffice, for example, can export as PDF.

Does anyone recall the exact basis on which Adobe refused to let MS incorporate "export-to-PDF" into MS Office?

PDF is now an ISO standard, meaning anyone doesn't have to ask permission from Adobe to create/read PDF document.

About Adobe preventing Microsoft from having PDF export feature in Office, that doesn't happen anymore after ISO certification. Office 2007 SP2 now have PDF export feature amongst other things, and I believe the next version of Office will have this feature built-in. Adobe cannot stop Microsoft from doing so anymore (or else ISO will revoke their certification). Blackmailing Adobe by threatening to make XPS an ECMA/ISO standard works very well indeed with Microsoft.

While Amazon may not be open-sourcing the entire Kindle, what they've done is useful to those of us that create/use embedded Linux. Often the tweaks made are little subtle things that make life easier. It's nice to see what little improvements others like Amazon implement as it may be something you never thought of or it may fix an annoyance or a product limitation.

Example: we modified the init process to tell other apps not just that the computer is shutting down, but how (reboot, poweroff, shutdown, other). Very simple, but missing feature.

I think Ryan Paul has a radical and incorrect view of the purpose of open source. It is certainly not to encourage competition or help competitors improve (although that can be a nice side effect) Think of engineering plans for a bridge, after the contract for construction is made, plans are made available to the public. It has to be made available so that inspectors and engineers can confirm the safety and reliability of said bridge and fix unforeseen problems- longterm maintainence. Notice Rockbox and DD-WRT are not built by hardware competitors, and add functionality to products- to say they are "re-purposed" is a stretch.

If Amazon or Sony wanted to go anywhere near conventional FOSS, they would have built a NetPC with the e-paper display, not a device from scratch. No the Kindle is not FOSS, but I don't think that is legitimate criticism. Guilty of minor marketing hype, maybe. Not exactly a high crime. BTW PDF was pushed by Adobe in part because PostScript (including NeXT Display PostScript) was too easy for competitors to copy and/or re-implement