20 May 2013

Posted by JoeEarlam on December 20, 2011

Puppy is a lightweight distribution designed for old computers, and can be installed in about half a dozen ways, including CD/DVD, USB stick, ZIP drive and via hard drive. It runs entirely in memory, and is persistent by means of a persistence file which you can place in any location you desire, including your hard drive, a USB stick, or even on the disk you booted from, although this is still an experimental feature which unfortunately I couldn’t test.

First up is that this version of Puppy, as the name suggests, is built using packages from Slackware 13.37. Puppy has never really followed a distinct development path, and its lead developer Barry Kauler has switched package source and build system multiple times over the course of the project. Currently, puppy is built using the 'Woof' build system, which allows packages from various distributions to be used. Hence, using Slackware packages means that Puppy 5.3.1 is compatible with the Slackware repositories, with a large range of software just a few clicks away. And unlike Slackware, Puppy has dependency resolution, so no hunting around installing dependencies manually.

So, on with testing the little Puppy for all it’s worth. I downloaded the image, which due to being only 126mb took no time at all to download. Even though I have a fast connection, it’s nice to see someone out there catering to people with slow internet or a low bandwidth cap. I then burned it to a regular CD-R, and booted it on my Dell 1545.

The first thing you see is a regular boot screen like you’d see on Debian of old or Slackware, nothing to write home about. Hit enter, and the CD spins up and Puppy begins to boot. You’ll notice that it spends an awful long time loading stuff to memory, because it is. It’s loading the contents of the CD into memory so that files and programs can be accessed in an instant. Finally a selection screen appears, asking whether you want Puppy to guess your display mode, or whether you want to choose it. With my Intel graphics, Puppy guessed perfectly, and after a confirmation screen, took me to the desktop. Mousing over the box at the top gives you a little information screen, as seen below.

Puppy Linux

The desktop theme looks much better than previous versions, at least in my opinion. It’s better integrated, although lacking in all of the eyecandy we’ve been spoiled with and are used to seeing with the likes of KDE4, Gnome Shell and Unity, so Puppy’s JWM (Joe’s Window Manager) desktop looks decidedly Windows 95-esque. A few seconds after the desktop appears, a window appears asking you to confirm various settings. It’s pretty self explanatory, and lets you choose localisation settings or update the screen resolution.

First thing I always test with a lightweight OS is the memory usage, so off to the terminal for a quick free -m. On the way I noticed that the touchpad sensitivity is incredibly low, so low that I need to traverse the touchpad four times for the cursor to travel between opposite corners of the screen. Once I get to the terminal, memory usage comes out at 300mb. That’s incredibly high for a ‘lightweight’ OS, but you have to remember the whole OS is running from memory. Doesn’t matter so much on my laptop with 4gb of RAM, but when you want to install to a 10 year old desktop with 512mb of RAM, you’ve filled 3/5 of your memory already.

On with some usability tasks. First up, connecting to the internet. Puppy has, as far as I can remember, always included a nice little wizard for connecting to the internet, and Slacko is no different.

The wizard has a surprising number of options, even including settings for GPRS modems. Clicking on the wireless/wired button, Puppy detected my internal ethernet and Intel 5100 wifi card. Selecting the wifi card, it automatically scanned for access points, and presented me with a list to choose from. I typed in my password, and everything just worked.

Next up is the logical successor to connecting to the internet, browsing the web. Puppy includes Seamonkey, which is the modern day descendent of Netscape Navigator of old. It loads in a couple of seconds, thanks to being stuck in memory when we booted. As soon as it loads it brings up a prompt asking whether you want to download Adobe Flash, a nice touch. Clicking yes will download and install the addon, then prompt you to restart the browser.

Browsing is fast enough, and Seamonkey doesn’t seem to have many compatibility errors or problems, not surprising though, considering it uses Gecko, Firefox’s rendering engine. There is however, one glaring problem. Seamonkey looks like it came straight out of 1995. It’s really, really ugly.

Since Seamonkey probably isn’t most peoples’ first choice when it comes to browsing, I decided to install Firefox. Puppy comes with two package managers, a fast one similar to Ubuntu’s Software Centre (only with fewer choices), and a fully featured one similar to Synaptic. To install Firefox I chose quickpet, and three clicks later firefox was on my desktop. As painless as you can make it.

Next up, I had a look at the package manager. As you can see, it looks like any other package manager, with various categories and a search bar. However, selecting some extra repositories (Slackware’s main repo etc) and telling it to update simply timed out when trying to download the Salix package lists, even when deselected. This means I couldn’t test the full package manager, although from previous experience it will be a one or two click install.



I then decided to play some music. Mplayer crashed when I tried to import my whole library, which is annoying, since VLC and audacious manage it on slower computers. However, it would play a single file apparently, although with no sound. I troubleshot for a little while, but it appears my sound card disappeared from puppy. A slight problem there, since I have a generic Intel HD audio chip. Not sure if this is a bug or just a one off glitch, but it was annoying none the less.

Final thoughts
So, a few thoughts which didn’t really fit anywhere else. First is actually rather annoying, in that when apps are opened, their memory usage is added to the 300mb already used. For a lightweight distro, you’d think that since the apps are in memory already, the parts in memory already would be used, but it seems that stuff in memory can be duplicated. This is a major disadvantage compared to other lightweight distributions like Lubuntu and Bodhi Linux, since they start with 100 or 90mb of RAM used respectively on boot, although both are primarily designed to be installed, whereas puppy is designed as a live environment.

Another disadvantage is that it boots as root by default, which is bad practice in the world of Linux and Unix. A single mistake with the mouse could delete the whole system, or an exploit could instantly gain root access. This might feel comfortable to a user coming from Windows, but it’s bad practice in general.

However, it’s not all bad news. Since Slacko runs entirely in memory, your hard drives and CD/DVD drives will spin down, and your computer will run almost silently. Added to the fact that being so lightweight, Puppy uses very little CPU time, your computer will run cool, and if it’s portable, for a surprising amount of time.

Overall, Slacko is a nice continuation on the Puppy philosophy it’s designed around; It’s fast (at least on slightly newer machines than perhaps it’s intended for), reasonably simple, and most of all, very different to most current Linux distributions. Nothing else seems to combine the features it has with the footprint it takes up, and it’s incredibly flexible how it can be run as a regular, persistent OS from almost any medium. And while not suitable for a complete newbie, it’s definitely something a Windows or OSX power user could pick up and start using without too much hassle.

Slacko will definitely be going on an SD card to live in my laptop, it will be useful at some point I’m sure. Even if I just play around with it, there are some novel ideas I can learn from. I strongly suggest you give it a try too, it has a surprising amount of polish considering the size of its disk image.

Try it, you might like it!