October 15, 2009 posted by David Young
Here is my summary of project goals and results for Lloyd Parkes' Summer
of Code project, Miniaturize NetBSD.
Lloyd's project was concerned with helping developers to build small,
bootable NetBSD system images by extending NetBSD's cross-compilation
toolset and adding new kernel facilities.
Lloyd set out with two goals. One goal was to add to build.sh, the script that orchestrates cross-building the NetBSD kernels &
userland, a new target that indicates a configuration file for a NetBSD system image. The configuration file would tell the type and layout of
the system image: either an NFS root, a kernel with root on an embedded
memory disk, or a bootable disk image with a BSD disklabel and/or Master
Boot Record, an FFS or an ISO9660 filesystem. The file would also tell
which NetBSD distribution files to include, and which to exclude, and
which kernel to install. build.sh would follow the instructions in the
configuration file, producing either a bootable disk image, a compressed
TAR file of a root filesystem and/or a kernel.
The second goal was to add to the kernel the ability to boot from a
filesystem residing in a compressed disk image such as vndcompress(1)
By mid-summer, Lloyd and I agreed to discard the second goal. The first
goal entailed more than enough work to occupy Lloyd for the summer;
to complete additionally a programming task in the kernel was not
Lloyd created, for the first time, a facility for building small
NetBSD systems that is integrated into build.sh. He demonstrated its
usefulness for building system images for Lloyd's own Kerberos Key
Distribution Center (Kerberos KDC), and for the CUWiN wireless mesh
system. Watch for Lloyd's work to be integrated with NetBSD.