The operating system used on all these little boards is Linux. It’s free, it’ portable to just about anything under the sun, and there are lots of people developing for it and with it.
Linux was initially created and released over two decades ago by Linus Torvalds. The fascinating story of the Linux kernel should be well known by now, as well as the original micro-kernel vs monolithic kernel debate that started it all.
But the key turning point was the fact that Linux is distributed as Open Source Software. Not just free, as binaries, not even for a small fee, but (wide!) open for anyone to use and modify. All of a sudden, software was no longer a consume-only product. Add to that the rise of internet (not in a small part powered by Linux) and you can see how it took off.
There are by now hundreds of different variations of Linux, called “distributions”. Here is a very nice infographic (SVG), showing the genealogy, derivatives, and the general time line.
One of the oldest, and still most central, Linux distributions is Debian. From their web site:
Debian was first announced on August 16, 1993, by Ian Murdock, who initially called the system “the Debian Linux Release”. The word “Debian” was formed as a combination of the first name of his then-girlfriend Debra Lynn.
An influential aspect of Debian is that it introduced a social contract about its intentions.
Packages
The whole structure of Debian (all distro’s in fact) is based around the idea of installable packages: precompiled compressed archive files in deb format, containing a description, unique version number, and all the files and instructions needed to install the package into the system. Not only that, a package also contains references to its “dependencies”, so that any other required packages can automatically be downloaded and installed when needed.
The dpkg command is at the heart of this mechanism and handles installs as well as uninstalls. This design is what turns Debian into a system which can effectively be maintained for years, across updates, revisions, and even major system improvements. It is not uncommon for a Linux installation to run many months on end without ever needing a reboot – even though many of its packages may have been re-installed on a live system.
The APT system puts a command-line user interface around all this, with tools such as “apt-get” (to fetch, install, remove packages) and “apt-cache” (to search in the complete database of all known packages, not just the installed ones).
For a slightly less daunting interface, there is the aptitude tool, which is still text-based, but at least it offers some menus and lots of help and safety checks to guide you along:
This tool needs to be run as “superuser”, i.e. sudo aptitude
.
For graphical interface environments, there is synaptic, which is used in Ubuntu, one of the most popular Debian derivatives.
For our setup, we’ll use Debian or Ubuntu, depending on what’s available for a particular Linux board. Debian is updated at a less frantic pace, and probably a bit more stable on some platforms, whereas Ubuntu tends to track newer software releases a bit more quickly.
Debian releases are split into three categories: stable, testing, and unstable. Testing is often quite solid, but as the name says, a package in “testing” is still being verified (the main way to do so with open source, by the way, is to use it and report any issues that may arise).
There are about a dozen officially supported platform “ports”, such as for the 32- and 64-bit version of the x86 processor families, the ARM platform, and more. There are a dozen more unofficial ports, supported by others – but still using the Debian code (Raspbian is such a port, built separately to work on the chip used in the various Raspberry Pi models).
Here is the historical timeline of Debian releases until the end of 2014 – with version numbers and their funky code names (taken from characters in the Toy Story movie):
All links and images are from Wikipedia, the best encyclopaedic resource on the planet!
[Back to article index]