Puppy Linux

Exploring everyone's pet Linux.
Housebroken Puppy

On subsequent PL boots, you'll notice a few differences. (You need to attach removable media if that's where your customizations have been saved.) You'll find that PL has maintained its network configuration (assuming it was saved), the initial desktop (Welcome, woof, woof!) has been replaced with a plain-color backdrop, the applications you've installed are now accessible through the Menu structure, and an additional filesystem has been mounted under /initrd/mnt/dev_save. As before, all mounted devices appear under /mnt. See the updated output of df -h below:

Filesystem      Size      Used Available Use% Mounted on
/dev/hda2      50.9G     32.9G     17.9G  65% /initrd/mnt/dev_save
/dev/loop1    495.8M     73.3M    422.5M  15% /initrd/pup_rw
tmpfs          77.9M     77.0M    916.0k  99% /initrd/mnt/tmpfs
/dev/loop0     77.0M     77.0M         0 100% /initrd/pup_ro2
unionfs       495.8M     73.3M    422.5M  15% /
tmpfs          55.0M     96.0k     54.9M   0% /tmp
shmfs          46.1M         0     46.1M   0% /dev/shm

For convenience, a symbolic link to /initrd/mnt/dev_save has been created at /mnt/home. This is the where all system changes and other PL-specific data have been persisted as per your first reboot. On my dedicated PL host, the contents of /mnt/home appear as follows—it's basically the entire contents of my hard drive:

Downloads RJE  junk  lost+found   notes zdrv_300.sfs   LJ  
pup_300.sfs  pup_save.2fs

PL depends on the following files to persist user data across sessions and perform better:

  • pup_save.2fs: the standalone ext2 filesystem containing all session data—that is, cumulative changes applied to the base system.

  • zdrv_300.sfs and pup_300.sfs: the embedded 300 refers to the release. These two files were copied to the hard drive at the end of the first session. They also reside on the PL-bootable ISO image, but having them here allows the system to start and operate more efficiently.

PL will never access or modify any file other than the PL-specific files on its own.

Tricks—What's This Puppy Good For?

Given its basic features and content, several potential niches immediately come to mind, even without exploring beyond the surface material covered here.

PL can be used as a portable computing environment. There's something very intriguing about carrying a computing desktop around on a key chain in a shirt pocket. PL's Universal Installer can remaster a current system snapshot on a USB drive (providing it's large enough), and that carry-along drive can be used to boot your customized PL and user data onto any PC that's capable of booting from a USB device. An overview of the USB setup process is available at www.pendrivelinux.com/2006/03/25/puppy-linux-on-usb.

If Windows or some other installed OS becomes inoperable, that could present an untimely dilemma—making your basic desktop services unavailable and blocking access to the data residing on the system drives. Booting PL from removable media and gaining access to those drives provide the core of a data recovery tool and a temporary (at the very least), usable desktop environment. Even if you're not dealing with an emergency now, it's a good idea to obtain and test a bootable PL image just to make sure you can boot it and see your system devices—your internal disks, the network and removable media devices. You'll be that much closer to data recovery and/or a functioning desktop platform should an emergency arise.

PL would be an excellent framework for any academic coursework that revolves around software development, system internals or small device control and the like. Advanced PL customization topics are well documented at puppylinux.net/puppy-unleashed.htm. A base PL image can be assembled from scratch and can be as inclusive or limited as your requirements dictate. Meanwhile, for those assignments that call for digging deeper into PL, kernel configuration/build-related topics are available at puppylinux.net/development/compilekernel.htm.

As I mentioned previously, my dedicated PL host was a proverbial paperweight. What modern OS could I practically operate on a Pentium III-class machine with “matching” resources? PL provides an excellent vehicle for getting these vintage platforms working again. Thinking more globally, this inexpensive platform (PL plus older generation hardware) can put a lot of computing power in the hands of people who might otherwise have none. Considering that this rich, but free, OS can operate reasonably well on seven- or eight-year-old hardware, PL presents some interesting opportunities. There are efforts abound to address the so-called digital divide, and PL can be a facilitator both locally and worldwide. Nonprofit organizations, less-affluent educational institutions and all individuals sensitive to technology costs would be excellent PL candidates.

I haven't noticed anything that would necessarily make PL a bad choice for general-purpose desktop needs—providing you feel comfortable with a few manual configuration steps (which is often the case with most distributions anyway) and installing a few desired packages that might be excluded in the default distribution.