Software components: Difference between revisions
Line 1: | Line 1: | ||
{{OLPC}} |
{{OLPC}} |
||
{{Translations}} |
{{Translations}} |
||
==Operating system== |
|||
==Introduction== |
|||
* Linux Kernel: Linux 2.6.22; Fedora Core 7 base environment. |
|||
This page defines the software environment that will be installed on the OLPC and which application software developers can use. While it is possible for an application developer to add additional software components and libraries, this is not a decision to be taken lightly. The OLPC is constrained by limited memory and storage which means that adding too many frills and features can have a significant negative impact on your own application as well as other applications running on the OLPC. |
|||
==Programming environment== |
|||
''If you add items to the list, please use the Wiki's search function to see if there are pages about it which can be linked.'' |
|||
* Python (Version 2.5); |
|||
* Javascript™; |
|||
* CSound, music programming language; |
|||
* The Etoys implementation of Squeak using small talk, an object-based programming language; |
|||
* Turtle Art Logo, a graphical programming environment; |
|||
* Gnash, a free and open source plug-in for the Adobe Flash™ file format supporting vector and raster graphics, a scripting language called ActionScript™ and streaming of audio and video; |
|||
* Adobe's Flash Player and Java™ virtual machine can be added via Yum or RPM install but are not part of the standard distribution. |
|||
===Libraries=== |
|||
* Mozilla Gecko/Xulrunner (the Firefox web engine); |
|||
* GUI toolkit (GTK+) (Gnome); |
|||
* Matchbox window manager; |
|||
* Pango text layout; |
|||
* Gnome accessibility toolkit (ATK); |
|||
* Python GTK+ bindings version 2.10; |
|||
* Cairo 2D-graphics support; |
|||
* X Window System X.org Foundation; |
|||
* Font rendering (Freetype); |
|||
* Avahi local service discovery; |
|||
* Multimedia framework: gstreamer; |
|||
* Bitfrost security system (detailed in a separate document); |
|||
* Mesh network; |
|||
Libraries to support all of the above, others can be installed by Yum or RPM. |
|||
===User environment=== |
|||
* Sugar graphical user interface, written in Python, on top of the X Window System and the Matchbox Window Manager. |
|||
“Zooming” interface to mesh network; |
|||
* Journal interface to file system; |
|||
* Flash space available for other software content ~800 mbytes. |
|||
==Applications== |
|||
There are three types of activities distributed with the base system: tools for exploring, expressing, and collaborating. |
|||
===Tools for exploring=== |
|||
* a web browser built on the Firefox engine; |
|||
* a simple document viewer based upon evince (including the ability to view PDF); |
|||
* an RSS (“really simple syndication”) reader; |
|||
* multimedia playback using gstreamer (the Real Networks Helix™ platform has been ported to the laptop and is available for download but is not part of the base distribution); |
|||
* OpenDocument Viewer to read documents in OpenDocument format, a highly-compressed format that is a fully open international standard (ISO 26300); |
|||
* The Opera web browser and the Real Networks Helix™ platform have been ported the laptop and are available for download but not part of the standard distribution. |
|||
===Tools for expressing=== |
|||
* TamTam, a music synthesis and composition tool; |
|||
* Etoys (see above); |
|||
* a word processor based upon the Abiword project; |
|||
* video, audio, and still-image capture and playback (a “video wiki” is under development); |
|||
* a pixel-paint programming; |
|||
* a journal; |
|||
* a wiki with WYSIWYG editing (under development); |
|||
* VI and NANO text editors. |
|||
===Tools for communicating=== |
|||
* chat and serverless instant messenger; |
|||
* a VoIP client (under development); |
|||
* Email through the web-based Gmail service; |
|||
* Native email client (under development). |
|||
===Other Tools=== |
|||
* Calculator; |
|||
* Spreadsheet (under development); |
|||
* a shell and debugger; |
|||
* Develop, an activity editor (under development). |
|||
===Games=== |
|||
* Numerous games, including variations of the “memory game”, strategy games, etc. |
|||
===Shared Applications=== |
|||
All applications share a common data store accessible through the Journal; |
|||
Most applications, including, reading, writing, recording and browsing, allow for collaboration; through the network: child-to-child and teacher-to-child. |
|||
==Mesh Networking== |
|||
* The specifications for the wireless networking interface include: |
|||
* Ability to act as a mesh point when laptop's main CPU is off; |
|||
* Support for asymmetric links/paths; |
|||
* Incremental releases—mesh networking is available immediately on XO; Upgrades will continue to improve functionality and adherence with standards; |
|||
* Simultaneously acts as a mesh point and an infrastructure node. |
|||
* Standards Compliance: follow 802.11s draft when possible. |
|||
==Operating System Components== |
==Operating System Components== |
Revision as of 01:49, 23 August 2007
Operating system
- Linux Kernel: Linux 2.6.22; Fedora Core 7 base environment.
Programming environment
- Python (Version 2.5);
- Javascript™;
- CSound, music programming language;
- The Etoys implementation of Squeak using small talk, an object-based programming language;
- Turtle Art Logo, a graphical programming environment;
- Gnash, a free and open source plug-in for the Adobe Flash™ file format supporting vector and raster graphics, a scripting language called ActionScript™ and streaming of audio and video;
- Adobe's Flash Player and Java™ virtual machine can be added via Yum or RPM install but are not part of the standard distribution.
Libraries
- Mozilla Gecko/Xulrunner (the Firefox web engine);
- GUI toolkit (GTK+) (Gnome);
- Matchbox window manager;
- Pango text layout;
- Gnome accessibility toolkit (ATK);
- Python GTK+ bindings version 2.10;
- Cairo 2D-graphics support;
- X Window System X.org Foundation;
- Font rendering (Freetype);
- Avahi local service discovery;
- Multimedia framework: gstreamer;
- Bitfrost security system (detailed in a separate document);
- Mesh network;
Libraries to support all of the above, others can be installed by Yum or RPM.
User environment
- Sugar graphical user interface, written in Python, on top of the X Window System and the Matchbox Window Manager.
“Zooming” interface to mesh network;
- Journal interface to file system;
- Flash space available for other software content ~800 mbytes.
Applications
There are three types of activities distributed with the base system: tools for exploring, expressing, and collaborating.
Tools for exploring
- a web browser built on the Firefox engine;
- a simple document viewer based upon evince (including the ability to view PDF);
- an RSS (“really simple syndication”) reader;
- multimedia playback using gstreamer (the Real Networks Helix™ platform has been ported to the laptop and is available for download but is not part of the base distribution);
- OpenDocument Viewer to read documents in OpenDocument format, a highly-compressed format that is a fully open international standard (ISO 26300);
- The Opera web browser and the Real Networks Helix™ platform have been ported the laptop and are available for download but not part of the standard distribution.
Tools for expressing
- TamTam, a music synthesis and composition tool;
- Etoys (see above);
- a word processor based upon the Abiword project;
- video, audio, and still-image capture and playback (a “video wiki” is under development);
- a pixel-paint programming;
- a journal;
- a wiki with WYSIWYG editing (under development);
- VI and NANO text editors.
Tools for communicating
- chat and serverless instant messenger;
- a VoIP client (under development);
- Email through the web-based Gmail service;
- Native email client (under development).
Other Tools
- Calculator;
- Spreadsheet (under development);
- a shell and debugger;
- Develop, an activity editor (under development).
Games
- Numerous games, including variations of the “memory game”, strategy games, etc.
All applications share a common data store accessible through the Journal; Most applications, including, reading, writing, recording and browsing, allow for collaboration; through the network: child-to-child and teacher-to-child.
Mesh Networking
- The specifications for the wireless networking interface include:
- Ability to act as a mesh point when laptop's main CPU is off;
- Support for asymmetric links/paths;
- Incremental releases—mesh networking is available immediately on XO; Upgrades will continue to improve functionality and adherence with standards;
- Simultaneously acts as a mesh point and an infrastructure node.
- Standards Compliance: follow 802.11s draft when possible.
Operating System Components
Linux Kernel
For the main kernel, we are using the Fedora Rawhide version of the Linux kernel, which means that we are tracking the main kernel fairly closely. The OLPC specific bits of the Rawhide kernel are pulled from the olpc-2.6 GIT tree on dev.laptop.org:http://dev.laptop.org/git.do?p=olpc-2.6;a=summary
Programming environments
- Python version 2.4
- Javascript
- CSound, our sound and music environment
- Squeak / Etoys, a media-rich authoring environment (Please see Sugar Etoys for a detailed description of the Sugar implementation.)
To be determined
- We will have a LOGO environment, most likely one developed by Arnan (Roger) Sipitakiat that runs on top of Python
- See pyoLogo for more information.
- We may have a open source JVM and/or a Flash VM
Applications on B1
- a web browser built on xulrunner
- a simple document viewer based upon evince
- TamTam, a music synthesis tool
- Memory, a musical memory game written in Csound that exploits the mesh network
- eToys (see above)
- PenguinTV RSS reader
- Abiword, a word processor
- a simple application to demonstrate the camera by putting its video onto the screen.
Applications (and ports) under development for B2
Any of these applications may not be available in time for B2, or necessarily preloaded onto the systems.
- a journal
- a wiki with WYSIWYG editing, using Crossmark as its markup language
- OpenDocument Viewer to read documents in OpenDocument format, a highly-compressed format that is a fully open international standard (ISO 26300)
- VIM, a text editor
- Helix, an open-source multimedia environment
- other video tools, such as a video wiki
- an image map tool
- OLPCities, a virtual world programming environment
- FACIL, a webpage editor developed to be used by children. (In English at http://wiki.laptop.org/go/EASE)
- Musical Editor, a music composition toolkit
- Drawing Workshop, a shared graphics space
- Tux Paint, a paint program with extreme ease-of-use
- a Tetris-like game that exploits the mesh
- chat, serverless linux instant messenger http://retroshare.sf.net , VOIP, email
- a shell and debugger
- Develop, an activity editor
Libraries and Plugins
- Tinymail (Possible, still looking for design ideas.)
- Mozilla Gecko/Xul
- GUI toolkit (GTK+) (Gnome)
- Matchbox window manager
- Sugar (UI) RedHat/OLPC/Pentagram
- Pango text layout
- Gnome Accessibility toolkit (ATK)
- Python GTK+ bindings version 2.10
- Cairo 2D-graphics support
- X Window System X.org Foundation
- Fedora Linux
- Font rendering (Freetype)
- Avahi local service discovery
- Multimedia framework: gstreamer and RealNetworks
- Game library: Pygame