The One Laptop Per Child project is part hacking puzzle, part social mission, and hard for open source developers to resist participating in.
A network of developers who work on much of the most commonly used software on Linux is passing up multi-core monsters with gigabytes of RAM to target their code to a design of which only 500 prototype boards now exist: the "Children's Machine 1" from the One Laptop Per Child project. OLPC aims to put machines that function as a textbook collection and as a writing, drawing and music tool into the hands of schoolchildren, through large sales to national ministries of education.
The CM1 is tiny and slow by current hardware market standards. Current prototype boards have a 500MHz AMD Geode processor, which is x86-compatible but lacks some features of newer AMD and Intel chips. The CPU is underclocked to 366MHz to save power.
The CM1 has 128MB of RAM and 512MB of Flash memory, and lacks a hard drive. A low-power display designed for extended e-book reading supports 1200x900 resolution in black and white, and a lower resolution in color. The wireless hardware, by Marvell, is capable of running as part of a mesh network without waking up the CPU.
But the project's software goals are ambitious, and include a collaborative browsing and editing environment for working with e-books and Wikis, graphics and sound editing tools, and a Python development environment. The project plans to use only open source software on the laptop, and all the pre-installed content is to be in patent-free formats.
OLPC needs big software changes to make all that work on the CM1. According to the laptop.org FAQ, "Today's laptops have become obese. Two-thirds of their software is used to manage the other third, which mostly does the same functions nine different ways."
The total size of the CM1's initial operating system load is less than 100MB, and doing that much functionality in that little space has become a programming challenge, says Christopher Blizzard, the leader of a group of engineers from Red Hat who the company has contributed to work on OLPC. "How much less can I do? I love that goal, we're going to have an operating system under 100 meg."
The project, besides contributing code back upstream to the projects it depends on, is also contributing work on Thai and Arabic translations, said Walter Bender, OLPC's president, Software and Content. But CM1 isn't doing it alone. Whether it's the idea of turning kids on to creating things with computers or the puzzle-solving satisfaction of packing giga-functionality into mega-space, developers are making OLPC's goals their own.
"We can make our system go a hell of a lot faster than it has been," says Jim Gettys, vice president, Software Engineering for OLPC. "Fundamentally everything we do is of benefit to everyone's desktop. We're just sensitive to it. Five to 10% of the work has anything to do with OLPC. Most of it is all over the place in lots of different projects."
Abiword, a lightweight, quick-running word processor, is an example of the kind of software that OLPC is looking for. "In terms of office products they're probably the most flexible. They have been really interested and started doing mockups and working code," Blizzard says.
Even corporate lawyers are getting into the act, offering two low-profile but important license liberations. Apple agreed to let the Squeak Foundation release the Squeak Smalltalk environment under an Apache-style license, and Gettys says, Sun recently released the 10-year-old Open Firmware, a bootloader long used on SPARC and PowerPC systems, under a BSD-style license.
Red Hat is contributing engineers to OLPC, so one of the first projects to show cross-pollination is Red Hat's community Linux distribution, Fedora. Fedora developers are taking OLPC requirements into account "on a day to day basis," Blizzard said. And, he added, "We're driving things in OLPC that actully fix Fedora. You get to see a lot of things cleaned up that hadn't been."
Fast processors and inexpensive memory have made tidy programming a low priority, Gettys said. "A lot of people in the past decade or so have gotten quite sloppy. There's a huge amount of low-hanging fruit." For example, John Palmieri, maintainer of a system for communicating between programs called D-Bus, is now on the OLPC team, working on performance improvements that benefit both projects.
A similar situation prevails with the NetworkManager network configuration utility, whose maintainer Dan Williams is also on the OLPC team. "There is a lot of goodness that goes on between OLPC and NetworkManager," Blizzard says.
Among the tempting, but higher-hanging fruits are the data from Manu Cornet's GUI "torture tests" and, as reported on the laptop.org news list, the work that John Zulauf, formerly of AMD, is doing on optimized versions of the lowest-level, most fundamental functions for copying and comparing memory in the C library.
Gettys says measuring existing performance has to come before trying those changes. "We've been pulling in every decent performance tool Linux has so we can optimize when and where it really matters," he says.
A key automated testing tool is Tinderbox, a build and test management tool originally developed for Mozilla, that new OLPC developer Chris Ball has installed, to build and test OLPC software. And, after Red Hat kernel developer Dave Jones gave a standing-room-only talk at the 2006 Linux Symposium titled, Why Userspace Sucks (Or, 101 Really Dumb Things Your App Shouldn't Do), his reports of suckiness, which include kernel-based measurements of wasteful behavior, are helpful, Blizzard says.
"We have similar lists of things why the kernel sucks," Gettys says. "The kernel halfway wakes itself up 20 times a second to see if you've plugged something into your nonexistent PS/2 port." Total kernel wakeups, now at 200 per second on mainstream kernels, are down to 15 on the CM1 prototype. "We'll get from 15 to I hope zero," he says. Jones now has a CM1 prototype board to experiment on.
Blizzard says OLPC is using a variant configuration of the Fedora build of the kernel, which tracks the mainstream release from kernel.org. "We have the backing of 300 plus engineers inside of Red Hat," he says.
In the area of device drivers, though, OLPC is doing substantial new development, contracting with Linux Device Drivers co-author Jonathan Corbet for a camera driver, and also developing drivers for Marvell wireless hardware, NAND storage, and the DCON "magic" display chip, which can keep an e-book page on screen while the processor sleeps.
Blizzard, with GNOME developer Jeff Waugh hosted a two-day summit on the GNOME desktop environment at the MIT Media Lab, and got some new projects interested in OLPC, he says. Freedesktop.org's telepathy project for instant messaging, voice and other conversations, and the PenguinTV RSS reader are both considering OLPC-adapted versions, he says.
OLPC is getting indirect benefits from Nokia's 770 Internet Tablet, including the long-awaited ability to add input devices without restarting the GUI subsystem, which Nokia developer Daniel Stone added for the 770. "The input stuff on x has needed an overhaul for a decade and Daniel is finally doing that," Gettys says.
Nokia is also funding X Window System developer Matthew Allum to work on a display simulator, Xephyr. Xephyr is the basis for a Manu Cornet's Google Summer of Code work on simulating the CM1 display on a conventional monitor.
Blizzard anticipates that developer interest will grow even more with the next round of prototype machines, which will be complete laptops instead of just bare circuit boards. "There are really great spinoffs. We're going to build a lot of laptops and put them in the hands of a lot of people, " he says.
Just as the CM1's software is getting an overhaul, so is the keyboard. "Nicholas Negroponte's one absolute demand is to get rid of Caps Lock," Gettys says.
And, Bender says, "There's one new key they get that's the important one and that's the View Source key."
Learn more about this topic
This story, "Doing it for the kids, man: Children's laptop inspires open source projects" was originally published by LinuxWorld-(US).