ADIOS Boot CD

Neville Richter, Lynda Thater & Mark Huth © CQU 2006

Faculty of Business and Informatics,
Central Queensland University,
n.richter@cqu.edu.au, l.thater@bris.cqu.edu.au, m.huth@bris.cqu.edu.au 


Abstract
. This paper presents an overview of the ADIOS Boot CD project.  Many boot CDs are currently available for use, so a short discussion and comparison of these related works is presented.  Background information on how the boot CD was built and why particular decisions were made in choosing the software that was placed on the CD is discussed.  The primary benefit of having virtual machines with trusted operating system available on virtual networks allows users to experiment with security and network management.  Finally this paper investigates the latest design issues and techniques used to build boot CDs.  An objective of this paper is to motivate as well as enable Linux developers to build their own boot CDs.


1  Introduction

A boot CD or live CD loads an operating system from the CD during the PC boot process.  A Linux boot CD allows new users to Linux the ability to run Linux without having to modify their existing OS image.  Boot CDs have developed to the point where users do not need to install Linux as the software can now read and write to most existing filesystems.  This means that the next time the PC is rebooted the same configuration and user files will be available.  Live CDs effectively let users try Linux before they have to decide to install it or not.

The boot CD is just one part of a larger project which was looking at ways to provide each student access to a Linux enironment.  The Automated Download and Installation of Operating Systems (ADIOS) project began in 1997 [26].  It was initiated to develop a teaching environment for network management students.  To be able to teach networking skills, students typically need administrator privileges on the operating systems they are using so they can install software and configure settings.

In 2001, education at university was moving towards providing instruction at off-campus venues, the on-campus laboratories were overloaded and students were seeking alternatives to accessing the on-campus laboratory environment.  A bootable CD was developed for students so they could use it anytime or anywhere and still have the same user interface found in on-campus laboratories.

The ADIOS live CD is a bootable ISO image which allows the user to run Linux on a standard PC and to run multiple virtual machines.  It is based on Fedora Core 3 [2] and contains many additional security and management packages, which are all Open Source distributions.  The full specification for the ADIOS boot CD is located at the project home web site http://os.cqu.edu.au/adios [26].

Other educational institutions have used ADIOS live CD in Brazil, Austria, Australia and USA.  Some crime detection groups in the police and forensic departments have used it in preference to the Knoppix forensic CD [3].  Home users and researchers looking for an easy way to build a boot CD, have built their own boot CDs using the ADIOS development kit, even in different languages, for example Exton [20] has created a Swedish version of ADIOS.  Also a fully Chinese version has been built.  There is a review of ADIOS at Newsforge, the Online Newspaper for Linux and Opensource. [17].

1.1  ADIOS Objectives

The primary objectives for the ADIOS Linux boot CD were:

1.2 The ADIOS boot CD

There are many Boot CDs available (see the next section for a short comparison of available Boot CDs.)   However the ADIOS Boot CD is different in the following manners.

Users have access to up-to-date software, the ADIOS boot CD was built using Fedora Core 3.0 [2], with Linux kernel 2.6.12 with support for squashfs, [23] this allows the CD to contain more than 2GBs of files.  There are many additional software tools such as snort, openswan, webmin and nessus, a full list is available at the ADIOS home site [26].  The online web tools allow the user to find information and to monitor and control services.  The boot CD detects the hardware configuration and starts X Windows with the KDE desktop environment, or it can be started with XFCE or ICE window managers.

Users have access to the documentation of the process of developing a boot CD.  A description of the booting process used to start Linux from a CD image.  A discussion of the issues involved in building a bootable CD such as which compressed filesystem to use, what copy-on-write filesystems are available and how to use RAM efficiently.  The file layout for the CD was such that all read-only files were grouped together and all read-write files could be placed in RAM, see http://os.cqu.edu.au/adios [26].  

Users have multiple options in which to run the CD and install the CD image.  The user is able to select alternative ways to save and restore their files to floppy, USB, disk and network drives.  Optional software components can be automatically loaded from the users hard drive providing even more software.  The user can decide to turn on or off features such as read-write access to the hard disk and decide how to install software on the hard disk.  There is an option to install the boot CD onto disk, which resides on a FAT or EXT3 filesystem or NTFS.  This is almost as good as installing Linux on its own partition.  The read-only files reside on the ISO image and the read-write files all reside in the directory /var.  Using copy-on-write technology with the unionfs kernel module [9], files can be written to the whole filesystem allowing software to be installed and deleted to the system.

