Distro history


I've been asked a few times about the history and purpose of my distro. Here are some related questions and answers. They're based loosely on an email exchange from January 2012.

Q. What is this project and who is it for?

A. This is a large but lightweight Linux distro that runs from thumbdrives, internal or external hard disks, and possibly cameras and smartphones (used as USB storage).

The distro is monolithic; almost everything is preinstalled and ready to use. The usual packages (GIMP, LibreOffice, etc.) are provided. There are also programs, databases, and other components that are not readily available in other distros.

The distro is intended for UNIX CLI engineers who are interested in software development, multimedia, reading in general, reference works and databases, and lightweight games.

Q. Before you set out to create your own distro, which distros were you primarily using?

A. Slackware and some of its derivatives. Reason: In the 1990s, my firm was UNIX-based and this was the distro most like UNIX. Ports were simple and the environment was familiar. It was a natural transition.

My teams at the office had aging Sun hardware to work with. Another engineer (my co-developer for one of the company's products) became frustrated because there never seemed to be any money in the company's budget for new hardware. The company's motto was “Use it up, wear it out, make it do, or do without.” :-) He stumbled on Linux and brought it to my attention. We were both pleased to see that, for our purposes, Sun machines and operating systems were suddenly superfluous.

We ported our software to Linux and scarcely missed a beat. Subsequently, we continued to support all the standard UNIX platforms as targets; however, from that point on, the primary development systems were Linux PCs (486s and up) as opposed to Sun machines. I moved the company's network infrastructure to Linux as well.

Some of the senior people at the company seemed confused by this turn of events. When I showed one manager an X11 desktop, he took the mouse and shook it to see if the desktop would break. Instead, the cursor faithfully moved around the screen. He found this surprising; how could free software be as good as Windows? :-)

But, for the rest of the company's life, Linux was at the heart of things.

As a side note, I worked with Red Hat Linux and its derivatives during this period (in addition to Slackware). This was primarily to help acquaintances who had problems with that group of distros.

Q. Did you base your custom distro off an existing base such as Debian or Gentoo or did you actually code it entirely from nothing?

A. I coded it “entirely from nothing” the way you apparently mean this; specifically, there was no base distro.

But obviously “entirely from nothing” isn't true in the broader sense. As Isaac Newton said, we make progress by “standing on the shoulders of giants”. Some of the distro's frameworks were written from scratch but I rely on upstream packages like everybody else (except for orphaned projects that I've adopted). I also use patches from distros of all types (though I often patch or extend programs myself).

Q. How did your distro come about?

A. I started using Linux shortly after the initial release two decades ago. As explained previously, I moved a company whose Sun-based infrastructure was deteriorating to Slackware in the early 1990s. The kernel wasn't quite robust enough at the time, so I started making patches at that level. I also added things like email clients, servers, maintenance scripts, etc., to the userland over time.

By 1998 I had an informal fork of Slackware running that was quite stable. The CEO continued to use a server based on this fork for years after the company died. Ironically, he'd discounted Linux and even the Internet initially; this was one of the reasons that his company didn't survive.

During the dot-com era, after that company shut down, I worked with a number of different Linuxes both personally and professionally.

On the personal side, friends often phoned me and asked me to help them deal with things like Linux firewall problems, data recovery for Windows (I often used Linux for this), website issues (Linux was useful here as well), etc.

As a side note, I'm sure that many engineers reading this are familiar with the type of phone call mentioned above. :-) “Hi, Bill. This is Charlie. Long time no see. We should have you over for dinner sometime. Say, as long as we're talking, could you tell me what to do about the worm that's eating my website? And my partner's laptop crashed; could you get the data back for him?” If you've heard this before, we may have similar backgrounds.

On the professional side, my Slackware derivative (which I continued to work on) ran public and intranet servers, was used for product development, and evolved some unique features. This was good, but I started to feel limited by the constraints of the base distro and considered switching to other bases.

But the dot-com era ended and my attention was elsewhere for a while. On Christmas Eve 2004, however, it occurred to me that I didn't actually need a base distro. And that using a base distro was actually slowing things down.

None of the alternative base distros that I'd looked at provided the ease of use and functionality I'd come to expect from Slackware. They seemed to be directed primarily at former Windows users. Additionally, many distros were slow, some seemed bloated (there were layers on top of layers), and configuration was a tedious affair; distros had started to use GUIs for configuration, an inefficient (e.g., non-scriptable) way to handle things.

I was a UNIX CLI developer. I wanted a fast, simple, and complete UNIX CLI environment where things “just worked” for my purposes. No slow and tedious GUI procedures for setup. Geared towards scripts and configuration files, the way God intended things to be. :-) No need to download a lot of extra pieces; I wanted the components that I cared about to be pre-installed. And I wanted a LiveDistro if possible; I found the idea of LiveDistros (which were known at the time as LiveCDs) attractive. So I looked for LiveDistros that met the other criteria. But there didn't seem to be many distros of this type.

So I continued to customize Slackware and its derivatives (such as Peanut Linux, now deceased though it apparently has derivatives of its own). But this proved to be increasingly cumbersome.

I'd accumulated (and developed) numerous patches, scripts, and customizations over the years. I eventually found that it was no longer practical to integrate my changes into new copies of Slackware by hand. To solve the problem, I created scripts that could be used for this purpose and the scripts grew over time.

