Pa Penguin's Icebox HOME
Linux Operating System
Puppy Linux
IceWM Window Manager
Tcl/Tk: "WISH" Programming Language
Gnocl: Tcl/GTK+ Extension Package

Getting Started with Puppy Linux:

Adding Programs and Enhancements:

Pa Penguin's Packages: Programs

Pa Penguin's Packages:
Themes, Schemes, & Fonts

Wagonmaster and Chief Iceman: David "Pa" McClamrock
Username pa, domain pa-mcclamrock.com, put @ in between and you'll get my e-mail address, but perhaps spammers won't.
On the Puppy Linux Discussion Forum, I'm known as pa_mcclamrock.


Getting Started with Puppy Linux

System Requirements

Puppy doesn't have a lot of system requirements. Just about any PC with an Intel or AMD "x86" processor, either 32-bit or 64-bit, should do. Puppy will run even on computers with pretty old, slow processors, like under 200 MHz. I don't know exactly what's the oldest, slowest computer Puppy has ever run on, but it was probably so old and slow that you'd never want to use it if you could help it!

If you're going to boot Puppy from a live-CD, as I do, it's highly recommended (though not strictly required) to have at least 256 MB RAM or at least two CD or DVD drives. Why? Because, if you load Puppy from a live-CD and you have less than 256 MB RAM, Puppy won't let go of your CD drive until you shut down or reboot! That's because Puppy won't load your entire main file into RAM, and will need to read parts of the main file from the CD instead. If you have at least 256 MB RAM, the entire main file will go into RAM (which makes Puppy run really fast), and your CD drive will be available for other things after you remove the Puppy CD.

What about hard-drive space? Zero. That is, you don't have to use any hard-drive space. You can even run Puppy entirely from the CD, connect to the Internet, print, play sound and video, and much more, without installing or storing anything to any fixed or removable medium at all.

But what if you, like me, want to install some additional programs, save some files, keep some configuration information, and boot up fast (like from a hard drive) instead of slow (like from a CD)? That's only slightly harder. For this, you need only two files to be somewhere other than your Puppy CD (unless it's a multi-session rewritable CD, but mine isn't).

How can that be? Well, these are not your average files. They're special "squashfiles" with an .sfs extension, and they each contain an entire Linux filesystem in compressed form. One of them is the Puppy main file from your Puppy CD, which contains all the original programs and data you start with. The other is the pupsave file (now called "lupusave" starting with "Lucid Puppy" 5.0, but it's the same thing, so why not call it by the same name?). This contains all your added programs and data (except what you save to non-Puppy files--see the section about Filesystems and File Management). (If you make a change in something that came with the main file, the changed part actually goes into the pupsave file, which "covers up," but doesn't remove, the corresponding portion of the main file.)

Where should these files go? Pretty much any place that can hold them; it's best to have at least 700 MB available (or more, if you want to put a whole lot of stuff in your pupsave file; you can resize it with the Utility --> Resize personal storage file menu item). They can go on an internal or external hard drive, a flash drive, a multi-session rewritable CD or DVD . . . . So far as I know, there's only one place they could go where they probably should not go. That, unfortunately, is a Windows NTFS-formatted partition.

Why not? Well, there have been reports that a finicky, peevish, bigoted, easily corrupted NTFS filesystem may (or may not) break down and refuse to work if you so much as touch it with a Puppy file. Fortunately, the same isn't true of the older VFAT format, the standard format for flash drives and Windows 9x-formatted hard drives. Even better, of course, is a Linux-formatted hard drive, like on my computer (where the Linux partitions are left over from my Mandriva installation, and NTFS partitions have always been prohibited).

If you don't have any Linux partitions ready to use on your existing internal hard drive, the best bet is probably an external (or an extra internal) hard drive, if you have one or have a bit of money to spare to buy one. You can use the System --> Gparted partition manager menu item to give it a Linux format (I use the "ext3" format). It's possible to create a Linux partition on a Windows-formatted internal hard drive, but I wouldn't want to try it. You can use a flash drive instead, but then Puppy will periodically interrupt you to save things to the flash drive. (It does this to prolong the life of the flash drive; if you save to a hard drive, you don't get interrupted.) If you have less than 128 MB RAM, you'll also need a Linux swap partition (use System --> Gparted to create one).