Users can run User Mode Linux (UML) virtual machines [10], which are automatically networked via virtual Ethernet switches and hubs.  ADIOS introduces the automation of UML virtual machines by developing scripts to simplify how to configure and run UML virtual machines.  The umlconfigurator and uml scripts allows the user to specify the number of virtual machines, to specify how much RAM to use, to start with or without X Windows, to pre-configure the networks and to start selected services on each virtual machine.   

Users can experiment with trusted operating systems.  To support Security Enhanced Linux (SELinux) [7] a separate boot CD was created using an EXT3 filesystem, which was contained within the squashfs filesystem.  The UML virtual machines can also be started with the Linux Intrusion Detection System (LIDS) [4] or the SELinux trusted operating system (OS).  Users can change configuration and policy documents to test these trusted OSs.

Users can utilise the ADIOS development kit (ADK) to build their own boot CDs.  The development kit provided on the CD allows the user to unpack all of the software on the CD and to rebuild a customised boot CD.  If the user wants to rebuild the kernel or the initial RAM disk then these can be downloaded from the home site via a second CD image.  The development kit “Makefile” automates the procedure and only requires the user to make sure that their PC configuration is entered correctly.  The original ADIOS project goal was to download operating systems for laboratory environments.  This software is included as part of the development kit environment.  A recent improvement is the Yet Another ADIOS (YETAA) boot CD toolkit [25].  YETAA enables users to take an existing Fedora Core working partition of less than 2.5Gbytes and copy it onto a bootable CD or install the full Fedora Core 4 system on one partition and build a bootable DVD.

In the next section there is a brief overview of other boot CDs.  This is followed by a discussion of the ADIOS boot CD development.  This leads on to a discussion on Virtual Machine technologies that can be used such as UML and Xen [12]. Finally the paper looks at the future direction of bootable CDs. 

2  Other boot CDs

There are a relatively large number of boot CDs available today [18].  Boot CD/DVDs vary in size from small to very large.  Small boot CDs can be designed to fit within a bootable 64MB USB memory drive such as Puppy Linux [1] and DamnSmall Linux (DSL) [11]. Boot CDs have been also built for Microsoft Windows XP, such as the work done on Bart's Preinstalled Environment (BartPE) bootable live Windows CD/DVD [22].

The larger fully packed boot CDs typically use a compressed filesystems, which contain a sample of what a full Linux system has to offer.  There are many Linux and FreeBSD boot CDs, which have been designed with a special purpose in mind such as the Multiple Operating System Linux MOSIX [16], which is built to demonstrate all of the cluster technologies available on Linux.  Other boot CDs focus on security, or games, or education, etc.  A significantly large number of these CDs are based on the Knoppix boot CD [3].  Many boot CDs such as ADIOS and XenDemo [12] are built from scratch.

Several live CDs such as Knoppix and PCLinux claim to be operating system replacements in that they can perform all the functions required of a fully installed system, that is they have a complete office suite of software tools.  Other live CDs such as Puppy and DamnSmall Linux (DSL) are designed to run from USB or from RAM and can run with limited memory or even with older 386 processors.  Several live CDs such as MOPIX and ClusterKnoppix have been designed to provide a set of cluster software programs so that users can experiment with cluster technologies.  Others such as ADIOS and now XenDemo have been built to allow end users to use virtual machines and virtual networks.  Virtual networks are particularly useful in educational environments as this provides users with a simple way to experiment with routing, firewalls, security and network management utilities.   A more comprehensive list of live CDs can be found at http://www.frozentech.com/content/livecd.php [18].

3   Development of the ADIOS boot CD

In this section the design issues involved in developing the ADIOS Boot CD will be investigated.  This will include an explanation of the overall approach taken towards the Boot CD, and then specifics on the booting process, memory issues, file system choice, virtual machine inclusion, the development kit and then deciding on applications and services to be included on the CD.

