Puppy Linux is a family of light-weight Linux distributions that focus on ease of use and minimal memory footprint. The entire system can be run from random-access memory (RAM), with current versions generally requiring 300 MB (32-bit) to 600 MB (64-bit) of memory, allowing the boot medium to be removed after the operating system has started. Applications such as AbiWord, Gnumeric and MPlayer are included, along with a choice of lightweight web browsers and a utility for downloading other packages. The distribution was originally developed by Barry Kauler and other members of the community, until Kauler retired in 2013. The tool Woof can build a Puppy Linux distribution from the binary packages of other Linux distributions.
History In response to a trend of other distributions becoming stricter on system requirements, Barry Kauler started his own distribution with an emphasis on being efficient, fast and lightweight. The development of Puppy Linux used "Linux Bootdisk HOWTO" as base until Puppy 0.1 was complete. Puppy Linux was initially based on Vector Linux but then became a fully independent family of distributions.
Release versions
Version Release date Puppy 0.1 18 June 2003 Puppy 1.0 29 March 2005 Puppy 2.0 1 June 2006 Puppy 3.0 2 October 2007 Puppy 4.3.0 5 May 2008 Puppy 5.0.0 15 May 2010 Puppy 5.2.8 4 April 2012 Puppy 5.3.0–5.7.0 24 October 2011 – 8 March 2014 Puppy 6.0.5 26 October 2014 Puppy 6.3.2 21 June 2016 Puppy 7.5 4 December 2017 Puppy 8.024 March 2019 Puppy 8.2.11 July 2020 Puppy 9.521 September 2020 BookwormPup32 23.12 / -Pop64 10.0May 2024TrixiePup32 / Pup64December 2025
Puppy 0.1 is the initial release of Puppy Linux. It has no UnionFS, extremely minimal persistence support, and has no package manager or ability to install applications.
Puppy 1.0 series runs comfortably on very dated hardware, such as a Pentium computer with at least 32 MB RAM. For newer systems, the USB key drive version might be better (although if USB device booting is not directly supported in the BIOS, the Puppy floppy boot disk can be used to kick-start it). It is possible to run Puppy Linux with Windows 9x/Me. It is also possible if the BIOS does not support booting from USB drive, to boot from the CD and keep user state on a USB key drive; this is saved on shutdown and read from the USB device on bootup.
Puppy 2.0 is the first iteration of Puppy Linux whose packages were built independently using the T2. This version received an update of GTK from GTK1 to GTK2, as well as support for multiple persistence modes, allowing it to keep its session in the hard disk, flash drive, or its own CD-R or CD-RW. Puppy 2.0 also implemented Puppy Unleashed, which allowed the user to create their own Puppy distribution. This version uses the Mozilla-based SeaMonkey as its Internet suite (primarily a web browser and e-mail client).
Puppy 3.0 features Slackware 12 compatibility. This is accomplished by the inclusion of almost all the dependencies needed for the installation of Slackware packages. However, Puppy Linux is not a Slackware-based distribution.
Puppy 4.0 is built from scratch using the T2 SDE and no longer features native Slackware 12 compatibility in order to reduce the size and include newer package versions than those found in 3. To compensate for this, an optional "compatibility collection" of packages was created that restores some of the lost compatibility.
Puppy 4.2.0–4.3.0 feature changes to the user interface and backend, upgraded packages, language and character support, new in-house software and optimizations, while still keeping the ISO image size under 100 MB.
Puppy 5.0.0–5.7.0 are based on a project called Woof, which is designed to assemble a Puppy Linux distribution from the packages of other Linux distributions. Woof includes some binaries and software derived from Ubuntu, Debian, Slackware, T2 SDE, or Arch repositories. Puppy 5 came with a stripped-down version of the Midori browser to be used for reading help files and a choice of web browsers to be installed, including Chromium, Firefox, SeaMonkey Internet Suite, Iron and Opera.
Puppy 6.0 is a full community effort, as Barry Kauler stepped down from Puppy and Woof development following the announcement of retirement made in 2013. As such, the Woof build system was forked and renamed to "Woof-CE" (Woof Community Edition). At the time of release of Puppy 6.0, there were two Series 6.x Puppies: TahrPup CE 6.0, and Slacko Puppy 6.3. Puppy 6.0 (or TharPup CE 6.0) is built from Ubuntu 14.04 "Trusty Tahr" packages, allowing binary compatibility with Ubuntu 14.04 and access to the Ubuntu package repositories. The version also added new kernels which the user could switch between, as well as QuickPet, a simplified version of the Puppy Package Manager that allows its users to install popular additional software by pressing one of the icons.
Puppy 6.3.0 is built with Slackware-14.1 binary TXZ packages, so it has binary compatibility with Slackware and access to the Slackware and Salix repositories. This version is shipped with kernel 3.14.55, which can be changed using the then newly implemented "change_kernels" script. In Puppy 6.3.2, kernels 3.18.22 and 4.1.11 are available from the repository.
Puppy 7.5 is built from Ubuntu 16.04 "Xenial Xerus" packages, which has binary compatibility with Ubuntu 16.04 and access to the Ubuntu package repositories. XenialPup is built from the woof-CE build system, forked from Barry Kauler's Woof. It is built from the latest testing branch, incorporates all the latest woof-CE features and is released in PAE and noPAE ISOs, with the option to switch kernels. It has a new UI, a new kernel update for greater hardware compatibility, redesigned Puppy Package Manager, some bugfixes and base packages inclusion into the woof structure.
Puppy 8.0 is built from Ubuntu "Bionic Beaver" 18.04.2 packages, has binary compatibility with Ubuntu 18.04.2 and access to the Ubuntu package repositories. BionicPup is built from the woof-CE build system, forked from Barry Kauler's Woof. It is built from the latest testing branch and incorporates all the latest woof-CE features.
Puppy 8.2.1 is built from Raspberry Pi OS packages, has full support for the Raspberry Pi 0 to the Raspberry Pi 4, and is relatively similar to its predecessor. Raspberry Pi OS is based on Debian, meaning that Puppy Linux still has Debian/Ubuntu support. This version of Puppy Linux is not compatible with personal computers, like desktops or laptops.
Puppy 9.5 is built from Ubuntu "Focal Fossa" 20.04 (64-bit) packages, has binary compatibility with Ubuntu 20.04 and access to the Ubuntu repositories. FossaPup64 comes with JWM as the default window manager. Also, at this release, Puppy Linux's Ubuntu-based release has dropped support for 32-bit x86 computers, due to Ubuntu dropping 32-bit support at this release before reverting its decision and supporting only select 32-bit libraries. However, its Debian-based and mixed releases (i.e., BookwormPup32 and NoblePup32, respectively) continue to support 32-bit systems.
Puppy 10.0 (or BookwormPup) is based on Debian 12 binaries and includes Apt/Synaptic package management with the original Puppy Package Manager (PPM). This version utilizes the X.org protocol and uses GTK3 graphical interface where possible, with GTK2 being a fallback for a few legacy applications. Desktop management is achieved via JWMdesk-3.7. Debian's DKMS is implemented, including kbuild.
Puppy 11.0 (or TrixiePup) is built from Debian "Trixie" 13 (32/64-bit) packages, and has access to Debian repositories. The Wayland build uses Labwc and SpaceFM, while the X11 build has JWM and Roxfiler.
Features Puppy Linux is a complete operating system bundled with a collection of applications suited to general use tasks. It can be used as a rescue disk. It includes a utility to repair GRUB configurations. It includes a demonstration system that leaves the previous installation unaltered, as an accommodation for a system with a blank or missing hard drive, or for using modern software on legacy computers.
Puppy's compact size allows it to boot from any media that the computer can support. It can function as a live USB for flash devices or other USB mediums, a CD, an internal hard disk drive, an SD card, a Zip drive or LS-120/240 SuperDisk, through PXE, and through a floppy boot disk that chainloads the data from other storage media. It has also been ported to ARM and can run on a single-board computer such as the Raspberry Pi.
Puppy Linux features built-in tools which can be used to create bootable USB drives, create new Puppy CDs, or remaster a new live CD with different packages. Puppy Linux is also especially designed to have no writes to the flash drive during a session, which extends the flash drive's life span.
Puppy Linux includes the ability to use a normal persistent updating environment on a write-once multisession CD/DVD that does not require a rewritable disc, which set Puppy Linux apart from other Linux distributions in 2008.
Puppy's bootloader does not mount hard drives or connect to the network automatically. This ensures that a bug or even unknowingly incompatible software won't corrupt the contents of such devices.
One of the ideas central to Puppy Linux is that it can work off a live CD while also keeping data between reboot sessions, allowing the live CD to be used as if it were a fully installed operating system. However, if user data is corrupted in any way, this feature can be turned off such that Puppy Linux may boot in its clean live CD state.
User interface
The default window manager in most Puppy releases is JWM.
Packages for IceWM, Fluxbox and Enlightenment are available via Puppy's PetGet package (application) management system (see below). Some derivative distributions, called puplets, come with default window managers other than JWM.
When the operating system boots, everything in the Puppy package uncompresses into a RAM area, the "ramdisk". The system needs to have at least 128 MB of RAM (with no more than 8 MB shared video) for all of Puppy to load into the ramdisk. However, it is possible for it to run with only about 48 MB of RAM because part of the system can be kept on the hard drive, or less effectively, left on the CD.
Puppy is fairly full-featured for a system that runs entirely in a ramdisk, when booted as Live system or from a "frugal" installation. However, Puppy also supports the "full" installation mode, which enables Puppy to run from a hard drive partition, without a ramdisk. Applications were chosen that met various constraints, size in particular. Because one of the aims of the distribution is to be extremely easy to set up, there are many wizards that guide the user through a wide variety of common tasks.
Package and distribution management
Puppy Linux's package manager, Puppy Package Manager, installs packages in PET (Puppy Enhanced Tarball) format by default but it also accepts packages from other distros (such as .deb, .rpm, .txz, and .tgz packages) or by using third-party tools to convert packages from other distros to PET packages. Puppy Package Manager can also trim the software bloat of a package to reduce the disk space used.
Building the distribution