Monday, November 19, 2007

Kindle Powered by Linux

My Amazon Kindle is not yet here, but I came across the device's source code notice, which reveals the book reader's OS: The Amazon Kindle is powered by Linux, specifically a 2.6.10 kernel and an assortment of familiar user-space bits1.

On initial study, nothing particularly brow-raising jumps out among the kernel changes: some driver modifications, XIP on MTD, a backport of kstrdup and kzalloc, squashfs, Samsung's RFS, and a procfs interface for forcing the reset of TCP connections.

Most notable is a power-saving infrastructure named fpow, which provides device-level power management and aggressive system suspend functionality that is responsible for the device's excellent battery life. The architecture, which is based around an Intel PXA250 chip, is alternatingly labeled Fiona and Lab126 in the source. The former is the codename for the Kindle as a whole (some amazon.com URLs leak the name). The latter, interestingly, is apparently an Amazon subsidiary that is "an innovative consumer-focused startup company" who "design[s] and develop[s] easy-to-use, highly integrated consumer products to serve Amazon customers" including the Kindle.

I generated a diff against 2.6.10.

If curious, Kindle users can download the complete tarball.

1 Source posted includes alsa-lib-1.0.6, alsa-utils-1.0.6, binutils-2.16.1, bsdiff-4.3, busybox-1.01, bzip2-1.0.3, dosfstools-2.11, e2fsprogs-1.38, freetype-2.1.10, gcc-3.4.2, jpeg-6b, libpng-1.2.8, linux-2.6.10-lab126, module-init-tools-3.1, ncurses-5.4, ppp-2.4.4b1, procps-3.2.7, taglib-1.4, u-boot-1.1.2, uClibc-0.9.27, util-linux-2.12, and zlib-1.2.3.