3.1 Overall Approach

When creating a new CD, the first decision is whether to start from scratch or base a CD on the work of others.  Most developers have taken the approach of using an existing image rather than create their own. This is because many CD builders encourage others to use their bootable CDs as starting platforms.  But if developers decide to start from scratch there are at least two choices.  Firstly the developers can write their own boot process software (CD developers working on the Knoppix boot CD wrote their own start up software).  Secondly they could use the work done by the major CD developers who use busybox toolbox [13].

Busybox is a replacement set of Linux commands, which can be used on small or embedded systems.  This is by far the simplest way to create a small Linux environment.   First the software must be downloaded and the development environment used, which is similar to making a Linux kernel and then installing the files into a newly created initial RAM disk.  Then devices can be added as well as a few more utilities to customise the start up environment.  To be able to create embedded Linux systems a small C library called uClibc [14] is required.  To build additional utilities the source code must be recompiled (using the uClibc library).  The ADIOS initial RAM disk uses the busybox and uClibc library.  There is even an alternative to uClibc called dietlibc [27].

A boot loader typically isolinux [15] and a utility to create the ISO usually mkisofs [5] is also needed. The boot CD typically requires a customised Linux kernel, a Linux start up script and an initial RAM disk so that the OS can start.  The advantage of using busybox is that it contains most of the Linux commands in one small program and by using a RAM disk Linux can be started in RAM, the full filesystem can then be mounted and the directory can be changed with a command such as pivotroot (this will allow access to the full system).  Most of the major Linux distributions such as Debian, RedHat, Slackware, Gentoo and Mandravia all have used busybox as part of their installer process [13].

Recently, copy-on-write (COW) technologies have become popular for boot CDs.  An example is to use the kernel module unionfs [9] to apparently allow the ability to write to the read-only filesystem, by storing the difference in a small RAM filesystem.  Also the inclusion of new kernel modules to perform specific tasks such Captive NTFS [21] which allows the writing of files using Windows DLLs.

3.2 Booting Process

Since Linux was not designed to boot from a CDROM, the boot process and filesystem must be modified.  The mkisofs utility is used to create the bootable CDROM image. The most used software for creating a boot loader for Linux on CDs is isolinux, which is part of the syslinux package.

The following is a description of the sequence of events that occur when the computer boots from the ADIOS live CD.  It uses the isolinux boot loader, which is similar in principle to other boot loaders such as Grub [24] and Lilo [19].

The linux kernel image vmlinuz is loaded into memory.  This first requires building the latest stable kernel with patches to support the CD environment.

Next the initial RAM disk called initrd.gz is uncompressed into RAM and then mounted as the root filesystem.  The size of this initial RAM filesystem varies from 4MBs to 16MBs depending on how many applications are supported in this pre-real / (root) filesystem environment.  The initial RAM disk is built typically into a loopback filesystem and includes binaries and libraries to at least allow the OS to mount the CDROM.  A loopback filesystem is a file in which an EXT3 filesystem has been created.

Next the startup script linuxrc is used to mount the real filesystem, which is on CDROM and uncompresses the read-write files into a RAM drive.  CD developers can choose from various RAM drive types: such as tmpfs, which is read-write and can share memory with process memory space; or cramfs, which creates a read-only compressed initial RAM drive.  The majority of the root filesystem is read-only and is stored using a compressed filesystem such as cloop, squashfs or ziosfs.  Many CD developers are now using unionfs, which provides a copy-on-write filesystem.  This has lead to developers creating a single large root filesystem, which is then mounted against a RAM drive to provide a copy-on-write filesystem.  The ADIOS boot CD uses two squashfs files one contains all of /usr directory tree and the other /adios contains the other read-only directories /bin, /sbin and /lib.  The read-write files are written to /var, which can be placed in a tmpfs RAM drive.  The unionfs run option is available for those who need to write to the read-only space.

The system configuration files for the real root fileystem can then be modified to suit the hardware and users requirements. The system then performs what is commonly known as pivotroot to swap the current root filesystem with the newly mounted real filesystem.  All that is left is to start the init process.  The init process is effectively the parent process to all others and starts the OS at the specified run-level to start services as required.

