ProductsDesktop Server For Scientific Computing For IBM POWER For IBM System z For SAP Business Applications Red Hat Network Satellite ManagementExtended Update Support High Availability High Performance Network Load Balancer Resilient Storage Scalable File System Smart Management Extended Lifecycle SupportWeb Server Developer Studio Portfolio Edition JBoss Operations Network FuseSource Integration Products Web Framework Kit Application Platform Data Grid Portal Platform SOA Platform Business Rules Management System (BRMS) Data Services Platform Messaging JBoss Community or JBoss enterprise
SolutionsApplication development Business process management Enterprise application integration Interoperability Operational efficiency Security VirtualizationMigrate to Red Hat Enterprise Linux Systems management Upgrading to Red Hat Enterprise Linux JBoss Enterprise Middleware IBM AIX to Red Hat Enterprise Linux HP-UX to Red Hat Enterprise Linux Solaris to Red Hat Enterprise Linux UNIX to Red Hat Enterprise Linux Start a conversation with Red Hat Migration services
TrainingPopular and new courses JBoss Middleware Administration curriculum Core System Administration curriculum JBoss Middleware Development curriculum Advanced System Administration curriculum Linux Development curriculum Cloud Computing and Virtualization curriculum
ConsultingStandard Operating Environment (SOE) Strategic Migration Planning Service-oriented architecture (SOA) Enterprise Data Solutions Business Process Management
Issue #17 March 2006
- What is virtualization?
- An interview with Brian Stein
- Virtualization Resource Center goes live
- Introduction to DocBook XML, part 2
- Risk Report: A year of Red Hat Enterprise Linux 4
- Video: Red Hat Summit Nashville
- LibriVox gives books a voice in the public domain
- See you at the Summit: Eben Moglen
- Developers: Come play with us and build the future
- Book review: Active Liberty
- Video: Skanska
- Book review: Linux Patch Management
- Podcast: So you'd like to contribute to open source software
From the Inside
In each Issue
- Editor's blog
- Red Hat speaks
- Ask Shadowman
- Tips & tricks
- Fedora status report
- Podcast (XML)
- Magazine archive
Developers--Come play with us and build the future
One Laptop Per Child project releases Software Developer Kit
by Lucy Ringland
The guys working on the OLPC project have been busy this year. They are whittling down an operating system that normally needs a DVD to hold all the files associated with it. Whittling it into something that will fit on a small flash drive. 512 meg. Tiny. Sound like fun? Want to help out? Join the Fedora OLPC Project.
According to the website, "The Fedora OLPC Project aims to assist Red Hat and the non-profit OLPC Project put inexpensive laptop computers in the hands of children throughout the world. These laptops are simple hardware meant to provide valuable learning tools to children, even in developing nations where such technology might otherwise be unavailable to them." When they say simple hardware, they mean it. Check out the current specifications for the laptop here.
The main challenge facing developers is creating a stable operating system for the OLPC hardware--an OS that requires no administration, is easy to use, and provides a solid platform for educational applications. So, your job (should you choose to accept it) is to create neat-o whiz-bang software that kids all over the world will love to use, and modify, and adapt. And make it all happen in memory/storage space smaller that a lot of people these days carry around in their pockets.
Other development challenges are listed on the Laptop.org website.
To get the ball rolling, Red Hat's OLPC team is releasing a Software Developer's Kit. According to Daniel Berrange, a key developer on the project, the aim of the SDK is to bundle together the typical tools needed to create, debug, test and package applications for deployment on the OLPC platform. The SDK will include:
- a Laptop simulator - since many developers will not have direct access to the real laptop hardware, the simulator provides a way to test both the OS platform images, and applications on a normal desktop PC.
- an ABI verifier - this testing tool verifies that an application is only linking against libraries that belong to the officially supported public API/ABI.
- a Packager tool - for packaging an application into a self-contained bundle suitable for deployment on the OLPC platform.
- a Compiler - a compiler & associated toolchain for building applications.
If this is your idea of fun, you can download the SDK here.
Think you're up for the challenge? Make sure. The goals of this Fedora project come with a set of rules that make it different from the usual. The biggest rule is that children--all over the world, with varying degrees of technical experience--must be able to play with the software. Explore it, break it, and be able to fix it--fast and easy. This is not software for geeks, it's software for kids. That's important.
"The design and experience has to come first, and figuring out how we implement it comes second...As long as we are able to enable a specific user experience that allows schools to publish, kids to share and makes machines bullet proof with an elegant way to unscrew busted apps that a kid has gone and played with, I'd be pretty happy," says Chris Blizzard, Red Hat's OLPC Project lead and community coordinator for the project.
The second rule reminds you that this hardware is not exactly bleeding edge. It's small and not so fast. This means the software has to be nimble and tightly coded--smaller is better. No memory hogs, no excess baggage. No features for features' sakes. Get the picture? Good.
Third rule: no duplication. No wide range of choices. Best of breed wins. If you need it and it's not there, build it. Oh, yeah, no big admin tools, no bulky package managers. Don't want it, don't need it. Remember, stripped down, lean and mean.
Still want to play? The project wiki lists a number of areas that need community players. Come on in, there's room for everybody!Some of the big projects that need attention include:
- creation of tools to build the OS 'firmware' images from the Fedora OLPC yum repository. We've got to produce a hard disk image that can run in the simulator, or be copied to a USB flash memory stick for direct boot. ISO images that can act as a Live CD demo would be great, too. We already have a lot of these tools but we can always use more eyeballs on this part of the project.
- stabilizing the Simulator to help those creating & testing the base OS images. We're working with Qemu (but Vmware works, too). The OLPC hardware isn't fast. Working with the Simulator give a real feel for the machine you'd be developing for.
- optimizing the OS platform and basic applications for the hardware. How can we make it faster, use less memory, and not eat up power?
- tweaking the kernel to take advantage of the hardware constraints - limited RAM (with no swap), development of MTD device drivers, making suspend/resume a work like a dream, and much more.
- globalization and localization work - fonts, input maps, character sets, translations, graphics, etc. Lots of customization can be done here to make the experience specific to where the kids play and learn.
- refining and enhancing the Software Developer Kit so the folks on the ground can jump into developing the applications and learning activities that are the point of this whole exercise.
Are you with us? Then, read the details on the
So, grab a copy of the repository (it should be up soon). Play with the simulator. Make suggestions on the mailing lists or check out the Idea Pool . Stop by for a quick (or not so quick!) chat on the #olpc channel at irc.freenode.net. And let the fun begin!