This page includes links to the source code for the OLPC XO-1, along with instructions on how to download it from this page in the wiki.
Source code for releases
The source for OLPC system software is stored in Source RPMs stored at the following locations. Be aware that most source code stored in these RPMS is not owned by OLPC and is distributed under the terms of the licenses contained in the source code proper. (In release 8.1.0 and later, an overview of the licensing terms of these source and binary packages can be found in the 'olpc-licenses' package or in /usr/share/licenses/ on-XO.)
Released October 13, 2008
Released March 30, 2008
Released December 4, 2008
Linux OS and OLPC software
Much of the source code for the OLPC is stored in a "git" repository at http://dev.laptop.org/git/ . You can check out a particular program, e.g. the kernel, with a command like:
For more details, please see the git page in the wiki.
Other parts of the system are pulled directly from the Fedora 7 source and binary RPMs.
The script used to build the shipping image of the OLPC operating system is called "pilgrim", and it is maintained here: http://dev.laptop.org/git?p=users/cscott/pilgrim;a=summary
Open Firmware (bootstrap ROM)
You can browse the source code for Open Firmware online, and can check it out of its Subversion repository with the command
svn co svn://openfirmware.info/openfirmware/
More details are at http://www.openfirmware.info/Open_Firmware
Most activities make their source code available, see Category:XO source.
Source code on the XO
Much of the Sugar user interface and many OLPC utility programs are written in the Python programming language. For example, the commands /usr/bin/copy-from-journal and /usr/sbin/olpc-update are Python scripts. You can view the Python source code running on your XO in an text editing program, although modifying it may break your computer.
Much of the core Sugar code is in files under /usr/lib/pythonVERSION.NN/site-packages in the subdirectory sugar and (in starting with release 10.1, another subdirectory jarabe); additional Sugar code is in /usr/share/sugar. See Understanding Sugar code.