Making sense of the One Laptop Per Child proprietary software row
October 11, 2006 Leave a comment
There is currently a debate going between Theo de Raadt and a Red Hat employee about the OLPC choice to use a network driver that does not have open specs available. From the article:
Theo de Raadt, the leader of the OpenBSD project and a vociferous crusader for hardware (especially networking) documentation, recently went public with his concerns about the One Laptop Per Child project's choice to use a wireless networking chip from Marvell, a company with an unusually poor record of supporting free software operating systems, in the 2B1 laptop computer that it is developing. Marvell is unwilling to freely supply hardware documentation so that programmers can create device drivers that properly interface with its wireless chips
Part of the response from Jim Gettys follows:
* OLPC is dedicated to open source
* Our mission — from the beginning — is to make the process as open and transparent as possible. That anyone can air their concerns, misinformed as they may be, long before our system is shipping reflects this. Our systems won’t be produced in volume until late next spring.
* We are part of the free and open source community ourselves.
* and we are a non-profit organization; our number one priority is to provide laptops to children in developing nations: this brings unique requirements on many aspects of our hardware choices.
The Marvell wireless chip is in fact unique in the market at the moment.
Many or most children in the world do not have electric power, nor do they have computer networking. Without power being available, even if access points cost nothing, you have no network. So we are deploying mesh networking, to allow a child’s laptop to forward packets for their friend or neighbor’s laptop; each laptop becomes, in effect, a battery powered access point for the others.
Even as low power as the AMD Geode is, if it is turned on, it will consume 5-10 times the power that the Marvell wireless chip will consume. So for it to be feasible to have a human-powered laptop, essential since a good fraction of the world’s children lack electricity, is use a mesh network to connect the kids machines to each other and often to the Internet, so that those children can learn from each other, their teachers and the world as a whole.
If you're interested in the entire progression, Open Letter, Response, Retort. Jim also points out that the OLPC system is the first mass production system designed in which the BIOS firmware and loader is open (LinuxBIOS), that OLPC has gotten AMD to release the code for VSA (Virtual System Architecture) and that Marvell did actually redesign some things to be more standards compliant.
I've been meaning to take a closer look at the OLPC project for a while now. The general principle is very good from what I've seen, my main question is what the actual numbers look like and whether it is a sustainable project that has a realistic chance of making a tangible difference. I'll be digging more into that over the next couple of days. In the mean time, their assertion that “The basic assumption is that education is at the root of any solution” is very in line with my general doctrine. That alone really makes me like what they are trying to do. The fact that, by it's very nature, Open Source creates a level playing field makes it a natural fit for a project like this. But what if no hardware for a specific piece of the project is available with open specs. Leaning on the vendor seems like the right thing to do to me, but can you realistically delay the entire project until that lobbying bares fruit? What if it never comes to fruition, do you then hope an open spec device exists soon enough? In the end, you need to do what's best to meet the end goals of your project. For OLPC, the children are first and being 100% open is not. It seems being as open as possible, however, is. In that context, this decision makes sense. Theo seems to think there may be other cards out there that fit the bill, but I don't know enough about that to comment.
One side note that I found interesting is that Theo is not a proponent of pushing for open firmware. His quote:
Some people (mostly just RMS) insist on firmware source code. We do not feel that we need or even want firmware source code — just the missing binary component that allows the device to operate. Our #1 goal is that our users be able to use the devices they purchased. We feel that when RMS insists on things which vendors will never give, he confuses the vendors, and the vendors back off and end up giving us nothing at all. As a result, everyone loses — RMS, the vendors, the operating system suppliers, and the users. This is not (yet) the time or place to make such strict statements.
That seems like an extremely realistic and even headed statement, which to me is real progress and a sign that the Open Source community is maturing. Keep in mind that OpenBSD has had multiple wins in getting specs to write Open Source drivers, especially in the network space. In the end, OLPC is working on an open driver/firmware so this may all be moot. The good news here is that both sides have good intentions, while having differing goals. Vigilance on both sides is a good thing, IMHO.
OLPC, Linux, Open Source, Marvell, OpenBSD, Red Hat