Making Sausage: How the OLPC Machine Was Designed

A Presentation by Jim Gettys

Software and hardware are very different. Software is malleable and has no cost to reproduce; hardware is a very different experience.

Hardware systems design is like sausage making:
o You can only make as much sausage as you can get *all* the ingredients for
o Some parts of the recipe can be substituted, but not others
o There are only a finite number of ingredients you can use in a recipe
o If you know the right ingredient suppliers, you may be able to get custom ingredients made for you, so long
as you are making a *lot* of sausage
o Some of the major ingredients take years to grow, rather than a season. You can at best let the farmers
(custom chip designers) know what kinds of ingredients you'd like the next time, and have to live with those
commodity ingredients that are available in the quantity you need
o It isn't a pretty process.
o You don't know exactly how it is going to taste until you've cooked it.
I will explore the sausage making that is the first One Laptop Per Child System, a novel, very low cost and low power laptop for kids education in the developing world, that runs Linux. The reailities of life for many or most of the world's children present novel challenges to our hardware and software design, particularly due to lack of power, infrastructure, and available expertise in the field.

Its recipe, while made out of standard or at most semi-custom ingredients, makes it a novel system including: Our display has higher resolution than 95% of the laptop displays on the market today; approximately 1/7th the power consumption; 1/3rd the price; sunlight readability; and room-light readability with the backlight off, mesh networking, a novel dual mode touchpad that can function both as a standard touchpad and be used with a stylus, and novel power conservation capabilities. These include the ability to leave the screen and wireless mesh network fully on while the machine is suspended to RAM.

As you might imagine, these novel capabilities present novel challenges to Linux, which is the only system which could quickly fulfill our needs. It also presents challenges to our software: the power conservation techniques needed are very new and conventional GUI's are intended for adult office workers: our audience are young children learning to read or getting a basic education, since most children only receive 5-6 years of education in many parts of the world. I'll touch on some of these aspects as well.

Direct link to video