|An in-depth look at Puppy Linux
by Howard Fosdick (Oct. 8, 2007)
Foreword: Guest columnist Howard Fosdick has previously used Puppy Linux to successfully revive "mature" PCs. Now, he takes a broader, deeper look at the parsimonious distribution and its potential value on normal desktop PCs, covering its features, flexibility, capability to peacefully coexist with Windows, ease of use, and limitations.
An in-depth look at Puppy Linux
by Howard Fosdick
Pick of the litter
With hundreds of Linux distributions available, how do you determine which one is right for you?
|Spread the word:|
digg this story
Start by listing your needs. What will you use it for? Which features are important? How would you prioritize them? Which features don't you care about?
Once you've developed your "user profile," measure it against the strengths of different Linux distributions. Linux is configurable and gives you the full control you expect from open source software -- so theoretically you could probably tailor (or strong-arm) almost any Linux distro into meeting your needs. But with hundreds of distributions to choose from, it makes more sense to select the most suitable Linux distro for your requirements.
Puppy Linux is one of the twenty most popular Linuxes worldwide, according to the distro-tracking website Distrowatch. Puppy's distinct personality makes it of interest to those who want a Linux that...
Unlike most Linux distributions, Puppy is not based on some other distro. It was created from scratch to meet these goals.
- Includes all the applications required for daily use
- Works right out of the box
- Is easy to use, even for Linux newbies and Windows refugees
- Runs fast and performs well -- especially on limited hardware
- Runs on old computers, thin clients, and diskless workstations
- Installs and boots from any bootable device, including USB memory sticks, hard disks, Zip drives, LS 120/240 SuperDisks, CDs and DVDs, rewritable CDs and DVDs, and network interfaces
Let's discuss Puppy's distinguishing characteristics. We'll wrap up by summarizing how it differs from other Linux distributions.
Fast and light
Puppy is specifically designed to run on limited hardware. This includes older computers, thin workstations, and diskless PCs.
Puppy accomplishes this goal through several techniques:
Puppy includes the full range of applications users want. This includes word processors, spreadsheet, browsers, image viewers and editors, instant messenger and chat, games, graphics applications, text editors, file managers, audio and video players, CD and DVD writers, backup utilities, web connections, dialers, and everything else. Nothing is missing.
- Puppy's bundled software covers all typical application needs, but the tools included require minimal system resources
- The operating system is minimalist
- The entire system loads into memory and runs from there by default
- Software is compressed and is transparently decompressed to run
- Puppy boots and runs from any available device -- your computer is not required to have specific devices like a hard disk or a bootable CD drive
Yet the Puppy download ranges from only 28MB to about 130M, depending on the version. While most Linuxes require a 700MB download, and some fill up multiple CDs, Puppy typically clocks in at less than 100MB. Puppy achieves this by carefully selecting the lightest program to satisfy each need. It also comes as compressed software, which it dynamically decompresses as needed.
The result is that Puppy requires less storage space on USB or disk or other device. It fits limited hardware. The exact amount of storage space required varies according to the kind of install you choose, the size of your working storage, the additional software you install, and your Puppy release. Most installs come in at under a gigabyte and are measured in hundreds of megabytes.
To ensure quick interactive responses, Puppy loads completely into memory by default and runs from there. Puppy requires at least 128MB to run from memory, up to about 320MB for a version that includes the full OpenOffice suite.
The result is that you can take an old Pentium III or II computer, install Puppy, and enjoy excellent performance. Memory access is way faster than disk access. Just make sure that the computer has sufficient memory to run Puppy from RAM.
To show how this works, read this earlier article about my experience installing Puppy on a 550MHz Pentium III desktop with 448MB memory and an 8 gig hard drive. Running Puppy, this turn-of-the-century hardware runs typical applications as fast as my 2.6 ghz Celeron with a gigabyte of ram runs equivalent Windows XP programs!
Another example: I installed Puppy on an old IBM Thinkpad 770Z laptop, a 366MHz Pentium II. I had hauled this machine directly out of the trash bin. I upgraded system memory from 128MB to 256MB by buying a used memory stick for $20. Even this old laptop is responsive with Puppy in memory when word processing, creating web pages, and delivering presentations.
I use this old PC as my disposable backup laptop when traveling through foreign airports or working in the outback. I don't have to worry if its gets lost or damaged like I do with my primary $1,700 laptop. (I use encryption to protect my data).
Want performance statistics? As long as you run everything from memory, most Puppy apps load in a couple seconds. This web page lists start-up times for the largest, slowest applications you could use. The numbers are based on a 433MHz PC with only 128MB of RAM and a 128MB compact flash card, and no hard drive.
For systems lacking sufficient memory -- for example, old Pentiums with less than 128MB -- Puppy runs fine but with reduced performance. For these systems, you need to create a swap file on the storage media so that Puppy can use virtual memory. Puppy's minimum hardware requirements are a 166MHz processor and 128MB of memory (64MB for older releases). Enthusiasts report decent results with systems down to 75MHz CPUs and 40MB of RAM and a 233MHz machine with 32MB RAM.
Puppy breathes new life into old hardware and runs well on diskless PCs and thin workstations. Needless to say, it's a total speed demon on state-of-the-art hardware. While I've emphasized Puppy's special role on constrained hardware, the product is fully competitive on current systems. My friends and I run it on our newest computers, too.
Puppy installs to any bootable device. This includes USB memory sticks, hard drives, Zip drives, LS/120/240 SuperDisks, CDs and DVDs, and rewritable CDs and DVDs. You can also boot Puppy through a network interface.
As with many Linuxes, creating "live CD" is a good way to try Puppy and see if it is fully compatible with your computer hardware and meets all your requirements. A live CD is simply a bootable CD you burn from a Puppy download. Be sure to select "create bootable disk" from your CD burning software when creating this CD. (Burning options like "data CD," "music or audio CD," or "video disk" are not bootable.) Puppy's Live CD includes CD and DVD burner software, of course. If you're running Windows and need a disc-burning program, you can download the free ImgBurn program to create the bootable Puppy disc.
If you don't want to install Puppy to your hard disk (or perhaps your machine doesn't even have a hard drive), you can run Puppy from the Live CD. When you Puppy shut down, it gives you the option to save your personal preferences and settings, as well as any additional software you've added to the base system, onto any writeable device. This includes USB memory stick, flash memory, hard drive, and writeable CD and DVD.
If you run Puppy from a Live CD, you'll quickly discover another advantage to running the system from memory. You can remove the CD and Puppy continues to run. So after booting, you can listen to that hot new audio CD you bought, or write data to a CD or DVD disc. Few other Linuxes free up the CD or DVD drive after you boot off that device.
You can also use Puppy's unique multi-session CD / DVD capability. With any kind of writeable CD or DVD (+ or -), Puppy writes your session information to the disc so you pick it up the next time you boot. Puppy's included disc-burning tools write to the multi-session disk.
For hard drive installs, Puppy offers two alternatives: a full or traditional install, and a "frugal disk install." The latter simply means you copy four Puppy files into any existing drive partition (Windows or Linux). Then Puppy runs from there. The advantages to the frugal install are that it uses minimal disk space and does not require any change to the existing disk partitioning scheme. The traditional install performs a tad better but requires more disk space and an available empty disk partition.
Peaceful coexistence with windows
Windows comes bundled with most personal computers, so most computer users start by using Windows. They soon discover, however, that Windows has serious weaknesses along with its many strengths. One great way to address the defects is by adding Linux to the computer. Then you get the unique strengths and advantages of both Linux and Windows. You select which to run at start-up time.
Puppy complements -- rather than confronts -- Windows. You can run Puppy from a Live CD or USB memory stick without changing anything on your existing system, as long as these devices are bootable on your computer.
When you exit Puppy, it asks you if you want to save your settings and data between sessions by writing a "save file" to a USB memory stick or writeable CD or DVD. Or you can write the save file to any Windows partition on the hard drive. (Under Windows, Puppy's save file just appears as a single big file in the root directory).
Another option is to run Puppy from within Windows through its Puppy on Windows feature. Simply start up Windows and un-zip the Puppy file to install Puppy on Windows. Now there will be a Puppy icon on your Windows desktop. Double-click it, and into Puppy you go. Exit Puppy and you're back in Windows.
For Windows ME/98/95, the Puppy on Windows icon seamlessly launches Puppy from MS-DOS, then takes you back to Windows when you exit. For Windows XP and Vista, Puppy on Windows runs within Windows by using the QEMU Emulator. (You'll need a reasonably fast computer for this because emulators add an additional layer of software that all instructions pass through.)
Puppy also offers two install-to-disk options, both of which co-exist with Windows. Puppy's frugal disk install allows you to install Puppy to your hard disk simply by copying four files from the Puppy Live CD into any existing Windows partition (including NTFS partitions). You can perform the copy manually or by selecting a Puppy menu option. The frugal disk install does not require any changes to your disk partitioning but still yields the benefits of loading from disk.
Or you can perform a regular full install of Puppy to the hard drive. Simply start up the Puppy Live CD, and use its GParted tool to add a disk partition for Puppy. Then select the menu option for the Puppy Universal Installer and away you go. Puppy detects Windows' presence during the install process, so you can tell it to install its boot selection menu program (called GRUB). Next time you start up your computer, you'll see a boot menu that allows you to select either Windows or Puppy for your session. (Puppy provides for free the kind of boot selection facility you might otherwise buy in a tool like System Commander.)
If you tried Linux a few years ago, you may have (justly) felt some anxiety about how well Linux would co-exist with Windows. Would trying Linux put your Windows system at risk? These concerns have been put to rest. Puppy offers a range of methods to use and/or install Linux on Windows computers. The risks of exploring Linux and dual-booting systems have been eliminated.
Easy to use
Ease of use is hard to quantify but evident when you see it. It is one of Puppy's main design goals.
The graphical user interface or GUI is an important part of ease of use. The default window manager for Puppy is JWM. This GUI is intuitive to anyone who has ever used a Windows or Linux computer. It's also lightweight, in contrast to the de facto standard GUIs for Linux, KDE and Gnome, which require significant resources. Since the GUI is an essential, ever-present application, Puppy enhances performance while gaining ease of use through its GUI.
Of course, Puppy offers other GUIs for those who prefer them. Some of the other available window managers include Fvwm95, IceWM, Xfce, Fluxbox, and Enlightenment.
The GUIs ride on top of either of two underlying graphical servers, Xorg and Xvesa. Having two graphical server options allows Puppy to configure video support and GUI for the widest possible range of computers.
Puppy's "wizards" are another ease of use feature. Wizards appear as conversational interaction and fill-in-the-form panels. They support all aspects of system set-up and configuration.
What distinguishes the most user-oriented Linux distros from others is their level of support. Puppy Linux was invented and is developed primarily by one person, Barry Kauler. Support is a community project. Puppy's several active forums provide technical help and advice. Puppy bundles 3MB of documentation in the distribution itself, and you can view Puppy's extensive web-based documentation here and here. The active community supports a Wiki, community Wiki news, and IRC chat. Puppy offers Flash-based tutorials and training videos. And, there are the Puppy manuals in HTML and PDF formats. Plus product and support in spoken languages other than English.
Puppy's abundance of technical information compares favorably with many Linux distributions. It's ideal for those who'll use these resources. With one or two exceptions, Puppy Linux does not offer vendor support contracts. This may be a concern for businesses that require them.
Beyond booting and installation choices, options in saving session information, and Windows co-existence, a key aspect of flexibility concerns how easy is it to access and install additional software.
Puppy's answer is a package manager called PETget. Package managers make it easy to select and install additional applications. PETget can install any of the 500+ packages on the official Puppy Live CD distribution, as well as a few hundred "unofficial" add-on products (see here, here, and here). It can install these applications either from the Puppy CD or by connecting to the vast online Puppy applications repository.
PETget's seamless download and install process manages applications from a single consistent interface. The result is that you can easily extend Puppy with mainstream Linux applications.
What if you have a need for a program outside the universe of Puppy files? Puppy's Pb-debianinstaller facility allows you to install any of the 15,000 packages available for Debian. Puppy users can also install Slackware packages. So if Puppy doesn't directly support a package you need, you can access huge program libraries of Debian and Slackware.
Puppy also includes features that allow you to tailor it to your own use. Select the Remaster option on its menus to create your own customized boot CD. Or use the Puppy Unleashed feature to create a custom Live CD from Puppy‘s 500+ official packages.
What Puppy isn't designed for
I've lauded Puppy's virtues and described its strengths. This is a Linux that users around the world are coming to love, as proved by its rate of adoption and the activity level of its user community.
Yet sometimes it helps to describe what a product it isn't designed to do. The contrast helps clarify the design goals. This is not to say that Puppy can't be used in these roles, just that they're not the main thrust of its development.
First, remember that Puppy Linux is a "small Linux." It doesn't bundle the vast software libraries found in "large Linuxes" like Fedora or Red Hat, though you can easily extend Puppy through the PETget package manager and Puppy's application library.
Puppy employs special techniques to offer all the applications users require for everyday use within its limited size. But it is not a "stripped down" or "compromised" Linux. Puppy packs a punch well above its weight.
Puppy is designed for the personal computer user. You can certainly run it on servers, and it includes features useful for this purpose. But its design goals and developmental direction target the personal computer user.
For example, Puppy users typically run using the "root" user id. This compares to other Linuxes that insist on other user ids, both from the security standpoint and as multi-user systems. Consensus in the Puppy community is that running as root poses no security threat. Testing my own systems via the widely-used security website ShieldsUp! rated Puppy and its active firewall as a "stealth system," invisible to the outside world.
Finally, keep in mind that Puppy Linux is rapidly evolving. Each new version means significant improvements. Different Puppy releases and derivatives of the main product offer the benefit of choice within the Puppy family. The trade-off is that you have to keep straight which features are in which release and match the documentation you view to the version you run.
The Puppy community continually marches towards new product. The default applications and tools change by release. This may not suit those who need a system frozen in time with minimal changes. This is a fast-moving Linux distribution.
What's your verdict?
I've discussed the features of Puppy Linux in this article to show its potential uses. But I've left out one vital fact -- Puppy Linux is just plain fun. The friendly interface, easy-to-use wizards and bundled how-to's are part of this appeal, but it goes beyond this, into how easily you can tailor or even remaster the system. Puppy is an engaging system that comes with the opportunity to participate in a vibrant user community.
You can boot and test Puppy Linux using its live CD, without making any changes to your hard disk and without risk. So you can ensure Puppy is fully compatible with your hardware and make sure it handles the video, system devices, and interface cards the way you want. Then, play with Puppy and learn about Linux while you determine if Puppy meets your needs.
Visit the main Puppy Linux websites here and here, and download Puppy from either here or here. Most who try Puppy buy it. Well, "buy" isn't the right word, because Puppy is free -- so, let's just say that most who meet the Puppy want to take it home.
~~~ The End ~~~
Puppy Linux Screenshots
Main Puppy screen
(Click to enlarge)
(Click to enlarge)
Included help files
(Click to enlarge)
(Click to enlarge)
(Click to enlarge)
Wizards and package manager
(Click to enlarge)
Working with filesystems
(Click to enlarge)
About the author: Howard Fosdick is an independent DBA consultant who recently wrote the first book on free and open source Rexx scripting, The Rexx Programmer's Reference. His primary interests are databases, operating systems, and scripting technologies.
Acknowledgements -- Special thanks to two reviewers for this article: Dr Raffy Mananghaya of the eMinima project, a group that shows what can be done with "easy and cheap" computer technologies, and David "Muggins" McBain, Puppy Linux user and expert.
(Click here for further information)