The isolinux configuration file that starts the boot CD uses a set of labelled sequences to load the kernel and the initial RAM disk and select options on how the image should start.  See the isolinux.cfg configuration file to see how ADIOS starts.

Before the init process starts the linuxrc script is used to mount the Boot CD and configure the startup scripts.  For example the hardware detection can be performed so that X Windows can be configured.

3.3 Memory and disk usage issues

Allocating too much memory to RAM disk means that there may not be enough RAM for large memory processes.  There are several solutions for this problem:

One technique is for the RAM disk to be compressed this usually requires the filesystem to be read-only, as with cramfs.  Read-only initial RAM disks require the boot process to create an additional RAM drive to enable writing of files.

Another solution is to use real disk space this requires users or software to modify the disk partition and allocate space for the operating system files.  Alternatively USB devices, that appear as disk drives, can be used instead of storing files in RAM.

Lastly either request users to have more real memory in their PC or rebuild all applications to use less memory. 

The initial RAM disk can be kept small or memory can be reused.  If the boot CD is run entirely in RAM then the usage of the tmpfs RAM drive can be setup to share RAM with memory allocated for processes. 

3.4 File System Choices

Since most PCs already have Windows installed and are using the NTFS filesystem.  The file systems issues are summarised below:

The ADIOS boot CD provides solutions to the file system issues by providing run options to repartition and reformat partitions as well as implement copy-on-write technology.

3.5 File Compression

The Knoppix boot CD uses cloop a compressed ISO image within the CD ISO image.  The ADIOS boot CD uses multiple squashfs files on the boot CD ISO image.  Other developers have used zisofs to compress the whole ISO image.  Developers can either write their own compressed filesystem, or select another one that is available.

Effectiveness of the compression algorithm can be measured by the speed to access the files within the compressed filesystem.  Other considerations include the flexibility of using more than one compressed filesystem, the inclusion of extended attributes to support trusted operating systems and the efficiency of sharing of compressed files over a network.   In summary the main compression techniques used today are as follows:

The Ubuntolinux distribution [8] has analysed the compressed filesystems available in terms of the effectiveness of compression and performance, the results shows that squashfs creates the smallest compressed files and it has the fastest to random access time.  In summary cloop was nearly 3 times faster than zisofs while squashfs is nearly 5 times faster than zisofs.

3.6 File Layout

The number one issue for booting from a CDROM is that the vast majority of files are read-only.  There are at least two solutions:

·         redesign the file layout and place all read-write files in RAM or

·         use copy-on-write technology so that the differences are stored in RAM.

Using the first approach of redesigning the file layout into read-only and read-write files means that the read-only filesystem has the advantage of making the OS more secure.  A “Makefile” or simple shell script can automate the process of relocating files into directory trees that are either read-only or read-write.  The second approach of using the copy-on-write technology is useful for adding, modifying or removing binary software from the image.  The overhead of copy-on-write is in the order of a 10% reduction in performance.

The ADIOS filesystem places /bin, /sbin and /lib into a single squashfs file called adios.sqfs.  The /usr files are placed in file usr.sqfs and all of the read-write files have been moved to /var, this includes /etc, /home, /usr/local, /usr/src, /tmp and /root.  An alternative approach used in the YETAA boot CD toolkit is to place all of the files in a single squashfs file and then copy the read-write files into a RAM drive on startup.  Special directories are created in the root directory such as /dev, /proc, /media, /mnt and /opt.  To make ADIOS work plenty of soft links have been added so that both absolute and relative references to files are not broken.

The development filesystem is placed in its own partition so that packages using RPMs can be added and erased.  This also allows the development environment to be booted into live mode to allow the developer to refine the image and then rebooted back into the development mode to build the boot CD image.

In summary the first method is to redesign the filesystem layout for the CD:

The second method is to use a single loopback root filesystems with a Copy-On-Write to RAM drive file.  This technique of creating a single loopback filesystem is used with CoLinux and XenDemo.  This method makes the implementation of virtual machines identical to the parent system straightforward.

3.7 Virtual Machines

The use of virtual machines is becoming more common as users want to test software to the limit without modifying the OS on their PC.  Another use of virtual machines has been to setup secure services that run on their own virtual machine via a real network interface connection.

