There are a lot of medium sized Linux distributions out there. A lot of them could be used for our purpose. I’ve chosen Puppy Linux, because it’s flexible, it simply works and because it “feels good”…The mission statements of Puppy Linux are (copied from the site):

Puppy will easily install to USB, Zip or hard drive media.

Booting from CD, Puppy will load totally into RAM so that the CD drive is then free for other purposes.

Booting from CD, Puppy can save everything back to the CD, no need for a hard drive.

Booting from USB, Puppy will greatly minimize writes, to extend the life of Flash devices indefinitely.

Puppy will be extremely friendly for Linux newbies.

Puppy will boot up and run extraordinarily fast.

Puppy will have all the applications needed for daily use.

Puppy will just work, no hassles.

Puppy will breathe new life into old PCs

Version used in QEMU-Puppy: 2.17.(I’ve never released a version of QEMU-Puppy based on Puppy Linux 1.0.8, because the version of JWM used in Puppy Linux 1.0.8 is terribly slow.)

From the site: “QEMU emulates a full system (for example a PC), including a processor and various peripherals. It can be used to launch different Operating Systems without rebooting the PC or to debug system code.”In other words: QEMU is a virtual machine. A virtual machine is a program that acts like computer hardware. In such a virtual machine, you can install an OS (Linux, Windows, BSD, whatever). This OS “sees” a processor, which is the real processor (I’m lying…), “sees” a hard drive, which is a big file on the host machine, “sees” a network card, which is emulated by QEMU, and so on. After shutting down the virtual machine, all that’s left on the host (or USB memory stick) is just one big file: the virtual hard disk.From the point of view of the host OS, QEMU is just a simple program which allocates a lot of memory, eats a lot of CPU cycles and opens and closes a couple of files. That’s it.See the QEMU site for more information about QEMU.Version used in QEMU-Puppy: 0.9.0.

Then do something like “syslinux /dev/sda1” (as root) or “D:\syslinux D:” to make your device bootable. SysLinux puts ldlinux.sys on the device as well. (See the SysLinux site andPuppyLinuxWiki in case you run into trouble… Don’t ask me!) [1] (If you want to boot from USB natively.)

That’s it. If you double click puppy.exe (Windows) or run . ./puppy.sh (Linux), QEMU-Puppy should start. You can stop reading now, if you’re satisfied…