µbuntu
µbuntu
Status
Created: 2005-04-23 by MattZimmerman
Priority: LowPriority
People: TollefFogHeenLead, ThomMaySecond
Contributors: MattZimmerman
Interested: MikeOConnor, DarrylRoss, RobertCollins, CelsoProvidelo, DanielDebonzi, JeromeGotangco, ColinCharles, MauricioHernandez
Status: MattZimmermanQueue, EditedSpecification, BreezyGoal, DistroSpecification
Branch:
Malone Bug:
Packages:
Depends:
UduSessions: 1 (0)
Introduction
Create an Ubuntu derivative suitable for use on embedded systems and appliances such as home theatre systems.
Rationale
Many appliances are now being powered by Linux. As such, it makes a lot of sense for Ubuntu to target this space.
Scope and Use Cases
There are two different scopes in play:
mini-ubuntu:
- Appliance level, such as home theatre, PVR
- Larger footprint
- Custom applications for each appliance
- should be maintainable with standard distribution tools
µbuntu: (pronounced myu-buntu"??) Absolute MAXIMUM Target size for base install: 100MB; target could be reduced to approximately 8MB as a minimum Support read-only root? This is a popular configuration, but what are the use cases? read-write data are strictly separated? See also ThinClient
mini-ubuntu µbuntu: The minimal seed should consist of the bare minimum of packages required to create a useful system. System integrators and ISVs would then integrate their applications on top of this shell; they could also select other packages as required. µbuntu requires that we go through some extra steps; we must be able to install from one platform (eg x86) to the target (eg arm) platform, and we must be able to only install the very minimum that a package requires to be useful; eg we strip out documentation. This will require hooks in dpkg to allow this to occur in an automated fashion. This is an implementation of the dpkg classes specification. It would probably not be Breezy material as it would require a fair bit of work. We must also create infrastructure to allow us to create images for automated installation onto embedded systems trivially. Embedded devices that run X need to use an alternative implementation, such as TinyX or kdrive. We need to investigate the sanest implementation and package it. Also, we should provide an example graphical environment such as GPE for testing purposes. Given the amount of work necessary for µbuntu, it is probably not Breezy material. A mini-ubuntu would be a first approximation and a very useful step along the way.
µbuntu: It is unlikely that we want to try doing any data migration (as noted above we do not expect to do upgrades of OS level stuff) in the embedded space on JFFS2 or whichever we choose. mini-ubuntu: In the mini-space we're not limited to a particular filesystem and so can enable xattr etc without issue. xattr would be needed if the vendor wanted to use SELinux for increased security, such as on a router.
dpkg dpkg would need to be extended to provide hooks to allow for non-installation of chunks of packages to save space or the image would have to be post-processed to be pruned and compressed. In the long term, one would imagine debhelper (or even dpkg proper) would automatically assign files to different classes depending on file locations. Other packages in the minimal seed would need to be modified to provide information to the hooks in question.
Implementation Plan
Data Preservation and Migration
Packages Affected
User Interface Requirements
Outstanding Issues
UDU BOF Agenda
UDU Pre-Work
UbuntuDownUnder/BOFs/µbuntu (last edited 2008-08-06 16:40:43 by localhost)