Software/Goals: Difference between revisions
(*software goals*) |
m (Reverted edits by 202.108.28.23 (Talk) to last version by 212.150.16.241) |
||
(15 intermediate revisions by 13 users not shown) | |||
Line 1: | Line 1: | ||
<noinclude>{{Translations}}</noinclude> |
|||
⚫ | |||
__NOTOC__ |
|||
⚫ | |||
⚫ | |||
⚫ | |||
== Along with any goal, we must have rules of the game == |
|||
== Guidelines == |
|||
=== Children must be allowed to play === |
=== Children must be allowed to play === |
||
Line 17: | Line 20: | ||
These two central facts mean we can make certain assumptions about deployment and can create an incredibly easy way to install and update the base operating system. |
These two central facts mean we can make certain assumptions about deployment and can create an incredibly easy way to install and update the base operating system. |
||
=== |
=== OLPC is the platform, not linux === |
||
Because of the small size of this platform, ''we have to make choices about what the platform will be'', and how we enable applications to be written. This is not a classic GNU Linux distribution, with package manager, and an enourmous universe of loosely related software. If you ask 50 people "what is the Linux platform", you will get 500 different answers. Our applications can make assumptions about their hardware and software environment. We can focus on how to ''enable people building applications for this platform.'' |
|||
If you think about it you will realize that package managers are the result of one simple problem in Linux: we have ''so much software'' that we never know what our platform is. A program that's installed must be able to ask for everything it needs instead of assuming what is available. Because we've had to make choices about what the operating system is, and we know what's there, applications can make certain assumptions and we don't need to use a package managers. Instead we will focus on how to ''enable people building applications for this platform.'' |
|||
[[Category:Software development]] |
|||
Remember that this is not a classic linux distribution so when we don't have a package manager, you should ''ignore your screaming sysadmin hindbrain.'' |
|||
[[Category:Developers]] |
|||
[[Category:OLPC FAQ]] |
Latest revision as of 01:40, 21 December 2008
Our project goal
To create a solid operating system base for the OLPC hardware which anyone can deploy, requires no administration and provides a clear platform on which to build applications for educational computing.
Guidelines
Children must be allowed to play
Remember that this is a laptop that is designed for children, not for system administrators or programmers. We hope that children will be allowed to play with the base operating system as well as the programs that run on top of it. But at the same time, if they break it it must be very easy to fix and anyone should be able to fix it.
What this means is that the base operating system is something that can be replaced at any time, in a matter of minutes, and without damaging the child's data or the applications that happen to be installed. Simply put, replacing the operating system should not be scary.
Deployment is more important than development
Remember that how you build the operating system is very different than how it will be put into children's hands in the field. The tools that we use to build the operating system - package managers, compilers, installers - are not useful during the deployment of the operating system. This is because we know what the operating system will be and even more importantly we know what the hardware will be.
These two central facts mean we can make certain assumptions about deployment and can create an incredibly easy way to install and update the base operating system.
OLPC is the platform, not linux
Because of the small size of this platform, we have to make choices about what the platform will be, and how we enable applications to be written. This is not a classic GNU Linux distribution, with package manager, and an enourmous universe of loosely related software. If you ask 50 people "what is the Linux platform", you will get 500 different answers. Our applications can make assumptions about their hardware and software environment. We can focus on how to enable people building applications for this platform.