Getting, Booting, and Configuring Puppy

If you're ready to give Puppy a try, but you can't or won't download a Puppy ISO (CD/DVD image) and make yourself a bootable CD, you can buy a Puppy CD by mail; see the Download Puppy page, about halfway down under the "Purchase Puppy CD via mail" heading. Even with dial-up, though, you should be able to download the ISO overnight through one of the links on that page; with my DSL connection, it takes about 20 minutes. Then just burn it to a CD in bootable form if you know how, or get some help from someone who does if you don't.

When you've got a Puppy CD, insert it in a CD/DVD drive that your computer can boot from, and reboot. Soon you'll see a screen with a big Puppy logo and a boot: prompt. Hit Enter or wait the prescribed number of seconds, and then you'll have to wait a few minutes while the Puppy main file is loaded into RAM from the CD. (When you first shut down or reboot from Puppy, you'll get a chance to copy the main file to a hard drive, flash drive, or whatever, which will make the boot-up a whole lot faster after that; do it!) After the main file is loaded and a few other things happen, you'll get a chance to do one of two things, depending on whether you've got Puppy 5.0 (or greater, when there is an even greater version), or an earlier version. First Run Configuration

If you've got an earlier version, you will not see a "First Run Configuration" window like the one to the right of this text. Instead, you'll go through a few configuration steps with an old-fashioned, text-only "ncurses" display where you do everything by way of the arrow keys, Tab, and Enter. (I still remember the first time I saw one of those, the first time I booted up Linux in 1999, before Puppy even existed. I didn't care how it looked; all I cared about was that it was the first step toward freedom from Windows!) The configuration steps include designating your keyboard arrangement (e.g., the standard U.S. QWERTY), locale, timezone, and video resolution (e.g., mine is 1024 x 768, with 16-bit color depth; you'll need to know what yours should be).

After you've selected the video resolution, you'll get to test it (strongly recommended if this is your first time using Puppy). Tab to the "Test" menu item and hit Enter; if the test works right, you'll soon see a correctly displayed box asking you if it did. If it didn't, hit Control-Alt-Backspace to get a plain black screen with white letters; remove your Puppy CD; type reboot or poweroff, whichever you wish to do; and hit Enter. (If you've got less than 256 MB of RAM, keep trying to get the CD out until you're allowed to do it.) Then go to another computer (or temporarily revert to another operating system on yours) and consult the Puppy Linux Discussion Forum about what to do. On the other hand, if the test comes out OK, you'll be instructed to hit Control-Alt-Backspace to exit the test. Then, if all goes well, you'll soon see the Puppy desktop.

If you've got at least Puppy 5.0, you won't have to go through the configuration steps first; you'll get to choose whether to go through them or not, by way of the First Run Configuration window that will appear after you've booted up Puppy. You can set the locale and timezone from this window; you can also use Simple Network Setup, which often makes connecting to the Internet with Puppy even easier than it was before.

What if you've got a non-US keyboard, or your video display looks too big or too small? Just click the "Keyboard and Video Resolution" button, and you'll get--guess what--the old-fashioned, text-only "ncurses" display where you do everything by way of the arrow keys, Tab, and Enter (see above). Don't worry about it; it's still one of the possible first steps toward freedom from Windows, but you may not need it any more if your keyboard and video settings come out right the first time.

Wizard Wizard

Your Puppy desktop will look somewhat different from mine, since I modified mine and you didn't modify yours yet--but yours, like mine, will have a Setup desktop icon on it. The first thing you'll probably want to do with Puppy is to connect to the Internet, especially since that's how you get to the Puppy Forum if you need any help. If you don't have Simple Network Setup (see above) or if it doesn't work, you can left-click the Setup icon, which will open a Puppy Setup window like the one to the right of this text. Here you can click buttons to connect to Internet or intranet, and set up sound, printing, and more. (Your desktop will probably also have a Connect icon on it, which will do the same as the "Connect to Internet or Intranet" button, but I got rid of mine because it was superfluous.) Just select your type of connection, follow some simple steps like when you got connected to the Internet with your previous operating system, and you should be connected very soon. If not . . . you know what to do (see above).

