We study some lightweight Linux distributions

Less is More

Article from Issue 274/2023
Author(s):

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

http://tinycorelinux.net/

http://www.damnsmalllinux.org/

https://distro.ibiblio.org/puppylinux/puppy-s15pup/

https://distro.ibiblio.org/puppylinux/puppy-fossa/

https://antixlinux.com/

https://alpinelinux.org/

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].

Figure 1: FossaPup64 9.5 is a Puppy Linux version that uses programs and libraries from Ubuntu 20.04 (Focal Fossa).

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).

Figure 2: In the Puppy installer, edit the Grub menu configuration to get rid of a superfluous Windows entry.

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).

Figure 3: S15Pup64 (Puppy Linux) is lightweight but current: Use OpenSSH to connect to other machines on your network.

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.

Figure 4: Tiny Core Linux lets you install applications via a very simple package manager.

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).

Figure 5: You can also run LibreOffice on Tiny Core Linux.

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).

Figure 6: If your antiX Linux installation seems to have no installed applications, refresh the menu.

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).

Figure 7: The antiX Linux Package Installer sorts applications into categories.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus
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.

Learn More

News