You will find Linux inside a wide range of devices today. Yet, it was not intended to be used as an embedded operating system at the beginning. In trying to understand how Linux moved out of the pure PC environment and into the fabric of our technology I have put together the following timeline showing what I consider to be the important milestones. I am aware that it is missing many details, and I would welcome feedback and comments from all who may read this. Either post a comment at the bottom or mail me at "chris dot simmonds at 2net dot co dot uk".
I had better start by defining what I mean by "embedded". I have decided to be fairly inclusive, taking in a combination of single-purpose, non-user-programmable devices (webcam, settop box, robot controller) and resource limited devices (PDA, smart phone, and, at the extreme end, tablet). The common characteristics are
So, with that out of the way, here is the timeline.
Linus releases Linux 0.1 as an open source Unix kernel for IBM PCs
By the time Linux has got to version 1.2 it supports Alpha, i386, mips and sparc architectures. This is important both because it means that the source code is sufficiently modular to be ported to other architectures and because mips processors were becoming popular in low cost devices.
Bruce Perens begins the Busybox project to make it possible to fit a small Linux image onto a 1.44 MiB floppy disk and so make bootable install and rescue disks for the Debian distribution. Coincidentally, it was also ideal for generating small footprint Linux images for embedded devices, and it remains the base of very many embedded devices today.
Linux 2.0 adds support for two more architectures common in embedded devices: m68k and ppc
One of the first companies to focus on embedded Linux, Timesys, is founded by Dr. Raj Rajkumar and Srini Vasan. Early emphasis on adding real-time capabilities. Alas, they decided to keep the changes proprietary - as binary modules - and so none of their work found its way into the mainline kernel and it has all been superseded now.
Dave Cinege initiates the Linux Router Project (LRP) (http://en.wikipedia.org/wiki/Linux_Router_Project). LRP used Busybox to create a bootable Linux on a floppy disk which could turn a PC into a router for use in the home or small businesses. Some say this is the first real embedded Linux project. LRP was x86/PC centred, but lead via the "Arlan Wireless Howto" to Linux on the WRT54G and so to Linux on most home and commercial routers. Read David Täht's article about the significance of that here: http://the-edge.blogspot.co.uk/2010/10/who-invented-embedded-linux-based...
Busybox maintenance taken over by Dave Cinege for The Linux Router Project (LRP). Cinege made several additions, created a modularized build environment, and shifted BusyBox's focus into general high level embedded systems
The Corel/Rebel.com Netwinder ships. The Netwinder is an ARM-powerd PC (so not really embedded!) that was an impetus to implementing Linux on ARM hardware (Red Hat to start with, then the Debian ARM port). Sold in WS (web server), LC (thin client), DM (developer machine). Later used for network management running OfficeServer. Still used in open source projects, but h/w long out of production. SA-110 cpu @275 MHz, 32 Mib RAM, 2 GiB hard disk.
For more info, see http://www.netwinder.org/
Kerbango 100E Internet radio announced, but never shipped as a product. It used a PowerPC (MPC823) running at 80MHz. Kerbango was bought by 3com in 2000, when the publicity and well-known backer helped to legitimise embedded Linux and helped to get Montavista (see below) started.
Finally, the ARM architecture is added to Linux in version 2.2.0.
Montavista is founded by Jim Ready. Montavista, alongside Timesys, was important in propagating the idea of Linux as a viable embedded operating system.
Lineo is founded by Bryan Sparks. Lineo did not last as long as Timesys and Montavista, but also made important contributions to embedded Linux.
TiVo (http://www.tivo.com) announce their first generation DVR (Digital video recorder). TiVo was one of the first consumer products to run Linux. Under the hood, it had a PowerPC 403 processor, 16 MiB Ram and a 13 GiB hard drive.
Axis (http://www.axis.com) release the 2100 webcam. As well as being among the fist commercial products to run Linux, Axis contributed in two other ways. They created a robust file system for the NOR flash memory they used. It was called jffs (journalling flash file system) and later evolved into jffs2 which is used in a large number of devices through to today. Their second contribution was in developing the "microcontroller version of Linux", uCLinux, which was needed to run on their mmu-less ETRAX processor. The hardware spec for the 2100 was ETRAX-100 risc cpu, 8/16 MiB ram, 2 MiB NOR flash, uClinux 2.0.33. There is a mention of this at http://www.axis.com/25years/milestones.htm.
Software consultancy Denx (http://www.denx.de/) begin work on PPCBoot, merging code from fadsboot (Dan Malek) and 8xxrom-0.3.0 - (Magnus Damm). PPCBoot 0.41 released July 2000. Initially for MPC 8xx boards. PPCBoot evolved into U-Boot which is used to boot Linux on many millions of embedded boards today.
Timesys launch Linux/RT 1.0, the first commercially-supported Linux with real-time extensions
Ingo Molnar and Andrew Morton begin work on the "voluntary preeemt patch", which reduces worst-case interrupt latencies by breaking up lengthy processing cycles in the kernel into smaller chunks and re-scheduling if an interrupt handler has set the "need_resched" flag. This work was eventually merged into the 2.6 kernel.
jffs2 (sponsored by RedHat) appears in Linux 2.4.10, bring flash storage to mainline Linux
Robert Love begins work on the kernel preemption patch. It is largely complimentary to the voluntary preeemt patch and is another step in improving the real-time behaviour of Linux. Kernel preemption was adopted by Montavista in their MVL 4.0 release and became a standard configuration option in Linux 2.6
Sharp ship the Zaurus SL-5000D PDA running Linux 2.4.10 (provided by Lineo). It has a Strongarm sa-1110 CPU @ 206 MHz, 64 MiB RAM, 16 MiB NOR flash. Note that this is the developer edition (hence the 'D' in the product name). The first commercial Linux Zaurus was the SL5500 which shipped in 2002 (http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/Device-Pro...)
Linksys release the WRT54G wireless router. This is the first such running Linux and spawns a whole industry of Linux based home routers. The original WRT54G has a Broadcom BCM4702 processor (MIPS32 core) running at 125 MHz, 16 MiB RAM, 4 MiB Flash
Charles Manning announces the yaffs file system (http://www.yaffs.net/), which allows Linux devices to access NAND flash memory. NAND was new technology at the time, but has since replaced NOR flash almost completely. The yaffs version 2 file system (yaffs2) is used today in many Android devices.
Linux 2.6 released in December. Includes both the voluntary preemption and preeemptible kernel real-time support as configuration options.
Motorola choose Linux and Java for their smart phones, beginning with the A 760 in SE Asia and later in 2004 the A 780 in the USA. This marks the start of Linux as a cell phone operating system. The A 780 used an ARM 925 chip (an Intel PXA270) at 316 MHz, had 48 MiB flash storage and a QVGA (240 x 320 pixel) touch screen. The Linux port was provided by Montavista.
Ingo Molnar and others begin work on the PREEMPT_RT kernel patch which further improves the real-time behaviour of Linux, bring it close to hard real-time
LiMo foundation formed to create a standard Linux cell phone operating system. LiMo is little known in the west, but is used as the basis of a large number of phones in SE Asia, especially Japan where it is very popular on NTT DoCoMo. LiMo founders include Motorola, NEC, NTT DoCoMo, Panasonic and Samsung.
The first Android handset, the Google G1 (aka the HTC Dream), is shipped. It has a Qualcomm MSM7210A (ARM11) processor running @ 528 MHz, 256 MiB NAND flash storage, 192 MiB RAM, 3.2-inch touchscreen @ 320 x 480. Launched with Android 1.0 operating system which includes a (modified) Linux 2.6.25. Android has turned out to be the most successful Linux distribution so far.
Beagleboard launched (http://www.linuxfordevices.com/c/a/News/150-board-sports-CortexA8/). Beagleboard is a low cost - $150 - dev board that set a new standard for price and performance. It has an ARM Cortex A8 CPU (a TI OMAP3530 in fact) running at 600 MHz, 128 MiB RAM, 256 MiB NAND flash, HDMI video and USB 2.0 host and OTG and it has been immensely popular with professionals and hobbyists.
Raspberry Pi announced, though not shipped until 2012 (http://www.raspberrypi.org/). The 'Pi follows on from the Beagleboard in many ways, setting an even lower price point - $35 - for only slightly less powerful hardware. What is really interesting, however, is the way it has gained attention outside the normal embedded space and been adopted as a platform for teaching computing in the UK and other countries.
It is announced that Tizen project will encompass and replace the LiMo, Moblin and Meego cell phone operating systems. The principal sponsors are Intel and Samsung. This article gives some background (http://arstechnica.com/information-technology/2011/09/meego-rebooted-as-...)
Still waiting to see what is going to be the key embedded event of the year :-)