The other configuration procedures are pretty simple too, and they usually work, so I won't waste time telling you about them now. Once you're connected to the Internet, the world is open to you--and, more specifically, the Puppy Forum is open to you. I might even answer one or more of your questions there myself, if you have any.

When you've got your Puppy system configured, it's a good idea to reboot your computer, for two reasons.

First, one of Puppy's fairly few bizarre features is that the directory where you put your pupsave file changes its name after you've rebooted with the pupsave file in place. Mine was originally called "/mnt/sda6," but after I rebooted with the pupsave file it was called "/mnt/home." (If you don't have any idea what those directory names mean, see the section on Filesystems and File Management, below.) When I first started using Puppy, I was pretty peeved to find that my browser's home page on /mnt/sda6 couldn't be found after the first reboot, because /mnt/sda6 was now called /mnt/home!

Second, you should reboot because then you'll be prompted to create your pupsave file, where your configuration options will be saved. Just make sure you know where you'll want to put it; if that's on a removable medium (e.g., flash drive, external hard drive), make sure Puppy is detecting the medium.

How do you do that? Near the bottom left corner of your Puppy desktop, you'll see drive icons for hard drives, CD drives, flash drives, or whatever drives Puppy can detect. (There's also a floppy drive icon, even if your computer doesn't have a floppy drive.) If your removable drive isn't plugged in, plug it in and wait some seconds; an icon for that type of drive should show up. If it is plugged in, unplug it; its icon should disappear. If neither of those things happens, Puppy isn't detecting the drive; see if anyone on the Puppy Forum can figure out why not, and what to do about it.

If your drive is detected, make sure to remember how it's designated (e.g., "sda1," "sdb1," or whatnot). Then you can reboot, and it should be detected again before the actual reboot happens. You'll be asked whether you want to create a personal save file (pupsave/lupusave), and to select a drive partition for it if you do. Select the drive, pick a size (e.g., 512 MB), follow the prompts, and the file will be created. As I said, you should also get a chance to copy your Puppy main file to the same drive for faster loading.

After the reboot is complete and your Puppy desktop reappears, your configuration options should have been saved, and you should be ready to do just about anything on your computer--as long as you already know how to find files in the Linux filesystem. If you don't, you should read on.


Filesystems and File Management

In many ways, Puppy makes Linux about as much like other, more familar operating systems (OS's) as possible, plus it lets you do some things you can't do with the other OS's. One thing Puppy can't do, though, is to make the Linux filesystem quite like the filesystem of a well-known OS that uses letters like A, B, C, etc. for filesystems on different drives.

What happened to the "C" drive? It's still there; it's probably called "sda1" or something like that, and you should see a drive icon for it near the lower left corner of your desktop. If this were Windows, you could see all there is to see of the filesystem just by clicking on all the drive icons. Since it's Linux, though, you can't.

What else is there? Well . . . this may sound a bit spooky, but there's a skeleton that can be in more than one place at once, and can float in RAM without being attached to any drive. When you first run Puppy, the Linux OS "kernel" (including all the basics for making the OS work), plus the entire contents of the Puppy main file, are loaded from the live-CD into RAM--and nowhere else. That includes the filesystem skeleton and all the files connected to it.

/ : The Skeleton's Head

The skeleton's head is the top directory of the entire filesystem, known only as " / " (slash). (Some people call it the "root" directory, but I don't; that would look and sound too much like the "/root" directory, which is your "home" directory in Puppy. See below.) The top directory doesn't have to be on a drive, but every drive has to be connected to the top directory somehow, otherwise Linux won't see it.

Open WISH File Rusher (after you've installed it--click the link to your left to see where to get the .PET package, and see the page on Adding Programs and Enhancements for Puppy Linux to find out how to install it); then click one of the "Top" buttons above the directory lines. Sure enough, all you'll see on the directory line is " / ", and in the directory list below you'll see strange-looking directory names like bin, dev, etc, initrd, lib, mnt, usr, var, and others. I'm not going to try to tell you what all of them are for in this brief intro, but I'll mention a few of the ones you really need to know about to get going.

/root : You Are Here

Puppy basically gives you a single-user setup that, unlike most other Linux distributions, doesn't distinguish the system administrator ("root") from ordinary users who have their own "home" directories. In Puppy, you are "root," and the /root directory is your home directory (click one of the "Home" buttons and see). When you download or save a file, it goes into /root if you haven't selected another directory.

And everything in /root is in RAM, at least at first . . . and RAM isn't unlimited in size, especially on older computers that Puppy is great for revitalizing. What if you've got 256 MB RAM, and Puppy uses up 128 MB (or so) of that, leaving only the other 128 MB (or so) free, and you try to download a 200-MB CD image? Um, 128 + 200 = 328, and that's more than 256, so . . . it won't work, and you may soon see a disastrous "kernel panic" (in which the Linux kernel throws up its hands in despair, does the headless-chicken routine, and becomes good for nothing until you reboot).

As if that weren't bad enough, you know what happens to everything in RAM when you shut down or reboot your computer: it vanishes. What if you've got 512 MB RAM or more, and you succeed in downloading the 200-MB image into /root (in RAM), but then you shut down or reboot without saving or copying the image? It's gone. You don't want that. Here's what you need to know to keep it from happening.

Pupsave to the Rescue?

Your first line of defense against vanished downloads and overload-induced kernel panics is the pupsave (a/k/a lupusave) personal storage file, mentioned above. Pupsave is where your installed programs ordinarily are kept so they don't vanish. Pupsave is where your downloads go if you save them to /root or some other part of the Puppy filesystem, except for a mounted external directory under /mnt (see below).

When you boot up Puppy, the filesystem skeleton from pupsave is merged with the one from the main file in RAM (so all your installed programs and things will be available), but not everything from pupsave goes into RAM. The actual programs and files you've saved will remain on the hard drive (or wherever pupsave is) until you load the programs or open the files. That way, there won't be as much danger of exceeding your RAM capacity (and causing a kernel panic) as there would be if everything went into RAM.

But does that mean it's OK to download everything to /root and let everything go into pupsave? No. There have actually been reports of people causing kernel panics by overloading pupsave, just as if they had overloaded RAM.

So what to do? As a rule, it's best to download to an external directory on a mounted Linux or vfat partition--or to move your downloaded files there promptly after they land in /root. (Note that I didn't do that yet with the big "softmaker-office-2010-beta.tgz" file listed in the WISH File Rusher window shown above--but I did right after I noticed it was still there!)

What's a "mounted" partition, and how do you get one? Read on.

/mnt : The Drive Bone Gets Connected to the /mnt Bone

As I was saying, if a bone isn't connected to the skeleton--I mean, if a directory isn't connected to the directory structure that begins with " / "--then Linux can't see it or do anything with it. If the desktop icon for your "C" drive (now known as "sda1" or whatever) doesn't have a colored ball in one corner, or a "mounted" label, or some such thing, then that drive isn't "mounted," i.e., connected to the directory structure. In that event, if you double-click or right-click the mnt (pronounced "mount") line in the list below the " / " directory line in WISH File Rusher, and then do the same to the sda1 line (or whatever it is) below the /mnt directory line, the directory /mnt/sda1 will appear to be empty!

But now . . . just click the drive icon. A little ball or something will appear, and so will a ROX-Filer window showing the contents of the /mnt/sda1 directory. (ROX-Filer is Puppy's standard file manager, and it's pretty good in a lot of ways, but I like a two-column file manager with buttons in the middle better.) In WISH File Rusher, double-click or right-click sda1 below /mnt again; the same contents will now appear. The drive bone is connected to the /mnt bone--I mean, the drive is now mounted in the Linux filesystem, so you can see its contents and use it to save things. (Just note the caution about using an NTFS filesystem, mentioned above!)

S-Linky Shortcuts

What if you've got a lot of stuff in a remote subdirectory of /mnt, but you want to get at it as easily as if it were right under /root? Simple: create a symbolic link ("s-link" for short) from the remote subdirectory to /root.

Look on the right side of the WISH File Rusher window shown above. You'll see directories listed with "@/initrd/mnt/dev_save" (and more) after the directory names, e.g., "Computing." The "at" sign (@) means the listing is for a symbolic link, and "/initrd/mnt/dev_save" is Puppy-geek-speak for "the directory where your pupsave file is located, also known as /mnt/home." If you were using my computer and you double-clicked or right-clicked the "/root/Computing" line, you'd go straight to /mnt/home/david/Computing, which is in a Linux partition on my hard drive, but isn't included in pupsave. What this means for you is that (after you set up an s-link) you can get at any mounted directory or subdirectory under /mnt as easily as if it were included in your pupsave file--but it's not included in your pupsave file. So, you've pretty much eliminated the danger of overloading your pupsave file--unless you make the mistake of, say, saving some really gigantic things in pupsave instead of a directory under /mnt.

How do you make a symbolic link? With WISH File Rusher, it's superbly simple: just select the listing of the directory you want to be linked (e.g., /mnt/home/david/Computing) in one window; have the contents of the directory you want the link to be in (e.g., /root) displayed in the other window; and click S-Link if you want the link to have the same name as the original directory (e.g., Computing). If you want the link to have a different name, click "S-Link As" and enter the different name on the entry line that will open up. With ROX-Filer, it's only slightly harder: you need to open two ROX-Filer windows, drag and drop the original directory's icon from its window to the window showing the directory where you want the link, and then select "Link" from the pop-up menu.

Back Up!

But what if your mounted drive goes bad without warning? You'll be pretty peeved at yourself if you didn't make backup copies of important files, that's what. Plan ahead, and act wisely, to avoid that sickening event!

Some people make backup copies of their entire pupsave file. If you want to do this, make sure to boot puppy pfix=ram first, meaning your pupsave file won't be loaded, so it won't be in use (and maybe getting changes written to it) when you're trying to copy it. Then (1) locate pupsave on the partition you saved it to; (2) make sure the flash drive or whatever you're copying it to is mounted and has enough capacity; and (3) drag, drop, and click "Copy" with ROX-Filer to copy the massive pupsave file. If you prefer to burn it to a rewritable CD or DVD, select the burning program you want to use. (As you might expect, I would use WISH Disc-Writer) and follow the directions.

Me, I just back up files I've added or changed to a flash drive (typically /mnt/sdb1 on my computer) soon after I've added or changed them. If I don't remember exactly which ones they were, but at least I remember what directory they were in, I look at the directory in WISH File Rusher and click the "Time-Stamp" button. This puts the most recently changed files at the bottom of the list; then (with any luck) my memory is refreshed and I can copy the right ones to the flash drive. Also, I periodically back up important and often-changing directories to rewritable CDs, and I back up directories that aren't likely to change much to CD-ROMs, with WISH Disc-Writer. If you prefer, you can try the Utility --> Pmirror menu item to identify changed files in a directory automatically and back them up.

What Next?

This page just gives you the rock-bottom basics you need to get going with filesystems and file management in Puppy. To learn more, take a look at the ROX-Filer manual (click the "lifesaver" icon in any ROX-Filer window), the >WISH File Rusher (click the "Help" button in WISH File Rusher, or both. To learn still more, go to the Puppy Forum. Before long, if you're anything like me, you'll find that the Linux filesystem is actually more understandable and easier to use than the Windows filesystem; you'll have no fear that your files will vanish when RAM shuts down; and you'll be confident that the Linux kernel will obey you when you tell it, "Don't panic!"

At that point, you'll be ready to start working Puppy for all it's worth. When that happens, you'll probably want to read about Adding Programs and Enhancements for Puppy Linux.