By 2004, the integration scripts were starting to remind me of a dehydrated distro (just add water). So, on Christmas Eve, I decided to do away with the base distro and simply use the material I'd assembled to create a distro that I could maintain without the need for periodic integration with an upstream.

I wrote a number of components from scratch; for example, a “build” (and package) framework, a system-boot framework, and a compiler wrapper that served a number of purposes. Then I started work on a desktop environment and other components.

I used existing packages where possible but focused on lightweight programs that I could extend or rework as I saw fit.

For example, the desktop was (and is) based on Openbox, ObConf, LXPanel, ROX-Filer, TightVNC, wmctrl, and other lightweight but useful components. They've been combined to produce a simple but friendly environment that I'm quite happy with. It includes features such as single-instance support, integrated webpages, and transparent VNC access that aren't common in lightweight distros (or, at least, they weren't common in the past).

It became obvious very quickly that upstream FOSS programs aren't designed to work together “out of the box”. :-) In some cases (particularly with libraries) they're inclined to battle each other instead. So I collected patches from Debian, BLFS (Beyond Linux From Scratch), Slackware, and other distros, then started writing my own.

After that, I added components and features that seemed useful or fun.

For example, I gather that most Linux distros don't include FreeDB (a database that's used when audio CDs are played or converted to MP3s). Instead, they rely on online copies (MS-Windows does something similar). But I wanted an OS that would work without online access. So I built FreeDB into the distro (patching VLC and other CD programs as necessary).

I also added clipart collections (about 30,000 images), an e-text library, a small version of Wikipedia (roughly a printed encylopedia's worth of articles), and other reference works of various types.

I'd noticed that many Linux distros seemed to be weak on the games front. Many distros had endless variations of Quake and other first-person shooters, but relatively few had large and well-maintained collections of lightweight games. So I added a collection of this type. There are distros with more games, but my collection is probably above average in some respects.

I discarded the “one purpose, one program” principle early on. I found that I liked having all the alternatives at my fingertips. So, for example, my distro has roughly 8 web browsers, 11 chess engines, multiple FOSS Java SDKs and VMs, etc.

I also decided to support all the libraries and frameworks that I might find useful (including obsolete versions in some cases). So, eventually, I had GNOME (libraries only, I don't use the desktop), Qt3 and Qt4, Gtk1, Gtk2, Gtk3, JDK6 and JDK7 (through IcedTea), PHP4 and PHP5, Allegro, FFmpeg (both old and new APIs), GStreamer, SDL, etc. Essentially all the major frameworks except for KDE (which may be added at a later date).

As part of the evolution of library support, I added a simple way to work around library conflicts. The distro can handle multiple conflicting versions of libraries; in many cases, nothing special is needed to take advantage of this feature beyond a build-time configuration setting.

Over time, I extended the philosophy of inclusion to programs that were orphaned or dead. In this context, my distro might be thought of as a preserve or software zoo; I've collected species that have gone extinct elsewhere. In my world, even old games like Asylum, Missile Command, Mirror Magic, and Space Aryarya live on. :-) But with patches and new music, in some cases; I don't hesitate to modify old programs when it's called for.

Eventually things worked to my satisfaction and I had what I like to think of as the world's largest lightweight distro. Also a perfect toy for UNIX CLI engineers; development frameworks, multimedia and Internet tools, numerous lightweight games, and everything runs from a thumbdrive. I carry my copy inside a keychain fob; wherever I go, everything that I might be called on to use is there with me.

Note: The distro can remaster itself to sizes ranging from 200MB (a 64MB version is planned) to 32GB and up. It runs fine as a LiveDistro (from CDs, thumbdrives, or other media) or as a conventional hard-disk operating system.

Presently there are about 1,800 packages. Each of these has been researched, integrated, patched, and/or extended by me personally (though patches are often borrowed from other distros as I mentioned previously). Additionally, I sometimes write simple wrappers or GUIs for existing programs and those are starting to evolve into a new framework.

Q. Have you looked into all the other distros lately to see where they stand today?

A. Certainly. Many are fine for various purposes. I put my team at Northrop Grumman on Absolute (a Slackware derivative). I sometimes recommend distros like PCLinuxOS or Ubuntu to Windows users. And I periodically boot LiveCDs to see what's happening in general.

Q. Is your distro a worthwhile project given developments elsewhere over the years?

A. Yes.

The project seems novel enough to be interesting. This is a large but lightweight distro for CLI engineers and power users with a few special features. Software includes standard packages, development frameworks, assorted games, original programs, and orphaned programs that aren't well-maintained elsewhere; all patched as necessary, preloaded, and ready to use.

Everything runs from a stick that fits inside a key fob (literally; Fry's sells fobs that are suitable for this purpose). It should run from a smartphone as well, as long as sufficient USB storage is available. I provide a 3" shirt-pocket mini-CD that can be used to boot from USB (through hubs if necessary) whether or not the PC BIOS supports this. Naturally, the mini-CD contains its own version of my distro; I think of it as the world's most powerful boot disk. :-)

Hosting provided by Zymic.

For acknowledgments related to CSS and other code used, click here.

Linked or embedded works (software, books, articles, etc.) are presented under their own licenses.

Other unique content on this page, excluding screenshots, is distributed under the following license: C.C. Attribution NonCommercial ShareAlike 3.0. In some cases, screenshots are distributed under the same license. In other cases, the associated program's license applies.

image Valid XHTML 1.0