We study some lightweight Linux distributions
Less is More
Are you ready to escape the bloat of mainstream Linux? We look at four lightweight, but general-purpose Linux distributions: Puppy Linux, Tiny Core Linux, antiX Linux, and Alpine Linux.
Quick, name three Linux distributions: You probably thought of some of the big players, such as Ubuntu, Debian, openSUSE, or Red Hat. What they have in common is that they target current desktop and server hardware, and they provide huge (yet similar) selections of current Linux applications, covering all categories, including office, multimedia, development, and gaming. Typically you download a large DVD ISO image and write it to a USB stick – or burn a DVD if you still have a DVD drive – then boot it and launch the installer. All of these modern general-purpose distributions let you reassign disk space and create a boot menu from which to select the new OS from a menu of systems installed on the hard disk.
If you think of Linux as one of these big, sprawling distros, get ready for something different. This month, we focus on small Linux alternatives. Many of these small Linux distros are live systems: You boot them from a USB stick when you need them, and you typically don't install them on a hard disk; however, some of them do have regular installers. This article examines some general-purpose small distros that attempt to give you a full Linux desktop experience (or server experience, in the case of Alpine), but that cope well with limited hardware resources.
Another article in this issue describes some special-purpose distributions that turn your computer into a media player, a retro-gaming machine, or a rescue system. In a third article, I discuss a few small Linux distributions for the Raspberry Pi.
I tested the lightweight distributions described in this article (see Table 1) on a 14-inch Lenovo Ideapad 100-14IBY from 2015 (Quad-Core Celeron N2940 at 1.8GHz and 8GB RAM) and in VirtualBox VMs.
Table 1
Lightweight Linux Distributions
Distribution |
Tiny Core Linux |
Damn Small Linux |
S15Pup64 (Puppy) |
FossaPup64 (Puppy) |
antiX Linux |
Alpine Linux |
Website |
||||||
Version |
14.0 |
4.4.10 |
22.12 |
9.5 |
22 |
3.18.2 |
Released |
04/2023 |
11/2008 |
03/2023 |
09/2020 |
10/2022 |
06/2023 |
Linux Kernel |
6.1.2 |
2.4.31 |
5.15.80 |
5.4.53 |
5.10.142 |
6.1.34 |
Window Manager |
FLWM 1.20 |
JWM 2.0 |
JWM 2.4.3 |
JWM 2.4.0 |
IceWM 3.0.1 |
– |
ISO Image Size |
248MB (CorePlus) |
50MB |
402MB |
409MB |
1.4GB |
762MB (Extended) |
Puppy Linux
The Puppy Linux project [1] has created a number of Linux live CD images that provide binary compatibility with some Ubuntu and Slackware Linux versions; the latest official releases have been FossaPup64 9.5 (based on Ubuntu 20.04, from September 2020; Figure 1) and S15Pup64 22.12 (based on Slackware Linux 15.0, from December 2022). But Puppy Linux has spawned a whole ecosystem of distributions through their Puppy builder Woof-CE [2]: You get a set of scripts that you can run on any regular Linux distribution and create a fully customized new Puppy Linux that is binary-compatible with the original distribution. Those unofficial Puppy versions are called Puplets, and you can find hundreds of them on the Internet Archive's Puppy Linux page [3].
You can run Puppy Linux directly from the downloaded ISO image without installing it, but there's also an installer. If you already have another Linux system on your hard disk, you need not repartition the drive: A Puppy installation can co-exist with other Linux versions because the installer stores all the required files in a sub-folder. Click on Setup | Puppy Installer in the Applications menu, then click on Installer and select Internal hard drive / SSD to start a regular disk-based installation. If necessary, you can then launch GParted to partition the disk – just create one partition and accept the default settings (fill whole disk, one primary partition, Ext4 filesystem). When the partition table looks good, ask GParted to make the changes by clicking the green tick symbol. Once you're done, exit the partitioner and select the partition.
Even when copying Puppy Linux to a fresh hard drive (for example, in a virtual machine), the installer will add a Windows option to the boot menu. You can remove that option by editing Grub's menu.lst
file when the option is offered during the installation process (Figure 2).
I looked at FossaPup64 9.5 (fossapup64-9.5.iso
, 409MB) [4] which is based on the 64-bit version of Ubuntu 20.04 (Focal Fossa), and at the newer Slackware-based S15Pup64 22.12 (S15Pup64-22.12+4-T.iso
, 402MB) [5], which is also available in a 32-bit-compatible version for your older Intel processors.
Each time you boot the system, you'll be dropped in a graphical session that runs Joe's Window Manager (JWM) [6] as root
. JWM is a lightweight window manager, which makes it a good choice for a system that is intended to run on both recent and older hardware. By default JWM creates three desktops that you can access via Ctrl+Alt+Left Arrow and Ctrl+Alt+Right Arrow.
S15Pup64's 402MB ISO image contains a lot of useful software. From the icon bar at the top of the desktop (Figure 3), you can launch a file manager (ROX-Filer), a web browser (Light 48.0, based on Firefox), an IRC client (HexChat) which automatically joins the #puppylinux
channel on Freenode, LXTerminal, a task manager, office software (the word processor AbiWord and the spreadsheet program Gnumeric), a simple painting program (mtPaint), and some configuration tools. You can find more applications via the start menu in the lower left corner. When you're working on the command line, you will find that S15Pup64 provides a current OpenSSH version so that you can use an older computer running Puppy Linux to log in to other machines in your network (Figure 3).
It is possible to add software to a Puppy Linux system. For example, in the Slackware-based S15Pup64, choose Applications | Setup | Package manager to reach the package manager, which uses several repositories and can install Puppy software packages. Puppy packages have the .pet
extension and are actually xz
-compressed tar files. You can also install packages from the underlying Slackware distribution. Installing .pet
packages sometimes led to unsatisfied dependencies, both with the current S15Pup64 and the older FossaPup64. Puppy Linux also uses Squashfs (*.sfs
) files, which contain compressed filesystems; the distribution mounts them and adds the contained files to the general filesystem (using a UnionFS filesystem). That way, you try the software without actually installing it.
Tiny Core Linux
Damn Small Linux (DSL) [7] was once a popular small distribution. DSL crammed as much software as possible into a 50MB ISO image, and the last release (version 4.4.10 from November 2008) is still available online, but its software components are completely outdated. DSL uses Linux kernel 2.4.31, the Xvesa graphics driver from XFree86, and an old Dillo web browser and OpenSSH 3.6.1, which are not compatible with modern websites and SSH servers, so you cannot use the system to browse the web or login on other machines. However, there's a DSL successor called Tiny Core Linux (TCL) [8] that is still in development: Version 14.0 was released in April 2023.
Tiny Core 14.0 uses a current Linux kernel (version 6.1.2) and the Fast Light Window Manager (FLWM), running on the same old-school Xvesa X server as its predecessor DSL: In our tests, Xvesa did not work properly in a VirtualBox VM, but VMware had no problems with it. Our test notebook could only boot Tiny Core from a USB stick after changing the boot mode from UEFI to Legacy in the BIOS settings. Writing it to a CD also worked, but again, booting it in the Lenovo IdeaPad only worked after enabling legacy boot modes in the BIOS. I also successfully tested Tiny Core on an ancient IBM ThinkPad T30 (featuring a single-core Pentium 4 processor at 2GHz and 512MB of memory).
On the IdeaPad, Tiny Core did not detect the modern 16:9 screen resolution and ran X with a classic 4:3 resolution (1024x768), but I was able to fix that by running the xsetup.sh
script in a terminal window, selecting the right resolution (1366x768), terminating X with Ctrl+Alt+Backspace, and restarting the X server with the startx
command.
The FLVM window manager starts up with a single virtual desktop, but you can easily create extra desktops by pressing Ctrl+F2, Ctrl+F3, and so on: These shortcuts will create desktops #2 and #3 and switch to them; you go back to the initial desktop with Ctrl+F1. Getting rid of desktops is easy, too: Just click on an empty area on the desktop and select the Desktop n | delete this desktop menu entry.
Tiny Core comes without any interesting pre-installed applications, but it lets you add software with the same method that Puppy Linux uses: by mounting a squash filesystem. However, Tiny Core does not create overlays with UnionFS (like Puppy), but mounts the filesystems in separate folders and adds symlinks. So, for example, when you want to install the file
command-line tool, you launch the Apps application (Figure 4), select Apps | Cloud (Remote) | Browse, find and select the file.tcz
package in the list, change the drop-down option in the lower right corner to Download + Load and click on Go. Tiny Core then downloads a .tcz
file (file.tcz
) that contains a squash filesystem, it mounts the file on /tmp/tcloop/file/
, and it symlinks /tmp/tcloop/file/usr/local/bin/file
to /usr/local/bin/file
so that you can run the file
command.
When you reboot the machine, the freshly installed software will appear to be gone: You cannot use the file
command any longer. But the file.tcz
package was not deleted; its integration into the running system simply is not permanent. You can change that by running Apps again and selecting Apps | Maintenance | OnBoot Maintenance. In the two-column view, find file.tcz
in the left column, select it, and click on Add item. The entry will move to the right column. Now reboot (type sudo reboot
in a terminal window), and file
will be available.
When you install new packages and pick the OnBoot option from the drop-down menu before you click on Go, you can integrate the package's programs automatically, but it will slow down the otherwise extremely fast boot process, because Tiny Core mounts each package separately and creates the symlinks. The application list is not restricted to tiny programs; for example, you can also install a current LibreOffice version – of course, that will only be useful if your computer is fast enough (Figure 5).
antiX Linux
The antiX project describes their Linux distribution [9] as a "fast, lightweight and easy-to-install systemd-free Linux live CD distribution based on Debian Stable for Intel-AMD x86 compatible systems." There's a problem right in the first sentence on the website: When you download the ISO image, you'll notice that there are several editions of the current version 22 to choose from. You can make the following decisions:
- 64-bit or 32-bit version,
- use System V init (sysvinit) or runit (yet another replacement for sysvinit),
- and get the full system (1.4GB), a base system (basically full without LibreOffice; 820MB), a core system (text-mode only; 460MB), or a net system (for manually downloading and building the rest of the system; 180MB).
You can pick one of the 16 images, and each of them that will give you a graphical desktop is larger than 700MB, so it will not fit on a CD. You can burn the larger images to a DVD or write them to a USB stick, but on older CD-only machines, it won't work.
AntiX Linux boots into a live system. You can run the antiX installer from the start menu. The installer will first check the integrity of the ISO image and then let you partition the hard disk; like the installers of the mainstream distributions, the antiX installer makes a suggestion, but you can apply changes. You need to deal with the same types of questions you see with other Linux installers. For example, you enter a hostname, set up the locale settings, create a user account, and set the user and root passwords. AntiX Linux allows the creation of a password-less account, and a root password is not required, either: If you don't set one, you can later become root via sudo su
.
After booting the freshly installed antiX system for the first time, I noticed that the Applications submenu was completely empty – if that happens to you, run Refresh Menu from the top layer of the start menu to re-populate the menu (Figure 6).
This antiX version is based on Debian GNU/Linux 11, so you can apt update
and apt install
Debian packages, but when you install the full version, you already get a lot of useful programs. Instead of adding software with apt
, you can open the antiX Control Centre, go to the Software tab, and click on Manage Packages (which starts Synaptic) or Package Installer, which opens an antiX tool that shows software sorted into categories, such as Development, File Managers, or Games (Figure 7).
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
Fedora Asahi Remix 41 Available for Apple Silicon
If you have an Apple Silicon Mac and you're hoping to install Fedora, you're in luck because the latest release supports the M1 and M2 chips.
-
Systemd Fixes Bug While Facing New Challenger in GNU Shepherd
The systemd developers have fixed a really nasty bug amid the release of the new GNU Shepherd init system.
-
AlmaLinux 10.0 Beta Released
The AlmaLinux OS Foundation has announced the availability of AlmaLinux 10.0 Beta ("Purple Lion") for all supported devices with significant changes.
-
Gnome 47.2 Now Available
Gnome 47.2 is now available for general use but don't expect much in the way of newness, as this is all about improvements and bug fixes.
-
Latest Cinnamon Desktop Releases with a Bold New Look
Just in time for the holidays, the developer of the Cinnamon desktop has shipped a new release to help spice up your eggnog with new features and a new look.
-
Armbian 24.11 Released with Expanded Hardware Support
If you've been waiting for Armbian to support OrangePi 5 Max and Radxa ROCK 5B+, the wait is over.
-
SUSE Renames Several Products for Better Name Recognition
SUSE has been a very powerful player in the European market, but it knows it must branch out to gain serious traction. Will a name change do the trick?
-
ESET Discovers New Linux Malware
WolfsBane is an all-in-one malware that has hit the Linux operating system and includes a dropper, a launcher, and a backdoor.
-
New Linux Kernel Patch Allows Forcing a CPU Mitigation
Even when CPU mitigations can consume precious CPU cycles, it might not be a bad idea to allow users to enable them, even if your machine isn't vulnerable.
-
Red Hat Enterprise Linux 9.5 Released
Notify your friends, loved ones, and colleagues that the latest version of RHEL is available with plenty of enhancements.