Feature roadmap: Difference between revisions
DanielDrake (talk | contribs) No edit summary |
|||
(338 intermediate revisions by 22 users not shown) | |||
Line 1: | Line 1: | ||
<b><font color=red><big>For current information on OLPC's feature planning process, see [[Release Process Home]].</big></font></b> |
|||
{{Deprecated}} |
|||
{{RightTOC}} |
{{RightTOC}} |
||
= Overview = |
|||
'''Note: currently undergoing major re-edit. The page is in transtion right now and I hope to have a first pass edit ready for comment by Wed. future feature planning meeting. [[User:Gregorio|Gregorio]] 18:47, 20 October 2008 (UTC) ''' |
|||
This page goes hand-in-hand with the [[Feature requests]] page, as follows: |
|||
This page lists all major ideas for features on the XO. It was formerly at this page: [[9.1.0]]. As features get prioritized, scoped and a target release is identified, they will be placed on the relevant release page. |
|||
This page will include links to and details on specific releases as needed. |
|||
This page differs from the 9.1, 9.2 and other pages in that it includes longer term thinking. |
|||
= Overview = |
|||
This page intends to layout a strategy for prioritizing software development on the XO. Going from the general to the specific, it lists: |
|||
* Goals |
|||
* Strategy |
|||
* Feature requests and suggestions for new or updated software. |
|||
The feature section is split in to two major parts: |
|||
# Features, requirements and requests by country. |
|||
This section should be verbatim requests from technical leads or translated and reviewed rewrites of initial feedback. Only items specifically requested by a qualified technical lead, administrator, teacher or student in the country should go in this section. |
|||
# Feature suggestions by technical strategy. |
|||
Each item in this section should include reference to the requester (e.g. country or engineer or URLs to relevant discussions and sites). It should also include a reference to which element of the strategy it fits in to (if available). |
|||
The feature are put in priority order based solely on their value towards achieving the goals and executing the strategy. The effort needed and the availability of engineers is not included in the prioritization decision. The engineering and test work, the availability of relevant software and the available resources will be added as critical decision factors when determining what features are delivered in each release. This page is meant to be abstracted from releases and it should therefore include a superset of priorities for any given release. |
|||
= Suggestions for providing input = |
|||
Please sign in to the wiki when updating this page so we know who made the edits. Feel free to add things following the guidelines in the overview above. |
|||
I suggest that you add comments on others peoples submissions on the discussion page [[Talk:Feature_roadmap]]. For any edits, its best if you and the original submitter can agree then update the main page accordingly. |
|||
These are my suggestions but more input is better than less. So if in doubt, make your edits and suggestions and we will move them or follow up later as needed. |
|||
Thanks, [[User:Gregorio|Gregorio]] 16:12, 20 October 2008 (UTC) |
|||
= Educational goals = |
|||
= Technical goals = |
|||
= Educational strategy = |
|||
.... |
|||
= Technical strategy = |
|||
This section outlines the main areas of technology focus. All of the specific features should address one of these primary concerns. The choice of these comes from listening to users and deployment leads and hearing what their concerns. If a proposal for development does not fit in one of these areas, it should still be listed. Then it can stand on its own or the strategic priorities should be adjusted or added to. |
|||
= Requests by deployments = |
|||
See also: [[Deployments]] |
|||
== Uruguay == |
|||
Spanish <br> |
|||
Greater than 100K x XOs deployed in schools. |
|||
New formulation of requirements from Uruguay. Build customization is top priority. Order of the remaining items does not reflect priority. |
|||
# Build customization, signing / upgrades |
|||
# Lease and theft management systems |
|||
# Journal to USB simplification |
|||
# Sugar performance improvements |
|||
# Collaboration (?) |
|||
# 802.1X (target roll out in 1 month) |
|||
# Web signed certificate |
|||
Rough notes below this line. |
|||
---- |
|||
From Emiliano and Erik in e-mail:<br> |
|||
Allow Uruguay to sign their own builds so that they can take an image from us, add their customizations then sign it and deploy on the XOs with the existing OLPC provided upgrade tools (e.g. olpc-update and USB keys). <br> |
|||
An efficient system upgrade method (ideally this preserves user ata, ideally it can be done in schools with minimal manual effort). <br> |
|||
: ''"Efficient" needs to be more carefully defined for this to be actionable. What resource is most precious?'' --[[User:Mstone|Michael Stone]] 00:00, 24 September 2008 (UTC) |
|||
List of changes in the new build (to be used to decide the best time to upgrade their deployed systems). <br> |
|||
: ''How are the present release notes inadequate?'' --[[User:Mstone|Michael Stone]] 00:00, 24 September 2008 (UTC) |
|||
Request from Uruguay for HW alerts: <br> |
|||
http://lists.laptop.org/pipermail/sugar/2008-July/007086.html <br> |
|||
In e-mail to Greg S: <br> |
|||
Better performance of Sugar. Faster launch and close of activities, faster switching between activities, better network usage, more responsive Sugar including Journal. |
|||
Better Flash support. Minimum on par with FF 3 on XP. |
|||
From ErikG trip: <br> |
|||
# Upgrade improvements including self signing |
|||
# Faster (better performance) including flash |
|||
# HW clock |
|||
# Journal to USB simplification (direct file system access) - teacher |
|||
Notes from the peanut gallery: |
|||
: ''an important question which I do not see being approached in these notes is "how are the Uruguay-based folks going to help get these patches written, tested, merged, and released?"'' --[[User:Mstone|Michael Stone]] 00:07, 24 September 2008 (UTC) |
|||
== Peru == |
|||
Spanish <br> |
|||
100K x XOs |
|||
http://wiki.laptop.org/go/OLPC_Peru <br> |
|||
http://wiki.laptop.org/go/Peru_activity_pack <br> |
|||
40K XOs with 656 |
|||
100K XOs with build 703 |
|||
Expected to update them each year at the beginning of the school year (Feb). |
|||
---- |
|||
'''Request number 1: Activation lease security feature''' <br> |
|||
Source: Kim trip from July 2008. <br> |
|||
Requirement - if the laptop is stolen, and doesn't contact its local school server within some period time (activation lease time); then it will tell the user that it will not activate on next boot and provide date and time. When it gets in the vicinity of the school server again, it will be |
|||
re-activated automatically. |
|||
Requirement - it is not possible to set the date on the laptop to keep it within the lease period or to force it to outside the lease management. This might mean you cannot change the date or there is no root access, or it might mean an alternate time source is used. |
|||
''' Request number 2: Improved performance''' <br> |
|||
Source: Wad trip in April 2008 |
|||
Speeding up the user interface especially time to launch activities (other?) |
|||
''' Request number 3: Easy creation of image with Peru specific activities and content'''<br> |
|||
Source: Kim trip from July 2008. <br> |
|||
This should allow them to add their own content and set of activities to a build after it is finalized and released by OLPC. The goal is for minimal or no OLPC involvement needed. |
|||
''' Request number 4: School Server monitoring of XOs''' <br> |
|||
Source: Kim trip from July 2008. <br> |
|||
I think there might be some work in the XO to make the information available; and a database and API spec from the school server. This is not as high priority for their deployment as the passive lease management, but I believe this feature will be important for any deployment. We should try to get feedback from other deployments as to the information we want to collect. |
|||
Requirement: Provide XS database and an API so that countries can create reports and monitoring for various aspects of XOs: |
|||
* Version of code |
|||
* Which laptops are being seen each day |
|||
* Total number of laptops being seen per day |
|||
* Number of laptops accessing the internet |
|||
* List of URLs being accessed |
|||
* List of URLs per laptop |
|||
* Which activities are being used per laptop |
|||
''' Request number 5: Collaboration in groups''' <br> |
|||
Source: Kim trip from July 2008 and Wad trip from April 2008. <br> |
|||
Requirements for groups (in priority order for Peru) <br> |
|||
# Project Groups, which can be set up on the XO. These groups might stay together for days, weeks, or months - for example to discuss growing different vegetables or flowers. Generally smaller than a classroom. These groups can be created by students. |
|||
# Groups per classroom, to be set up on a School Server by someone with special access (needs a UI that can be use by a teacher with password, for instance). Use case is to be able to hand out books, vocabulary lists, etc. these would be best to do within a class. |
|||
# Groups at the grade level because each grade will have some common curriculum. This would be set up at the school server and require special access. |
|||
''' Request number 6: Backup and restore of XO user data''' <br> |
|||
Make it easy to backup of the laptops. Should allow backup of user data before upgrade or clean install and then restore. Partially met by http://wiki.laptop.org/go/XS_Blueprints:Datastore_Simple_Backup_and_Restore |
|||
''' Request number 7: Better power management and longer battery life. <br> |
|||
Met by http://wiki.laptop.org/go/Feature_Longer_battery_life but needs to be a fully functional and supported feature. |
|||
'''Request number 8: XS server running on XO''' <br> |
|||
Source: Kim trip from July 2008. <br> |
|||
Can require additional HW (e.g. SD card or USB drive) on XO. Not completely clear how important this one is to Peru. |
|||
'''Other Requirements from Peru''' <br> |
|||
Source: Carla report. <br> |
|||
# Allow upgrading with Kingston USB keys |
|||
# Tool integrated with the XO to collect teacher feedback on trainings |
|||
# Build training tools and enhance the training experience |
|||
== Haiti == |
|||
Kreyol <br> |
|||
13K x XOs |
|||
== Rwanda == |
|||
10K x XOs with English keyboards. |
|||
== Ethiopia == |
|||
Amharic <br> |
|||
5k x XOs |
|||
They need some fixes to Amharic implementation which require a piece of software called SCIM. See http://wiki.laptop.org/go/9.1.0#Localization for more details. |
|||
No Internet access currently available and no school servers planned. |
|||
May consider school servers if they can get critical features from them (e.g. lease activation). |
|||
Top request so far is lease activation that times out if XO doesn't call home. |
|||
Verbatim from Eskender: <br> |
|||
* Security / leasing using the school server |
|||
* Content update using the school server |
|||
* Amharic input method ( consonant + vowel) instead of vowel consonant. Ticket No.8494 |
|||
* we would like to have features where we can install .rpm files which we need for some activities |
|||
Dan's input on top priorities from Ethiopia: <br> |
|||
Lease activation P1 <br> |
|||
Lower Power Consumption P1 <br> |
|||
RPM install to allow Akili P2 <br> |
|||
Power button not understood P2 <br> |
|||
PDF reader issues P2 <br> |
|||
School server scale P3 <br> |
|||
== Arabic == |
|||
Lebanon? <br> |
|||
500 x XOs |
|||
== Birmingham == |
|||
English |
|||
== Afghanistan == |
|||
Dari <br> |
|||
3000 x XOs |
|||
== G1G1 == |
|||
English, other? |
|||
== Mexico == |
|||
Spanish <br> |
|||
50K x XOs |
|||
== Mongolia == |
|||
Mongolian? <br> |
|||
Journal entries saved it Cyrillic can be opened. |
|||
Ability to easily upgrade. So Students do not have to go to terminal and type olpc-update --usb. Build this into an "Upgrade Stick" similar to Customization Key. |
|||
20K x XOs |
|||
Comments from Elana: http://lists.laptop.org/pipermail/devel/2008-October/019994.html |
|||
== Cambodia == |
|||
Khmer <br> |
|||
1000 XOs |
|||
== Thailand == |
|||
Thai <br> |
|||
500 x XOs |
|||
== India == |
|||
Devanagari <br> |
|||
500 |
|||
== Brazil == |
|||
Portuguese <br> |
|||
200 x XOs |
|||
== Oceania == |
|||
Enlish? <br> |
|||
500 x XOs |
|||
== Italy == |
|||
Italian <br> |
|||
600 x XOs |
|||
== Turkey == |
|||
Turkish? <br> |
|||
15k x XOs |
|||
== Senegal == |
|||
French <br> |
|||
1000 x XOs |
|||
== Argentina == |
|||
== Equitorial Guinea == |
|||
== Panama == |
|||
Spanish |
|||
== South Carolina == |
|||
English |
|||
== New York City == |
|||
English |
|||
== China == |
|||
? |
|||
== Pakistan == |
|||
URDU & English |
|||
= Requirements and Feature Suggestions = |
|||
This section lists major features. Each one should include: |
|||
* Feature name (inside triple equal signs) |
|||
* Requester (can be deployments or engineers) |
|||
* User level requirement definition (should also include relevant e-mail threads and other background discussion) |
|||
* Design and technical implementation ideas (should also include relevant e-mail threads and other background discussion) |
|||
* Names of champions and/or developers |
|||
Those can be included here or linked to other pages. |
|||
== Activity-related work == |
|||
=== New Activities === |
|||
;Requester: Birmingham, Juliano |
|||
;User level requirement definition: |
|||
From Birmingham:<br> |
|||
Firefox, Flash, mplayer <br> |
|||
A spreadsheet (I'm going to use gnumeric until Socialcalc is ready for production) <br> |
|||
A more full featured pdf reader (yes, I know there's the Read activity, but I'm planning on installing the full evince and making sure Firefox can open PDFs with it) <br> |
|||
A document editor the user can insert images into (the full Abiword would be great for this, but the current workaround [after editing a file] is to open write, then hit ctrl+n) <br> |
|||
From Juliano <br> |
|||
More development environments. |
|||
;Design and technical implementation ideas: |
|||
;Names of champions and/or developers: |
|||
General requests: <br> |
|||
Make it easy to sugarize third party applications. |
|||
Better Flash support. Minimum on par with FF on XP. From test report by Emiliano and thread on sur list. |
|||
=== Updates and Improvements to Specific Activities === |
|||
;Requester: Juliano |
|||
;User level requirement definition: A better color picker in Paint & Write. Current one is "It is made for professionals to get the HTML code of the color, but it also leads to error since people need to select the color in the circle and then in the triangle. It is giving bad time to people around here [Rwanda]". (From Juliano in e-mail 9/1) |
|||
;Design and technical implementation ideas: |
|||
;Names of champions and/or developers: |
|||
== Improved power management == |
|||
;Requester: Kim, Carla, Gnu, Ethiopia, Juliano |
|||
;User level requirement definition: A list of UI actions which may affect power usage: [[Requirements#Power Management Requirements]] Our job is to increase battery life in as many modes as possible. |
|||
;Design and technical implementation ideas: |
|||
Background on power draw including a break down watts used in different modes: http://wiki.laptop.org/go/XO_Power_Draw#The_Numbers and http://wiki.laptop.org/go/Per-Activity_Power_Usage |
|||
Suggestions from John/Gnu for increasing battery life follow. Significant technical actions that could reduce the laptop's power draw: |
|||
* Allow users to disable the mesh: reduces power consumption of the WiFi chip, allows the WiFi chip to enter power-save mode, and most importantly, allows lid-closed suspend to totally power off the WiFi chip. #6955 |
|||
* When the lid is closed, and the mesh is off (Wifi could be off or on), the laptop should totally power off the WiFi chip. This would lengthen the duration of lid-closed suspend (before totally draining the battery) from about 8 hours to several days. WiFi with an access point rather than mesh is now the default configuration in most schools, so this would have a dramatic impact on most deployments, particularly those with off-grid power. #7879 |
|||
* Put the EC into deep sleep when in a lid-closed suspend. This will cut its power from about 60ma to about 20ma (check with rsmith), which would further increase the duration of a lid-closed suspend before the battery drains. |
|||
* Speed up Resume, which currently takes more than 1000 ms. A cheap shot at this is to unload the USB bus modules. The Extreme power management setting was supposed to do this ("USB-disabling") but it doesn't yet. This would make auto-suspends much less visible to the interactive performance of the laptop, probably cutting the resume time to 500ms, which would let us enable auto-suspend in more circumstances. Beyond this cheap hack, we should actually fix the USB drivers so that you CAN be using the USB -- the wifi/mesh in particular -- and still not hang for half a second uselessly on every resume. |
|||
* Fix serious bugs in resume and networking. These have so far prevented us from turning on autosuspend by default for three major releases (650, update.1, and 8.2.0), and in each release, we decide at the last minute that we can't fix these bugs because it's too late in the release cycle and we didn't fix them earlier. Multicast, ARP, mDNS, the Presence Service, and collaboration must all work in the presence of autosuspend. Much work has gone into fixing these, but neither the final nits, nor polish, nor system-level testing in a network testbed, has occurred. |
|||
* Reduce packet traffic during sharing -- particularly multicast traffic, which loads many machines (and wakes them up from autosuspend). This will require diagnosis and improvement of the presence and collaboration protocols. Some work was done on this, after the high packet traffic melted the WiFi bandwidth in early deployments (e.g. turn on 30 laptops in the mesh, none of them can usefully get anything done), but our main response was to tell later deployments "Don't use the mesh, use access points" -- a significant reversal that we should keep working to fix. |
|||
* Improve cpu idle detection. Currently we can't auto-suspend very often (only after >1 minute of no user interaction) because it's so heavy-handed. The cpuidle infrastructure in the kernel should be able to tell us when it's safe to suspend because no process wants access to the CPU for the next few seconds. Most of the pieces are there. |
|||
* Reduce useless polling by kernel, daemons, and activities. There's still a major Python bug that causes multi-threaded pyGTK2 programs to poll uselessly once a second (#4680, #4677). Much work was done to close it, but there is still a small sprint required to get it done. This not only reduces power use directly, but also allows the system to suspend because it doesn't appear that activities need to do some work soon. |
|||
;Names of champions and/or developers: Gnu, Chris |
|||
== Accurate Touchpad == |
|||
;Requester: Carla. See also [[User talk:Gregorio#Priorities from Carla]] |
|||
;User level requirement definition: |
|||
;Design and technical implementation ideas: |
|||
;Names of champions and/or developers: Wad |
|||
== Synchronous Collaboration == |
|||
;Requester: Carla and David, Teachers on OLPC-Sur, Peru technical leaders |
|||
;User level requirement definition: See detailed collaboration requirements here: [[9.1.0 Collaboration Requirements]] |
|||
*Allow for intuitive mesh connection and activity-sharing. |
|||
*Must support first two use cases defined at: [[Use Cases#Collaboration Examples]] |
|||
*[[Requirements#Mesh / Connectivity_Requirements]] |
|||
*[[Requirements#AbiWord Sharing Requirements]] |
|||
* http://lists.laptop.org/pipermail/sugar/2008-July/007407.html |
|||
* May need to include that link in developer section below, tbd |
|||
;Design and technical implementation ideas: |
|||
;Names of champions and/or developers: |
|||
== Asynchronous Collaboration == |
|||
Interschool, other use cases. |
|||
=== Inter-school communication === |
|||
;Requester: |
|||
;User level requirement definition: |
|||
;Design and technical implementation ideas: |
|||
;Names of champions and/or developers: |
|||
What I see as most missing and most necessary is a safe space for collaboration between students at different schools, even in different |
|||
countries. http://lists.laptop.org/pipermail/localization/2008-July/001249.html |
|||
== Collaboration Groups == |
|||
;Requester: Peru |
|||
;User level requirement definition: |
|||
;Design and technical implementation ideas: http://dev.laptop.org/ticket/4043 |
|||
;Names of champions and/or developers: |
|||
== Performance == |
|||
=== Faster activity launch and save === |
|||
;Requester: Peru, Uruguay |
|||
;User level requirement definition: |
|||
;Design and technical implementation ideas: http://dev.laptop.org/ticket/6472 |
|||
;Names of champions and/or developers: |
|||
=== Faster Task switching === |
|||
;Requester: Peru, Uruguay |
|||
;User level requirement definition: |
|||
;Design and technical implementation ideas: |
|||
;Names of champions and/or developers: Erik |
|||
=== General UI sluggishness === |
|||
;Requester: Uruguay, Peru |
|||
;User level requirement definition: |
|||
;Design and technical implementation ideas: |
|||
From: http://lists.laptop.org/pipermail/sugar/2008-July/007471.html |
|||
Without going too deep into the stack, I think there is a lot of space or improvement even in the python code. Michael mentioned icon cache |
|||
and mesh view layout, both areas of the code that didn't get any love for a while and where I'm convinced we can make big/quick progresses. |
|||
I'm planning to spend a lot of my time on this in the next release cycle. (comments above from Marco) |
|||
;Names of champions and/or developers: Marco, Erik |
|||
== Reliability == |
|||
=== Memory Pressure === |
|||
;Requester: Elana, Peru, Carla |
|||
;User level requirement definition: |
|||
;Design and technical implementation ideas: Prevent or warn when user starts opening too many activities. Reduce OOM problems and handle OOM better. Ensure that activities don't harm the system. Find and reduce memory leaks. Make the system more stable. See also: http://sugarlabs.org/go/DevelopmentTeam/0.84/Reliability#Memory_bloat |
|||
;Names of champions and/or developers: Marco, Greg, Ed |
|||
=== Journal === |
|||
;Requester: Everyone |
|||
;User level requirement definition: http://sugarlabs.org/go/DevelopmentTeam/0.84/Reliability#Datastore_rework |
|||
;Names of champions and/or developers: Tomeu, Marco |
|||
=== Clipboard === |
|||
;Requester: Eben |
|||
;User level requirement definition: http://sugarlabs.org/go/DevelopmentTeam/0.84/Reliability#Solid_clipboard |
|||
;Names of champions and/or developers: Eben, Tomeu, Marco |
|||
== Journal, File Access and Manipulation Features == |
|||
=== Candybag === |
|||
;Requester: |
|||
;User level requirement definition: Idea for a new activity: Candy Bag. You open a bag (i.e. you launch the CandyBag activity), then you put journal entries in it, then sharing |
|||
this activity means that your friends can grab a candy in your bag. From: http://lists.laptop.org/pipermail/devel/2008-July/017459.html |
|||
;Design and technical implementation ideas: I'd be curious to see if there is a benefit to having a task like this manifested as an activity. It might work well. There's also a design for a more embedded [[Specifications/Object_Transfers|XO to XO object transfer system]]. [[User:Eben|Eben]] 19:40, 19 September 2008 (UTC) |
|||
;Names of champions and/or developers: |
|||
=== Object Transfer === |
|||
;Requester: several deployments; not sure which |
|||
;User level requirement definition: |
|||
A way to send objects from one XO to another without a USB key, and without sharing the activity. |
|||
:Design and technical implementation ideas; [[Specifications/Object_Transfers|XO to XO object transfer system]]. [[User:Eben|Eben]] 19:40, 19 September 2008 (UTC) |
|||
;Names of champions and/or developers: Simon |
|||
=== Easy copy of journal to a USB === |
|||
;Requester: Bastien, Uruguay |
|||
;User level requirement definition: As close to one click to cpoy files from Journal to USB. |
|||
;Design and technical implementation ideas: |
|||
;Names of champions and/or developers: |
|||
=== File name and directory access === |
|||
;Requester: Gnu, Ben, Erik, Greg, Marvin |
|||
;User level requirement definition: Allow listing, copying and finding files with standard Unix commands in the terminal view. See also point #1 at: http://wiki.laptop.org/go/9.1.0#e-mail_from_Ben_S |
|||
;Design and technical implementation ideas: |
|||
;Names of champions and/or developers: |
|||
== Localization == |
|||
;Requester: |
|||
;User level requirement definition: |
|||
;Design and technical implementation ideas: |
|||
;Names of champions and/or developers: |
|||
*Spell checking as part of l10n. (Sayamindu and Sur list) |
|||
*Allow adding a language after the build is created and without OLPC intervention |
|||
*Chinese support (Kim) |
|||
*Better RTL support |
|||
*SCIM (Sayamindu) |
|||
[http://lists.laptop.org/pipermail/devel/2008-June/015838.html Translation Technology], (see an earlier post, [http://lists.laptop.org/pipermail/devel/2006-March/000000.html Scaling and localization in package management], for background) |
|||
== Security, activation and deployability == |
|||
;Requester: |
|||
;User level requirement definition: |
|||
;Design and technical implementation ideas: |
|||
Easy GUI update of OS over net or from USB; Mostly for G1G1 but useful for all. |
|||
(I believe this needs to be divided into 'customization key' and initial install. The install has to do with the logistics, USB keys and wireless downloads. Customization has to do with how the image is created before the logistics of how to get it on laptops. [[User:Kimquirk|Kimquirk]] 17:25, 9 October 2008 (UTC)) |
|||
Many deployments have noted how hard it is to install or upgrade, especially on thousands of XOs. One issue is that inevitably, the Xos ship from the factory with an older build and countries need to upgrade them before deploying. I call that "upgrade in a warehouse". In other cases the XOs get deployed but there is little or no WAN available to upgrade. |
|||
;Names of champions and/or developers: |
|||
=== Quicker imaging === |
|||
;Requester: Ethiopia, Rwanda, Haiti |
|||
;User level requirement definition: |
|||
This feature request is needed to minimize the time to install a custom image over a wireless or wired network. It will be used when an XO comes from the factory with an older release. The deployment then needs to upgrade to the latest release and possibly install some customizations (e.g. content, language pack, activities, see also separate customization requirement below). The solution must be faster than imaging via USB sticks for imaging more than 1,000 XOs. Must allow install of new image via wireless or wired network. Possibly sub-variants of in school case for Mesh, Wireless AP, XS. |
|||
Workflow example for the network case above: <br> |
|||
# XOs leave the factory with an older image (e.g. 8.2.1) which includes this OFW code. |
|||
# A custom image based on the same or a later release including activities, content, language and maybe other customizations is prepared and loaded on the XS. |
|||
# An AP is setup and wired to the server. |
|||
# The XOs are turned on, as many as they have power jacks for. On boot up we can require that they hold down some special keys (game keys). |
|||
# Release the keys and the XOs find the AP and start listening on preconfigured multicast broadcast address. |
|||
# The XS broadcasts on the preconfigured address and each XO starts receiving. |
|||
# In case of errors which are more than what can be recovered by error correction the XOs, pick up again on the second broadcast or third or up to ... n (where is configurable or they just turn t he server off). |
|||
# When the XO has a complete image it notifies by putting a special image on the screen. |
|||
# On next reboot of the XO its running the new image. Subsequent boots do not do this multicast listening unless configured specifically by the user. |
|||
:Design and technical implementation ideas: Link to relevant OFW design specification: http://wiki.laptop.org/go/Multicast_NAND_FLASH_Update <br> |
|||
Some open issues to be addressed by the design proposal: <br> |
|||
* Do we pre-configure an ESSID and multicast addresses and hard code those in the factory? |
|||
* Can we get it down to no intervention of hold down games keys only? |
|||
* What happens if you turn on "too many" XOs? Can we just let them turn on as many as they want and we'll fill them in some order or should we |
|||
limit it to set # of XOs at a time? Can we scale it by using more "channels" or more APs? |
|||
* Any other security points? |
|||
;Names of champions and/or developers: Greg, Reuben, Mitch |
|||
=== Image Customization === |
|||
;Requester: Uruguay, Ethiopia |
|||
;User level requirement definition: |
|||
When imaging a new laptop or upgrading a laptop we must allow the deployment to create a custom image. This special image will allow XOs to be re-imaged via USB or over a network (via olpc-update to internet, via olpc-update to XS, via Quicker Imaging feature above). The customized image must allow configuration of the following items. These should be settable when creating a new image or when upgrading unless otherwise noted. |
|||
* Must not require any user interaction with the keyboard. Can require holding down a game key on startup. |
|||
* Must allow setting the language |
|||
* Must allow installing a language pack |
|||
* Must allow configuring the keyboard for a language |
|||
* Must allow inclusion of activities and other content |
|||
* Must allow installing an RPM (Ethiopia) |
|||
* Must allow setting Time, Date Timezone |
|||
* Must allow setting of all elements of the sugar-control panel, CLI and GUI versions. |
|||
* Must work with activated XOs and non-activated XOs. In the non-activated case must activate them so the XO is ready for use in the school when done. |
|||
* Must no require more than one reboot. |
|||
* Should turn off when its done or show "success" screen then one key stroke and shutdown. |
|||
* Must work with activated XOs and non-activated XOs. In the non-activated case must activate them so the XO is ready for use in the school when done. (rewrite to cover pre-activated and lease feature disabled cases). |
|||
* When imaging in a warehouse must activate the laptop |
|||
;Design and technical implementation ideas: |
|||
;Names of champions and/or developers: |
|||
=== School server push of XO images === |
|||
;Requester: Peru |
|||
User level requirement definition: |
|||
*The XO should be able to get the latest build from the school server |
|||
*The administrator makes the desired build available in the designated directory. When ready, the administrator requests to 'push' the build to all laptops as they come on line. Both of these activities should be an easy-to-use UI at the school server. |
|||
*A test requirement is the ability to create a white list of serial numbers that should be upgraded with the push. |
|||
=== Activation lease security feature === |
|||
;Requester: Peru, Ethiopia (points 4 and 5), Uruguay? |
|||
;User level requirement definition: |
|||
II-A1: Requirement - if the laptop is stolen, and doesn't contact its local school server within some period time (activation lease time); then it will tell the user that it will not activate on next boot and provide date and time. |
|||
II-A2: Requirement - it is not possible to set the date on the laptop to keep it within the lease period or to force it to outside the lease management. This might mean you cannot change the date or there is no root access, or it might mean an alternate time source is used... (not trying to solve the problem, just want to note this requirement). |
|||
II-A3: Requirement - Must allow setting of the lease time by the deployment lead (User interface required). That is, they can set it for 90 days (or whatever they want) on the first lease expiration and can set it to 30 days on the second. The granularity should be at 24 hours and be from 1 day to never expire. Must allow generation of the keys by the deployment. |
|||
II-A4: Requirement - Support the same as described above for Peru but allow the server which determines the activation to be across the Internet (AKA over a WAN and ibn a data center run by the deployment). <br> |
|||
II-A5: Requirement - Support the same requirement as described above but allow the reset of the activation to be done via USB key. That is, when an XO's lease expires, it must be booted with the USB key containing a special code. This can be done before it expires to extend the lease. |
|||
;Design and technical implementation ideas: http://dev.laptop.org/ticket/4043 |
|||
;Names of champions and/or developers: |
|||
;Related documentation: |
|||
*http://wiki.laptop.org/go/Firmware_Key_and_Signature_Formats#Version_2 <br> |
|||
*http://dev.laptop.org/~cscott/joyride-api/bitfrost.leases.crypto-module.html <br> |
|||
*http://lists.laptop.org/pipermail/security/2008-June/000441.html <br> |
|||
6689 and 7878 Expand customization key capabilities. |
|||
Allow school server to activiate XOs. <br> |
|||
Source: thread on techteam <br> |
|||
Actual security requirements: [[User:Mstone/Commentaries/Security_1]] |
|||
=== Theft-reporting security feature === |
|||
Sometimes known as 'active kill'. If the laptop is stolen, the serial number can be added to a 'stolen laptop' list so the laptop's activation can be turned off the next time it finds either a local school server or a global tracking server. |
|||
II-T1: Requirement: A trusted administrator can log into a central system (either regionally controlled or OLPC controlled) and add a serial number to the 'Stolen' list. |
|||
II-T2: Requirement: Any laptop that connects to a local or global server that finds a match on the 'Stolen' list, and it was originally activated with an activation key, will be de-activated. |
|||
II-T3: Requirement: The security must ensure that the person adding the stolen laptop is a person who has been given that access; and that the server causing the de-activation is a server that has been given that right. |
|||
II-T4: Requirement: Re-activating the laptop again requires the same procedure as initial activation or lease management. |
|||
Source: Kim from Peru, Daniel from Ethiopia. |
|||
=== XO monitoring === |
|||
Requirement: Provide XS database and an API so that countries can create reports and monitoring for various aspects of XOs: |
|||
* Version of code |
|||
* Which laptops are being seen each day |
|||
* Total number of laptops being seen per day |
|||
* Number of laptops accessing the internet |
|||
* List of URLs being accessed |
|||
* List of URLs per laptop |
|||
* Which activities are being used per laptop |
|||
* Number of minutes in each activity per laptop; can we determine (and subtract) idle time? |
|||
* Number of minutes in each activity within and outside of school hours (perhaps this means we capture the 'start' time of each activity and allow the reporting to decide if this is during or outside of school hours). |
|||
Background and implementation ideas: <br> |
|||
I think there might be some work in the XO to make the information available; and a database and API spec from the school server. This is not as high priority for their deployment as the passive lease management, but I believe this feature will be important for any deployment. We should try to get feedback from other deployments as to the information we want to collect. |
|||
Source: Peru |
|||
=== Customized startup images === |
|||
Must allow changing startup picture by copying an image to the XO. This should not require any OLPC developer intervention and should not need a new or special build. |
|||
http://lists.laptop.org/pipermail/devel/2008-July/017299.html |
|||
Source: Colombia and Mexico before. |
|||
Already present in 8.1.0. See: http://wiki.laptop.org/go/Tweaking_the_boot_animation |
|||
Should allow setting the language at the factory or when upgrading/re-imaging. The idea is to not require the kids to click the control panel to get to their language. One idea is to include it in the choice you make on first boot (e.g. name and color) better would be to set the language at install. <br> |
|||
Source: Bastien for Haiti. |
|||
Allow setting of Sugar Control Panel features in customization key. From Peru via Erik <br> |
|||
http://dev.laptoptop.org/ticket/6432 |
|||
http://lists.laptop.org/pipermail/devel/2008-March/011553.html |
|||
http://lists.laptop.org/pipermail/devel/2008-July/016417.html |
|||
=== Allow key customers to sign their own builds === |
|||
;Requester: Uruguay |
|||
== Network Configuration == |
|||
*G1G1 encryption. |
|||
*802.11i (AKA 802.1x) Uruguay |
|||
*GUI for managing network connections. |
|||
*Better default network connection choice algorithm (e.g. if USB - Ethernet is connected, use it first source: A Callahan). |
|||
: This already happens, but perhaps there are bugs. -[[User:DanielDrake|DanielDrake]] 16:37, 3 October 2008 (UTC) |
|||
This algorithm should be "smart" in its firsdt choice but should also be adjustable in the GUI. |
|||
== GUI, Usability, and Other Sugar == |
|||
=== Hardware Alerts === |
|||
;Requester: Uruguay |
|||
;User level requirement definition: http://lists.laptop.org/pipermail/sugar/2008-July/007086.html |
|||
;Design and technical implementation ideas: Designs ideas from Scott and Eben in thread. e.g. I hope our alert system will use the freedesktop.org standard: http://www.galago-project.org/specs/notification/index.php There is a visual design for the [[Designs/Activity_Management|notification system]] as well. |
|||
;Names of champions and/or developers: |
|||
=== Help === |
|||
More prominent help information - Brianne, G1G1 <br> |
|||
One idea from Eben. From: http://lists.laptop.org/pipermail/sugar/2008-August/007547.html <br> |
|||
All of our initial discussions on help focused around a contextual help system, and I still hope that this is where we'll be taking this in the future. By embedding (?) icons within the secondary palette menus for various devices, objects, activities, and even individual buttons and controls, we can provide a way to launch into the help activity and dive directly to the relevant info for the activity, control, etc. selected. In addition, I'd like to support a community driven help system by which, in addition to the activity/olpc provided help, it's possible for kids to add tips, tricks, images, tutorials, and other info to these sections for later consumption by peers. |
|||
This is a noble, but ambitious goal, which is why a simple and static help activity is the present solution, and why it's only integrated into the system at a single point - the activity itself. |
|||
Show size of files in journal and in general make it easier. |
|||
Trash can for recovering files. Requested by Bastien, Haiti. <br> |
|||
http://lists.laptop.org/pipermail/sugar/2008-August/007889.html |
|||
=== Scalable zoom levels === |
|||
;Requester: UI Team, Collabora |
|||
;User level requirement definition: We need to support a mechanism for auto-filtering the view to a "reasonable" set of activities and XOs, and provide rich mechanisms (search and filters) for adjusting one's perspective on the view to find items of interest. |
|||
;Design and technical implementation ideas: Gadget is the core of this effort. We need some additional UI work to hook it up. One aspect of the solution is the addition of list views to all zoom levels, making it possible to list the entire set of people, activities, access points etc, see their icon and name at a glance, sort alphabetically or by type, and also filter as desired. |
|||
;Names of champions and/or developers: Eben, Collabora |
|||
== Other == |
|||
=== XO Clock === |
|||
;Requester: |
|||
;User level requirement definition: |
|||
;Design and technical implementation ideas: |
|||
;Names of champions and/or developers: |
|||
= Priorities from Engineering = |
|||
*{{ticket|4662}} needed for better activity capabilities. |
|||
*{{ticket|2447}} caps lock |
|||
*{{ticket|1997}} flashing in write |
|||
*NAND full crashes system |
|||
*I think analyzing performance of non-JFFS2 file systems and picking a replacement should be a high-priority item for 9.1 update. |
|||
*from: http://lists.laptop.org/pipermail/devel/2008-July/016994.html |
|||
*{{ticket|2188}} sharing files and resources between activities |
|||
*{{ticket|1496}} Switch to real public keys - Scott |
|||
*{{ticket|8170}} |
|||
*{{ticket|8171}} |
|||
*{{ticket|8177}} |
|||
Upgrade journal per: http://wiki.laptop.org/go/OLPC_Human_Interface_Guidelines/The_Laptop_Experience/The_Journal |
|||
Less flickering in starting activities and other screen changes - Michael |
|||
Show memory usage to user: <br> |
|||
We provide no end user feedback on memory usage, either. We should investigate whether revisiting our previous attempt to give such feedback, now that Linux can provide much better information than it could when we abandoned our previous donut attempt. The users could really help, if only we let them know a bit about what was going on... |
|||
From Jim e-mail to devel: http://lists.laptop.org/pipermail/devel/2008-September/018944.html |
|||
Fedora 10 rebase? |
|||
Fix all GPL issues and get sign off from FSF that we are fully compliant. |
|||
Ensure the blinking of the lights is meaningful. <br> |
|||
http://lists.laptop.org/pipermail/sugar/2008-September/008237.html |
|||
Debug tool that easily allows plug of diagnostic USB stick which analyzes and reports back detailed status. <br> |
|||
ErikG idea from Uruguay |
|||
Backup to Internet idea from Walter: <br> |
|||
http://lists.laptop.org/pipermail/sugar/2008-September/008340.html |
|||
Stability suggestion from Albert C (and his children) re. protecting against out of RAM conditions: <br> |
|||
http://lists.laptop.org/pipermail/devel/2008-September/019575.html |
|||
== Sugar roadmap == |
|||
http://sugarlabs.org/go/ReleaseTeam/Roadmap/0.84 |
|||
== Easier Access to and Help Using Source Code == |
|||
Put a link in the library on the XO which links to GIT or other relevant source. (source: John/Gnu) |
|||
== Improved clipboard == |
|||
Here is a rough [[Specifications/Clipboard|specification]] of the intended design for a usable multi-item clipboard. I'll add a list of related tickets shortly. |
|||
== Sugar architecture ideas == |
|||
From thread started by Michael S <br> |
|||
http://lists.laptop.org/pipermail/sugar/2008-July/007304.html |
|||
== e-mail from Ben S == |
|||
http://lists.laptop.org/pipermail/sugar/2008-July/007390.html |
|||
1. The datastore <br> |
|||
Sugar's design calls for a centralized rich data storage system, the |
|||
datastore. The datastore provides secure, limited file access to |
|||
Activities, manages file metadata, maintains a differentially compressed |
|||
history of all work, ensures reliable backups to a trusted server, and |
|||
mediates the connection to removable media. Every one of these features |
|||
is crucial to Sugar's functioning, and almost none are really working at |
|||
this time. We cannot afford another release based on the present |
|||
datastore, as it fails to implement the features we require, and is |
|||
unreliable even in the features it supposedly implements. |
|||
Solution: <br> |
|||
There have, at this point, been at least five distinct proposals for a |
|||
next-generation datastore design, all differing in underlying |
|||
implementation and user-facing functionality. We need to have a Once And |
|||
For All datastore summit, draw up a compromise datastore design, and |
|||
implement it. We can do this by 9.1.0, if we are willing to make it a |
|||
priority. |
|||
Additional Links: |
|||
* [[Sugar.datastore.datastore|The current datastore]] |
|||
* [[Olpcfs]] |
|||
* [http://lists.laptop.org/pipermail/community-news/2008-January/000095.html Sugar Datastore Summit in January] (item 10). |
|||
* [http://dev.laptop.org/git?p=users/mstone/sds;a=blob;f=README;hb=HEAD SDS] (stands for Simple Data Store or possibly something else) |
|||
* [http://lists.laptop.org/pipermail/devel/2008-March/012047.html Git-based] datastore design |
|||
- Expose the file system on save, open and in the journal. Source: Marvin Minsky |
|||
2. OS Updates <br> |
|||
We now have hundreds of thousands of laptops deployed in the field, |
|||
running a variety of OS versions. OLPC cannot afford to support a |
|||
multitude of decrepit versions, and children cannot afford to suffer |
|||
defects that have long since been fixed. We need a reliable, fast, |
|||
update system that does not rely on the network, so that children |
|||
everywhere can move to the |
|||
latest version of Sugar without losing their data. The update system must |
|||
support tremendously invasive upgrades, like repartitioning the NAND and |
|||
replacing JFFS2, because we expect to do this in short order. |
|||
Solution: <br> |
|||
A secure usb autoreinstallation stick is required. It is not technically |
|||
challenging to implement, but it must be made a priority, and then be made |
|||
widely available and idiot-proof. |
|||
3. File Sharing <br> |
|||
Students and teachers have no good way to distribute files directly from |
|||
one person's Journal to another. If all Activities that open a file do |
|||
not implement Collaboration, then there is simply no way to transfer that |
|||
file over the network. This is the most basic possible network |
|||
functionality --- FTP was standardized in 1971 --- but it is completely |
|||
missing from our system. |
|||
Solution: <br> |
|||
A number of technical proof-of-concept programs have been written for |
|||
distributing files, using methods like HTTP over stream tubes and |
|||
Cerebro's Teleport. There is an excellent set of [[Specifications/Object_Transfers|UI mockups for this] |
|||
functionality. All that is left is to Get It Done. |
|||
Additional Links: |
|||
* [[Read]] |
|||
* [http://lists.laptop.org/pipermail/sugar/2008-March/004499.html Distribute] |
|||
* [[Summer_of_Code/Ideas#Publication_and_Journal_sharing|A Summer of Code application]] |
|||
4. Activity Modification <br> |
|||
A keystone of the Sugar design has always been the user's ability to edit |
|||
any Activity, and to cement this a "View Source" key was designed right |
|||
into the hardware. This functionality is simply missing, and that |
|||
prevents us from making our principal claim regarding an emphasis on user |
|||
modification. |
|||
Solution: <br> |
|||
"Develop" must be polished, finished, and included by default. This will |
|||
require modifications to the core system, in order to support an endless |
|||
variety of slightly modified Activities. It will also require work on the |
|||
Develop program itself. If volunteer efforts are not moving fast enough, OLPC |
|||
must ensure that someone is working on the problem as a professional. |
|||
Additional links: |
|||
* [[Develop]] |
|||
* [[Old_Develop_activity|Previous, stalled attempt at Develop]] |
|||
* [[View_Source|Current status of "view source"]] |
|||
* [[OLPC_Human_Interface_Guidelines/The_Laptop_Experience/View_Source]] |
|||
* [[EAG_The_Laptop_Experience:_View_Source]] |
|||
5. Bitfrost <br> |
|||
Sugar, as it currently stands, is among the least secure operating systems |
|||
ever, far less secure than any modern Linux or Windows OS. I can easily |
|||
write an Activity that, when run by the user, escalates to root privileges |
|||
and does anything I like with the system. Given Sugar's competitive |
|||
status against Windows XO, this failing threatens the very existence of |
|||
the project. The Sugar designs have long stated that safely running |
|||
untrusted code from a classmate is a key goal for learning, but the |
|||
current software accomplishes precisely the opposite. |
|||
Solution:<br> |
|||
NO ONE IS WORKING ON BITFROST. That's right. Everyone who was working on |
|||
Sugar security (after activation) has either left OLPC or moved into |
|||
another role. Someone must be assigned to continue the security work, or |
|||
it will certainly never make progress. Anyone who _does_ take on this |
|||
challenge will start from a much better position than previously, |
|||
because many of the Vserver features have moved into the mainline kernel |
|||
over the last few versions. The kernel now contains a number of new, |
|||
powerful isolation and control primitives. |
|||
6. Power management <br> |
|||
Power management is the raison d'etre of the XO hardware. It is the |
|||
reason that the hardware took four times as long to develop as a standard |
|||
laptop, the reason that we suffer from the closed Marvell operating |
|||
system, the reason that OLPC's best engineers flew around the globe |
|||
fighting with details of voltage and capacitance. In an increasingly |
|||
crowded low cost laptop market, it is one of OLPC's few remaining |
|||
distinctions. As of 8.2.0, aggressive suspend is available, but its |
|||
functionality is still far from the target. |
|||
Solution: <br> |
|||
Enabling aggressive power management is a major challenge, perhaps more |
|||
difficult than anything else on this list. We know what is required for a |
|||
first step: ensure that we can reliably wake up from a hardware timer. |
|||
This single feature would be enough to enable a basic sleepy approach |
|||
that is truly transparent to software. Other work includes removing USB |
|||
from the critical path on resume. Aggressive suspend may not be ready for |
|||
9.1.0, but if no one is working on it it will never be ready. |
|||
== Easy update for G1G1 == |
|||
I think this is the biggest missing feature for G1G1 users, honestly. The software update control panel for activities is a great step in the right direction, but to really get people into Sugar moving forward, we have to make one-click updates a reality. They have no school server or other centralized source doing it for them, and we can't expect many to go through the manual update process. Once we have a super-simple control-panel-integrated dev key request process, we should also adjust the update UI to offer cutting-edge updates to those with keys. |
|||
From Eben and Joe |
|||
== Suggestions from [[User:CScott]] == |
|||
Moved to [[User:CScott#Desiderata_for_9.1.0]]. Crib proposals from there. The canonical source for my 9.1.0 proposals is now the postings to devel@ I made, with subject lines beginning, "9.1 Proposal:". |
|||
== TODO list of [[User:Sayamindu]] == |
|||
* Language Packs version 3 |
|||
** Packs should be as RPMs |
|||
** Utilize patches from Ubuntu for Python and Glibc to define a separate install location/search path for PO files installed via the packs |
|||
** Also see CScott's wishlist above. |
|||
* SCIM support |
|||
** Conversion of all existing layouts to [http://www.m17n.org/common/m17n-docs-en/m17nDBFormat.html m17n db format ], along with refinements and better support for modifiers whenever possible (<trac>6280</trac> |
|||
** Modification of relevant startup and configuration scripts for SCIM support |
|||
** User experience for keyboard layout switching should not change |
|||
** Proper handling of Amharic characters (<trac>8494</trac>) |
|||
** Implementation of [[OLPC_Nepal_Keyboard]] |
|||
* Enhanced i18n |
|||
** Better support for translation of content |
|||
** Investigation of the possibility of using native digits for translations <trac>7857</trac> |
|||
* Read improvements |
|||
** Better Ebook mode support (still vague on this.. expect more details soon) |
|||
* Terminal improvements |
|||
** Copy paste and drag and drop support enhancements |
|||
** Pippyfication (<trac>5543</trac>) |
|||
** Better handling of "Run as root in the UI" |
|||
* Support for standard desktop applications in Sugar |
|||
** Replace matchbox with something more friendlier to standard desktop applications |
|||
** Support for .desktop files in the launcher list |
|||
** Support startup-notification |
|||
** Support standard application icons on the frame |
|||
== Thoughts from [[User:cjb]] == |
|||
* Power turned on by default. |
|||
* Translation of Sugar inside Sugar? |
|||
* A working Distribute activity for journal objects (could be in the Journal) |
|||
== Thoughts from [[User:Mstone]] == |
|||
* [[Security]] already contains my immediate security roadmap. |
|||
* My [[User:Mstone|user page]] links to several of my other ideas, many of which are procedural improvements with software components. |
|||
* My largest ongoing concern is that we have not yet smoothly carried a deployment through an update to a new major stable release. (Peru may become our first exception to this rule, but this remains to be seen.) |
|||
== Notes from [[user:sj|sj]] == |
|||
This page shouldn't be broken down by contributor; it needs serious refactoring and organization by topic and scope. |
|||
Library and bundle updates: |
|||
* API and .info unification across content and activity bundles. Making both and a general [[generic bundle]] clearly described within an overarching bundle format. |
|||
** '''thought experiment''' : how does one present an activity (has its own isolation-friendly code) that includes a library bundle (its own browser-browsable static content, help and supplemental materials) and a generic resource bundle (a repository of sounds and images) look like? How do other parts of the system (the Journal, Browse, other activities) see and interact with these three collections of material (to browse and copy the code, to view the static content, to aggregate the resource collections with other collections)? |
|||
* a [[Dynamic library]] implementation |
|||
* coordination of a unified help interface building on top of the library bundles defined for each activity on the system. |
|||
** integration of some way to update and share this. related to how to leave a comment on/about an activity or file/resource |
|||
* coordination of local library bundles, and regional caches of viewed material, school server caches of bundles, and web caches. |
|||
* cleaner display of available bundles via a bundle updater; relatd to but not the same as the current software upgrade function, which has a strong emphasis on olpc-stamped/signed materials |
|||
Sharing updates: |
|||
* provide a way to send a file to someone else. related to [[bundle (activity)]]. |
|||
* provide a way to publish material to the world. related slightly to how edublog works now? see also robson's and juliano's interests here |
|||
* add support for asynchronous sharing over time : the sharing of an effort should not require everyone to be online at once. |
|||
Adding basic interface pieces that we want to support in the long term, and making them do something familiar, reliably, every time they are at hand. "escape", "stop/start", "share", "view source", "keep", "cut" and "paste" should all do fairly reliable things across activities. Make them do something recognizable even when the activity developer hasn't provided an app-specific hook for same. |
|||
== Replacement file system == |
|||
The current file system used on the XO ([[http://en.wikipedia.org/wiki/JFFS2 JFFS2]]) was developed in the days of 32/64MiB NOR flash devices and does not scale well to the 1GiB NAND devices we are using today and certainly will not deal well with larger devices in gen 1.5 and gen 2 systems. The main issues are that JFFS2 needs to scan all blocks at mount time and that the garbage collection algorithm increasingly consumes CPU cycles as the system fills up. The first issue manifests itself as large delays at boot up to mount the file system as it is full (need to quantify this), and the second issue simply means less CPU cycles can be dedicated to user task processing. In the last few years, there has been much activity in the embedded Linux world on alternatives to JFFS2 and we need to investigate these to determine which one best fits our needs: |
|||
* [http://www.yaffs.net/ YAFFS2] : Has been around for several years and in active use in the embedded space. It does not provide compression out of the box as the devices that use it often carry already compressed data such as MP3 and MPG files. |
|||
* [http://www.linux-mtd.infradead.org/doc/ubifs.html UBIFS]: A new file system recently merged into the kernel designed for use on large flash devices. Supports compression out of the box and supports disabling compression on a per-inode basis, which is something we desire. |
|||
* [http://logfs.org/logfs/ LogFS] : Another JFFS2 replacement designed for fast operation and scalability. Still fairly new and not in very active use AFAIK. |
|||
* [http://btrfs.wiki.kernel.org/index.php/Main_Page Btrfs] : A very new file system that is primarily targeted for large storage systems with features such as snapshotting, RAID support, and online fsck. David Woodhouse has expressed that he will look into getting this to work on NAND, but it is too new of a code base to consider for 9.1 |
|||
* Managed NAND : (Not an option for existing XO machines, but might be a direction for future hardware) The industry seems to be moving away from raw NAND in favor of a NAND-chip plus microcontroller solution. The microcontroller implements a Flash Translation Layer that hides the low level NAND details, presenting a higher level interface that looks like an ordinary hard disk, so an ordinary filesystem layout like ext3 could be used. The driving force behind managed NAND is rapid hardware evolution toward multi-level-cell NAND chips and smaller process geometries, which change important NAND parameters like page sizes and ECC. The situation is similar to what happened with hard disks in the 80's, where raw-disk interfaces gave way to SCSI and IDE, which hide the ugly low-level details that changed every technology generation. Managed NAND options include LBA-NAND from Toshiba (pin-compatible with NAND chips), eMMC from multiple vendors (with an SD/MMC-compatible hardware interface), and various "disk on chip" products (IDE-compatible interface). |
|||
=== Development process === |
|||
* Analyze and quantify the use patterns that trigger issues with JFFS2. |
|||
* Gather requirements for a new file system that go beyond solving above issues. |
|||
* Develop/integrate a set of tests for FS performance and reliability that take into account our use patterns, the above issues, and any other features we wish to validate. |
|||
* Study the three main alternatives (YAFFS, UbiFS, LogFS) to determine what requirements they meet |
|||
* Run our FS test suite on above alternatives |
|||
* Analyze test results and requirements study and make a decision on which alternative to use. |
|||
=== Deployment process === |
|||
Once a file system is chosen from the above process, we will have to: |
|||
* Integrate the file system into our kernel if it is not upstream (YAFFS2 or Logfs) |
|||
* Integrate the file system support packages into our build system and file system images |
|||
* Update our build scripts to generate the proper image type for |
|||
=== Activity impact === |
|||
This change should not have any impact on activity developers as it is at a very low level of the stack. |
|||
=== End-user impact === |
|||
;1. [[Feature requests]] : Features, requirements and requests by country. This page contains verbatim requests from technical leads or translated and reviewed rewrites of initial feedback. Only items specifically requested by a qualified technical lead, administrator, teacher or student in the country should go in this section. See also: [[Deployments]] |
|||
End users will see faster boot up time and will not see (as much) performance degradation as the file system fills up. |
|||
;2. [[Feature roadmap]] : Feature suggestions by technical strategy. Each item on this page should include reference to the;Requester: (e.g. country or engineer or URLs to relevant discussions and sites). It should also include a reference to which element of the strategy it fits in to (if available). |
|||
= Comments from other interested parties = |
|||
== Browse/XULRunner opportunities from [[User:Skierpage]] == |
|||
== Suggestions for providing input == |
|||
[[XULRunner]] 1.9.1, the Mozilla code powering [http://developer.mozilla.org/en/Firefox_3.1_for_developers Firefox 3.1], should be released in the 9.1.0 timeframe. |
|||
# Please sign in to the wiki when updating this page and its subpages so we know who made the edits. |
|||
# Raw, unfiltered feedback from countries and deployments should go on the [[Feature requests]] page. |
|||
# Feel free to add to this page following the guidelines described above. You can add a subsection to [[#General comments]] below, or add to [[Talk:{{PAGENAME}}|this page's discussion page]]. |
|||
# To comment on a particular feature, click the feature's title to go to its subpage, then comment on its discussion page. |
|||
# Before editing the subpage for a particular feature, , discuss your edits with the original poster /owner beforehand. |
|||
# You must use the template correctly when requesting features or enhancements, otherwise your feature won't show up. Follow [[#Adding to the roadmap]] carefully |
|||
# Use <nowiki><trac></nowiki> when referencing tickets/bugs. |
|||
# Additional suggestions for providing input are welcome. |
|||
# Create a new section (At the <nowiki>== header 2 ==</nowiki> level) for your country or request if none present are adequate. |
|||
# Make sure all ideas have a very solid basis for being valuable to customers. Including links to blogs, reports or other data that proves users really need your feature will make a big difference. |
|||
= Roadmap = |
|||
Activities and content can use its new features, at the risk of incompatibility with earlier Sugar releases. |
|||
This section lists major features to be added to XO software over time. |
|||
=== <audio> and <video> in the browser === |
|||
== All features == |
|||
XULRunner 1.9.1 supports the HTML5 <audio> and <video> tags, providing the ability to play [[OGG]] audio and video files natively in the browser. |
|||
Click on the arrows in any heading to re-sort by that heading. |
|||
This will probably improve performance and reduce memory footprint compared with embedding the [[Totem plugin]], the trade-off needs to be tested and Browse configured accordingly. |
|||
{{#ask: |
|||
[[Category:Software features]] [[Is part of::+]] |
|||
|?Is part of=Area |
|||
|?=Feature |
|||
|?Requested by=Requested by |
|||
|?Helps deployability#yes,-=Helps deploy |
|||
|?Target for 9.1#yes,no |
|||
|?Contact person=Owner(s) |
|||
|?Priority |
|||
|sort=Is part of |
|||
|mainlabel=- |
|||
|limit=200 |
|||
|default=Nothing found in [[:Category:Software features]] with [[Property:Is part of]]?! |
|||
}} |
|||
== Other queries == |
|||
Wikipedia articles and thus [[Wikislices]] can take advantage of this, and richer multimedia in Browse becomes practical. |
|||
[[{{PAGENAME}}/Page of all features that target 9.1.0]] embeds all the pages with [[Property:Target for 9.1|Target for 9.1]] set to "yes". |
|||
See [[Features-test]] for other queries, you can add your own to it or copy them to other pages. |
|||
= Key modules and relevant module roadmaps = |
|||
==Adding to the roadmap== |
|||
== Standard information == |
|||
When adding a new feature please follow these guidelines. |
|||
<small>(These are all semantic annotations that other pages such as [[Releases]] can query.)</small> |
|||
# Make sure the feature doesn't already exist |
|||
Release notes: [[Release notes/{{PAGENAME}}]] |
|||
# Read the Usage section of [[Template:Feature tracking]] for help filling out the template on the new page |
|||
[[Category:Releases]] |
|||
# Pick a "Feature subcategory" from [[:Category:Software features]] |
|||
<!-- above lines maybe should be a template --> |
|||
# Find the requester(s)' wiki pages and the feature owner's User: wiki page |
|||
# Change ''Good feature name'' to your new subpage title, following the [[OLPC:Style guide]] for page names |
|||
# Ready? Click the button below to create a new wiki subpage with the right title convention that's prefilled from [[Template:Feature tracking/Preload]], edit it to suit, then save. After a delay (due to wiki query and page caching), your new subpage will appear in lists of features. |
|||
<inputbox> |
|||
type=create |
|||
preload=Template:Feature tracking/Preload |
|||
buttonlabel=Create a new Feature roadmap subpage. |
|||
default=Feature roadmap/Good feature name |
|||
width=40 |
|||
bgcolor=#f0f0ff |
|||
</inputbox> |
|||
A description of each field is listed here: <br> |
|||
Status: [[status::gathering requirements]] and setting priorities |
|||
; Requesters : Deployments, engineers, or both who support the request |
|||
; Requirements : User level requirement definition; Links to detailed wiki pages, mailing list threads, or other resources are welcome |
|||
; Specification : Design and technical implementation ideas; Links to detailed wiki pages, mailing list threads, or other resources are welcome |
|||
; Owners : Names of developers and/or champions of the request who will ensure that progress is made |
|||
; Priority : 1-5 (1 = Critical, 2 = High, 3 = Medium, 4 = Low, 5 = not needed) |
|||
; Helps deployability : yes or no Better deployability is the goal of [[9.1.0]]. Set to "yes" if the feature helps that goal, regardless of its "target 9.1.0" status. |
|||
; Target for 9.1 : yes or no "yes" means that an OLPC engineer is (or will be) assigned to work on this for 9.1.0 release. |
|||
See also: [[#Suggestions for providing input|general suggestions for providing input]]. |
|||
Primary maintainer: not chosen yet |
|||
=== Adding a category === |
|||
ECO: not yet |
|||
Only do this with careful forethought and a confirmation on the wiki gang list http://lists.laptop.org/pipermail/wiki-gang/> |
|||
1. Mention the new category name in the template: |
|||
Primary objectives: |
|||
|Feature subcategory=''Easter eggs'' |
|||
* [[Has objective::This is a time-based release per the process at: [[Release Process Home]].]] |
|||
2. Be sure to create the subcategory: edit the category's page (Category:''Easter eggs'') and add |
|||
* [[Has objective::Not chosen yet.]] |
|||
<tt><nowiki>[[Category:Software features]]</nowiki></tt> to it. |
|||
The process is not final. It is a set of rough guidelines still being worked out and subject to change. |
|||
If you forget #2, some queries will omit the page and people may have a hard time finding your new feature subcategory. |
|||
Lead customer: ? |
|||
=== Documentation on semantic templates === |
|||
Build number and URL: [[Build number::999]] |
|||
{{SMW for software features}} |
|||
When you fill in [[Template:Feature tracking]] on one of the feature roadmap sub-pages, the template both ''displays'' the feature's information in a basic table (using {{tl|Definition table}}) and makes ''semantic annotations'' for many of the template fields — assigning values to properties such as [[Property:Requested by]]. That allows this page and others (such as [[Features-test]]) to query for and display these properties. |
|||
Schedule: tbd, should be first half CY 09 and possibly as early as December 2008. |
|||
[[Category:Releases]] |
Latest revision as of 16:05, 10 February 2011
For current information on OLPC's feature planning process, see Release Process Home.
OverviewThis page goes hand-in-hand with the Feature requests page, as follows:
Suggestions for providing input
RoadmapThis section lists major features to be added to XO software over time. All featuresClick on the arrows in any heading to re-sort by that heading. {{#ask: Is part of::+ |
?Is part of=Area | ?=Feature | ?Requested by=Requested by | ?Helps deployability#yes,-=Helps deploy | ?Target for 9.1#yes,no | ?Contact person=Owner(s) | ?Priority | sort=Is part of | mainlabel=- | limit=200 | default=Nothing found in Category:Software features with Property:Is part of?!
}} Other queriesFeature roadmap/Page of all features that target 9.1.0 embeds all the pages with Target for 9.1 set to "yes". See Features-test for other queries, you can add your own to it or copy them to other pages.
Adding to the roadmapWhen adding a new feature please follow these guidelines.
<inputbox> type=create preload=Template:Feature tracking/Preload buttonlabel=Create a new Feature roadmap subpage. default=Feature roadmap/Good feature name width=40 bgcolor=#f0f0ff </inputbox> A description of each field is listed here:
See also: general suggestions for providing input. Adding a categoryOnly do this with careful forethought and a confirmation on the wiki gang list http://lists.laptop.org/pipermail/wiki-gang/> 1. Mention the new category name in the template: |
Feature subcategory=Easter eggs
2. Be sure to create the subcategory: edit the category's page (Category:Easter eggs) and add [[Category:Software features]] to it. If you forget #2, some queries will omit the page and people may have a hard time finding your new feature subcategory. Documentation on semantic templatesEnables a dynamic Feature roadmap — see Semantic MediaWiki#For software features. When you fill in Template:Feature tracking on one of the feature roadmap sub-pages, the template both displays the feature's information in a basic table (using {{Definition table}}) and makes semantic annotations for many of the template fields — assigning values to properties such as Property:Requested by. That allows this page and others (such as Features-test) to query for and display these properties. |