When discussing Virtual Machines, most people immediately think of VMWare or Virtual PC.  However, if a developer wants to provide a free virtual machine environment then the choices are limited. The main contenders for selecting virtual machines are User Mode Linux (UML), XEN or Virtual Iron.

At the time of building the first ADIOS boot CDs only UML was available and that is why it was chosen.  The XEN virtualisation environment may be according to the literature from the XEN site to be the better alternative.  However the ADIOS environment requires that the UML virtual machines to be able to run X Windows.  The Virtual Iron virtualisation from IBM is according to literature on the Internet to be the best solution for multiprocessor machines.

Automating the process of generating networks and how networks are built is one feature that the ADIOS image has been using for some time.  Basically each virtual machine is connected to multiple virtual Ethernet switches.  Each virtual machine is built connected to all of the virtual Ethernet switches and hubs.  Any network layout can then be built by only activating the network interfaces required for the topology.  The default layout for each virtual machine is to connect to the next virtual machine via next virtual Ethernet switch, this means that a network connecting each virtual machine to the next one is generated automatically.  Other network topologies can be configured before the UML virtual machines are started.

Users can then build their own networks for testing routing and firewalls designs.  Screened subnet firewall design can be configured and tested.  Improvements to firewall design such as using multiple perimeter networks can be investigated.  To allow each virtual machine access to X Windows the connection to the parent system is left up but not used in the routing of packets.  X client applications require TCP connections to the X server on the parent machine using Xnest.  An alternative would be to use the VNCviewer software on the parent machine and VNCserver on the virtual machine.

3.8 ADIOS Development Kit (ADK) 

One of the primary tasks of developing the “Makefile” was to automate the procedure of rebuilding the boot CD from scratch each time it is necessary to start with a new version of Redhat, Fedora Core, or other Linux OS.  Also each time a new version of the kernel is built it is necessary to rebuild the initial RAM disk and update the kernel modules on the CD version of the filesystem.  The “Makefile” is also used to unpack the CDROM onto a partition so that it can be used to build customised boot CDs.

One of the existing customised versions is to make a SELinux version of the boot CD, this involves using a filesystem supported by SELinux, which means that a double mount is required so that the EXT3 loopback filesystem can be placed within the squashfs file.  The alternative would be to use mkisofs with compression.  In either case the image grows in size and usually one of the other component files is removed to make space for SELinux.

To help developers test the image they are creating without burning a CD, a "live" mode was added to the “Makefile”.  This adds an entry in the boot loader that will allow the new CD image to boot from the development partition.  The make “live-stuff” currently only updates the databases for whatis, locate and swish databases while in live mode.  Upon rebooting back to a non-live environment the user will need to enter "make normal" to clean up log files and reset configuration files.  Just in case the user forgets, the “Makefile” will check which mode is currently active when the make command is issued.  

This distribution is based on RedHat Fedora Core, which uses RPMs for package distribution but could be easily extended to use Debian’s package manager.  To simplify the update of packages, a set of “yum” commands was added to “Makefile”, this has significantly reduced to time it takes for the developer to update packages on the boot CD image.  Entering the command "make yum-update" without specifying which package will update all RPMs, just sit back and wait.  There are separate entries to “yum-install” and “yum-remove” packages. 

To build the current CD image the read-write files are placed in the directory /mnt/devel/var and the read-only files in the directory /mnt/devel/adios and /mnt/devel/usr.  The adios directory contains the directories /bin, /sbin and /lib and the usr directory contains all of the /usr files for the boot CD image.  The following modifications are required to files in /usr that are read-write.  Files that are read-write are linked into /var such as /usr/src to /var/src and /usr/local to /var/local.  Where as large read-only files in the /var tree are linked back to the /usr/var tree.  This reduces the size of /var which is important if RAM size is small. 

