One laptop per child: a software design
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 realities 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: 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.
These also presents challenges to our software: the power conservation
techniques needed are very new. 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.
These capabilities present novel challenges to Linux, and are possible
for us to implement precisely because Linux is open source. The
ability to design hardware knowing that the software can be modified
as needed is liberating.
Jim Gettys is interested in open-source systems for education on very inexpensive computers. He was previously at HP's Cambridge Research Lab working on the X Window System with Keith Packard, both on desktops and embedded systems such as the HP iPAQ. He helped to start the handhelds.org project and has also contributed to freedesktop.org efforts. Gettys has served on the X.org Foundation board of directors and served until 2004 on the Gnome Foundation board of directors. Gettys worked at W3C from 1995-1999; he is the editor of the HTTP/1.1 specification (now an IETF Draft Standard). He is one of the principle authors of the X Window System, edited the HTTP/1.1 specification for the IETF, and and one of the authors of AF, a network transparent audio server system.