Introduction
subtracted is a bootable Linux Live CD primarily designed as a test-bed and demo platform for clients. Initially these images were created from packages running within a desktop install of Gentoo, whereas current images are made from custom built packages for the Live CD.
The original purpose of the subtracted framework was for use in product demos. The main feature requirements were quick builds, multi-arch support, simplicity of customisations and reproducibility.
How does it work?
The rootfs images are built using ibuild functioning with a very small subset of Gentoo's Portage tree which is in use on the AST site. Aside from the Portage tree there is an extensive selection of packages supported which aren't available from Portage, including the matchbox environment and global DirectFB support.
After the rootfs images are finalised, as squashfs filesystems, ISO images are generated using specifications set out in possibly architecture dependant config files allowing simple management of multi-arch image generation.
Most of the interim design decisions are managed through a series of plugins, from simple settings like managing the splash animations to selection of the boot image method(for example El Torito or Open Boot compatible).
The build system has been designed with multiple configuration in mind, and where appropriate can share cached packages across configurations(data file only packages for example). It is also possible to manage configuration file generations with a SCM using the built-in hooks support(dforce and mercurial are supported out of the box) to simplify tracking development.
Build system requirements
- OS - Linux/Solaris
- CPU - x86, x86_64 or ppc64
- Memory - 256 MB is the bare minimum for comfortable rootfs builds
- Storage - between 100 MB and 5 GB depending on supported packages and build options
- CD/DVD writer - not strictly necessary on the build system if you have some way to move the ISO image to a system with a writer, or if you're building squashfs-only images.
- Network - total download size for source packages can be as high as 4 GB
Target system options
- x86
- x86_64
- ppc64
- arm(little endian isn't tested often)
There is also limited, and mostly untested, support for mips, hppa, sparc and sparc64,
On the software side targets using both glibc and uclibc are supported, as are full GNU utilities based systems and busybox based systems. Although some options such as uclibc/busybox on x86_64 haven't received much testing.
Downloads
subtracted and ibuild are available from my dforce repository as toolchain/subtracted and toolchain/ibuild respectively. Pre-built subtracted test images built with ibuild are available on the AST FTP servers in the /pub/linux/livecd/subtracted directory, currently only glibc/GNU for x86_64 and uclibc/busybox for arm images are hosted(more will be added in the future).