Now to build the CD image enter "make files".  This builds the read-write files into the /adios/var directory tree, which is copied to read-write space on startup (alternatively creates a compressed archive var.tgz), and builds the read-only files into the compressed files adios.sqfs, usr.sqfs plus the optional component files uml.sqfs, www.sqfs, and openoffice.sqfs.  Additional optional component files for example java (jdk + tomcat), wine (windows emulator), mono (C#), plt (Dr Scheme) and ns (Network Simulator + Nino) can also be built and the list expanded upon. 

The “Makefile” includes a section on creating the ISO for CDROM image.  Here the developer can erase/blank read-write CDs and then burn the image onto the CD.  The command "make cdrw" builds the ISO, blanks the CD and then records the image.  Some additional commands to use DVDs have been add.  Provision is made at the top of the “Makefile” to change the VERSION, DATE, AUTHORS, etc. Creation of a CD label can be performed using any graphics package such as "gimp" and saving the file in a suitable format such as png. 

Configuring, building and installing the kernel, modules and building the initial RAM disk and all included files is documented in the “Makefile”.  Before starting, check that the correct version numbers are set and that the kernel sources are located in /usr/src. For example, the sequence of commands to rebuild the Linux kernel and then rebuild the initial RAM disk are as follows: 

Similar commands are used to create the LIDS kernel and also to create the User Mode Linux kernel for the virtual machine environment.

The UML virtual machine environment also has its own filesystem, which needs to be rebuilt every time the files are modified within it.  There is also an initial RAM disk for the UML kernel.  To build the UML root filesystem, the first time it is built into a real partition, then when "make build-own" is run, it transfers the root filesystem file to the loopback root filesystem.  Included in the “Makefile” are entries to clean the filesystem of unwanted files.

The “Makefile” also includes targets for configuring SELinux policy directories, building laboratory specific configuration modifications, and saving and restoring source components for the development environment.  This section still needs further work to useful to other users, and is an ongoing experience for the authors.

An additional support CD can be downloaded which contains the source of the kernels used on the ADIOS CD.  It also contains some of the additional squashfs optional components that can be used with the CD image.

The YETAA project has simplified the above process by breaking it down into a set of smaller tasks.

4   Analysis and Discussion 

The limitations and advantages of ADIOS boot CD compared to other live CDs is now described.  The primary limitation for most Linux boot CD systems has been the ability to write to NTFS filesystems.  The use of Captive NTFS has partially resolved this, but the performance of Captive NTFS has not helped Live CD builders to perform a large number of writes to the NTFS fileystem.  The ADIOS live CD when asked to write to NTFS minimises these writes by using a “savestate” file (such as var-4.14.tgz).  The “savestate” file is written when the system is shutdown and it only saves changes for the system configuration and users files.  Using Windows to copy the ISO image and the Windows version of grub allows ADIOS live CD to improve performance and useability.  An alternative to using NTFS is to repartition the disk so that a FAT or EXT3 filesystem can be used.  Several live CDs have included software to repartition the disk as well as ADIOS.  The primary advantage is that all files can be saved between sessions and performance is equivalent if not faster than install Linux on its own disk partition. 

The number and type of applications found on Live CDs varies depending on the theme of the distribution.  ADIOS was developed as an educational tool for learning about networking, security, web development and network management.  Hence the inclusion of the virtual machines and virtual networks using trusted operating systems.  To provide an operating system replacement capability OpenOffice was included.  The distribution also has support for many compilers and development libraries.  As most network management software has moved to use a web front end, the web server is setup to help users customise their own environment.  Recently it has become popular to support content management systems, which require LAMP (Linux + Apache + Mysql + Php) so phpMyAdmin has also been included.

5   Conclusion

The development of a live CD has been useful in the educational environment as it allows material to be added to the CD image that meets the requirements of the subjects being taught.  It is useful to the students as the image is the same as the one in the laboratory environment.  The use of networked virtual machines has helped students experiment with networks and routing at home without the cost of the hardware.  The inclusion of trusted operating systems has let users experiment with these environments.  The development kit has provided a simple way for users to tailor their own live CDs.

The boot sequence allows end users to choose different methods of using and installing the Linux image.  The start up of the live CD is automated to help users to learn how to use Linux.  Extra components can be downloaded or developed in house to extend the usefulness of the live CD.  These components can be included on the DVD version.  The separation of the booting processes from the filesystem provides a mechanism whereby the filesystem can be replaced with a new version and the CD repackaged with little overhead in redesigning the software.

5.1 Future Work

Here is a short list of changes and improvements that may be useful

The future of boot CD/DVDs for home use, teaching, marketing and kiosk systems will continue to increase.  What is required now are tools to allow end user to build customised bootable CDs as easily as possible.  Development of GUI interfaces to allow end users to customise the ISO image. Projects such as Colinux implemented on bootable CDs allow end users to experience multiple operating systems simultaneously and make it easier for users to migrate to Linux.  Boot CDs require integrated and flexible authenticated resource connections for use in school and university environments. 

6  References

[1]        Booting Puppy using the Grub bootloader. http://www.goosee.com/puppy/wikka/GrubPuppyBoot last accessed 2 May 2005.

[2]        Fedora Project. http://fedora.redhat.com/ last accessed 1 May 2005.

[3]        Knoppix Live CD. http://www.knoppix.org/ last accessed 1 May 2005.

[4]        Linux Intrusion Detection System. http://www.lids.org/ last accessed 2 May 2005.

[5]        mkisofs Utility. http://www.andante.org/mkisofs.html last accessed 1 May 2005.

[6]        NTFS Resize Frequently Asked Questions. http://mlf.linux.rulez.org/mlf/ezaz/ntfsresize.html last accessed 1 August 2005.

[7]        SELinux for Distributions. http://selinux.sourceforge.net/ last accessed 1 May 2005.

[8]        Ubuntolinux. http://www.ubuntulinux.org/ last accessed 4 May 2005.

[9]        unionfs: A Stackable Unification File System. http://www.fsl.cs.sunysb.edu/project-unionfs.html last accessed 12 May 2005.

[10]      The User-mode Linux Kernel Home Page. http://user-mode-linux.sourceforge.net/ last accessed 12 May 2005.

[11]      What is Damn Small Linux, a.k.a. DSL? http://www.damnsmalllinux.org/ last accessed 3 May 2005.

[12]      Xen 2.0.5 Demo CD: Virtual Machine Monitor. http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads.html last accessed 1 May 2005.

[13]      Andersen, E., BusyBox 2005. http://www.busybox.net last accessed 1 May 2005.

[14]      Andersen, E., uClibc 2005. http://uclibc.org last accessed 1 May 2005.

[15]      Anvin, H.P., Syslinux 2005. http://syslinux.zytor.com/iso.php last accessed 3 May 2005.

[16]      Barak, A., MOSIX 2005. http://www.mosix.org/ last accessed 3 May 2005.

[17]      Bodnar, L., Hola, ADIOS boot CD 2003. http://www.newsforge.com/software/03/11/25/1552234.shtml last accessed 1 May 2005.

[18]      Brand, N., The LiveCD List 2005. http://www.frozentech.com/content/livecd.php last accessed 2 May 2005.

[19]      Coffman, J., Lilo 2005. http://lilo.go.dyndns.org/ last accessed 12 April 2005.

[20]      Exton, C., ADIOS-Exton 2005. http://www.exton.net/Adios-EXTON/ last accessed 4 May 2005.

[21]      Kratochvil, J., Captive: The first free NTFS read/write filesystem for GNU/Linux 2005. http://www.jankratochvil.net/project/captive/ last accessed 20 May 2005.

[22]      Lagerweij, B., Bart's Preinstalled Environment (BartPE) 2005. http://www.nu2.nu/pebuilder/ last accessed 1 May 2005.

[23]      Lougher, P., squashfs 2004. http://squashfs.sourceforge.net/ last accessed 1 May 2005.

[24]      Okuji, Y., GNU Grub 2004. http://www.gnu.org/software/grub/ last accessed 20 May 2005.

[25]      Richter, N., Huth, M., and Thater, L., YETAA 2005. http://os.cqu.edu.au/pub/iso/yetaa last accessed 1 September 2005.

[26]      Richter, N., Thater, Lynda and Huth, Mark, Automated Download and Installation of Operating Systems (ADIOS) 2001. http://os.cqu.edu.au/adios/ last accessed 1 August 2005.

[27]      von Leitner, F., diet libc - a libc optimized for small size 2005. http://www.fefe.de/dietlibc/ last accessed 22 May 2005.