Computer software can only move numbers around. To accomplish anything in the real world— draw words or pictures on a screen, move a robot arm, or let you type at the keyboard— it needs to communicate with hardware outside the computer.
A special program called an operating system lets software communicate with hardware, as we saw in A Brain In A Jar.
Let us look at three kinds of computers.
First, laptop or desktop computers need certain kinds of hardware: keyboards, mice, screens, speakers, microphones, disk drives, USB sticks, WiFi networks, and so on. This is why laptops and desktops come with an operating system that already knows how to talk to these kinds of hardware devices.
Second, mobile phones need a different set of hardware: touch screens, cellular networks, and lots of sensors.
For example, we described two sensors useful for astronomy apps; see Tracking NEOWISE
The little computers inside mobile phones run operating systems that cover these devices.
Finally, robots have computers inside, too. When it comes to robots, however, we need a huge variety of hardware. In fact, the list is open-ended, because robots can walk, roll, run, fly, manipulate objects, and also talk to all kinds of industrial machinery.
Robots need a more versatile operating system.
People who design robots today usually pick an operating system called Linux. To be precise, the part of Linux that communicates with hardware, called the Linux kernel.
A chubby little penguin named Tux serves as the mascot for the Linux kernel.
The Linux kernel is the very opposite of a brain in a jar. It can communicate with many, many kinds of computer hardware.
Linux was not intended for robots, and indeed it does not come with any support for typical robot hardware.
But it was designed to be modular and extensible.
"Modular" means that you can pick and choose pieces of it.
The Linux kernel comes in dozens of specialized pieces that can talk to different hardware devices. To run it on a particular computer, you select a combination of pieces corresponding to the type of hardware the computer has.
"Extensible" means that it can be modified to extend its capabilities.
Programmers can modify the pieces or create new pieces, to make Linux talk to new kinds of hardware.
"What computer do you have? —and please don't say a white one!"
—Sheldon Cooper, The Big Bang Theory, Season 1, Ep. 16 (2008).
Three decades ago a Finnish computer science graduate student named Linus Torvalds was learning about an old operating system called Unix. He wanted to write it from scratch to run on his own PC.
His hobbyist project gathered many other programmers as contributors and soon exploded in popularity.
Today, Linux can run on many kinds of computers, from home WiFi routers, personal computers, servers in data centers, all the way up to large supercomputers.
As if this weren't enough, Android phones contain the Linux kernel. Since over eighty percent of the world's smart phones are Android, this means that the Linux kernel is running on billions of phones and tablets all over the world.
We mentioned Youtube, Netflix, Amazon, and Facebook in an earlier article. These websites have one thing in common: they all use the Linux kernel.
The same goes for millions of websites world-wide, including this one.
Major companies depend on it for running their internal computers, too. The New York Stock Exchange and NASDAQ both use it.
This unstoppable juggernaut has no marketing behind it. Nobody makes money selling it. Anyone can download it free of charge.
The story of how Linux grew and spread will have to wait for another article.
In the meantime, we put a mask on Tux the penguin. The pandemic doesn't seem to have cramped his style at all.