One Laptop per Child was a non-profit initiative designed to provide laptops to students without computers. The initial goal was to produce usable laptops for $100 each, though they ended up being closer to $180 by the time they shipped. The first result of this effort was the OLPC XO-1. It was designed to be very low power so that the battery could theoretically be easily charged with a solar panel or hand crank. However, they ended up shipping with a standard power supply. Released in 2007 the XO-1 had the following specs:
- CPU: 433 MHz AMD Geode LX-700 with integrated graphics controller (0.8watts)
- Memory: 256MB dual channel DDR266
- Storeage: 1GB SLC NAND flash memory
- Display: 1200×900 7-inch transflective LCD (200dpi)
- Networking: Extended Range 802.11b/g and 802.11s (mesh)
It also includes four PlayStation like buttons in addition to a standard touch-pad, a 640×480 color camera, three USB 2.0 ports, microphone, stereo speakers and audio based on the AC’97 codec. The membrane keyboard is probably the single worst feature though perhaps not terrible for kids just learning to use a computer (as long as touch typing isn’t a goal anyway).
The OS was a somewhat pared down version of Fedora with the kids oriented Sugar interface though you could switch to Gnome. Other software included a custom web browser based on Firefox, a word processor based on AbiWord, Totem or Helix for playing audio and video, and more.
See the complete specs as reported by hardinfo here.
Several subsequent versions were developed. Unfortunately, these computers were in no way upgradeable except in some cases with a motherboard swap. The processor could not be changed, memory could not be added and the only way to add storage was via USB or via the SD card slot. Adding an SD card was very useful for additional storage and some swap space.
The Geode processor is somewhat interesting. The Geode family of processors was initially created by National Semiconductor in 1999 and was a low power derivation of the Cyrix MediaGXm. The MediaGXm itself was a Cyrix 5×86 CPU core combined with extra hardware to process video and audio output. The ‘m’ denotes that it supported MMX instructions (earlier versions of the MediaGX didn’t). After AMD acquired Geode, they released the Geode LX which was an enhanced version of the latest iteration of Geode from National Semiconductor with support for faster DDR memory, higher clock speeds, a redesigned instruction pipe, the addition of 128K of L2 cache (previous versions of the Geode and MediaGX had no L2 cache) and more powerful display controller. The subsequent model (NX) would be based on the Athlon XP instead but what is in the XO1 is the LX version so it is essentially running on a souped up (but low power) Cyrix MediaGX processor…despite being much newer and having the AMD and Geode names.
Performance, as you can probably imagine, is pretty abysmal, even for the time it was released. However, the goal wasn’t high performance, it was low power and low cost along with reasonable durability.
Like any computer I use, I like to run BOINC on it and see what it can do. Initially, I couldn’t get any projects to run. There just wasn’t enough free drive space. However, once I added an SD card with some swap space and also moved the BOINC installation over to the SD card (which turned out to be much harder than it should be), things worked a little better. The only project I am currently running on that machine and most likely the only one of my typical projects that will run on it is MilkyWay@home. Fortunately, that one has pretty low system requirements and in particular uses very little RAM. The OLPC XO-1 is just barely able to complete a work unit before the deadline. Tasks are given about 12 days to complete and it completed the first task in approximately 11 days. So clearly this processor is getting pretty close to the minimum usable for the project. By comparison, a 10 year old PC can complete a work unit in about an hour. Of course the limited memory, use of swap space, and running from an SD card all probably contribute to the slowness. I know that I have a 333MHz Pentium II based machine that was recently able to complete a work unit in less time (it still took several days though from what I remember).
You can see how it is doing on MilkyWay@home or via FreeDC or BOINCStats.