Foreword

Apart from its applicability for everyday work, GNU/Linux is a great way to learn about operating systems. The Free Software license allows you to take the software apart, see inside, and understand how it works. You can also change the software to fit your needs. It can make you feel like a child happily taking a colorful and complex toy apart into thousands of little gears and switches, just to see how it functions, disregarding the fact that it may be very difficult to ever reassemble that toy again. The difference with GNU/Linux, of course, is that you can work on a copy of the software source code and won’t break the original. And sometimes, while reassembling, you can build something entirely different and colorful without even planning to.

The Past

When, in 1999, bootable business card–sized Linux “Rescue CDs” appeared as giveaways at computer expos, I was extremely curious about how they worked. And since they were free software, I was able to look inside and try to figure out how the software worked. After I successfully made a bootable CD, I decided to make a “personal rescue CD.” That way, it would be possible to use the software that I needed from a CD, rather than carry around an expensive and fragile laptop. Computers are available everywhere anyway, so why not just have the software in your pocket instead? The idea was to put in the CD and start working right away, without having to worry about installation or configuration of any kind.

But hardware is evil. (Everyone knows this, even if he’s not a computer expert.) Vendors seem to create their own standards on demand, which are not standardized at all, and don’t even provide technical specifications. Compatibility in hardware depends more on luck or chance than on approved norms, so I had to decide among choosing a system that was so cheap in its hardware requirements that it would work on virtually every PC (which would probably mean that graphics worked only in VESA mode, at best), installing a manual hardware selector in order to load the necessary drivers, or scripting some kind of automatic configuration. For some reason, the last option seemed the most flexible and optimized solution, so I started writing scripts that would automatically install a Linux distribution on hardware components: identify hardware components, load the matching drivers, and create configuration files that are optimized for the hardware, yet tolerant enough to work around small glitches in the hardware specification. This is still an ongoing process, because hardware manufacturers nowadays seem to be in a semipermanent fight against common standardization of hardware specification. But to my own amazement, my solution still seems to work quite well on a great number of machines, despite the sheer unlimited number of hardware configurations and intricacies.

In 2000, my friends from the LinuxTag association talked me into publishing Knoppix as a publicly available and joinable project. They also provided hosting space. The idea was to get more feedback (and possibly workarounds or code contributions) applicable to different computers and exotic hardware components that I had no access to. As new versions with added features were released, the number of downloads and, naturally, feedback (as well as questions to answer) grew tremendously. (Had I known that so many people would find this very experimental project useful, and that there is now even an O’Reilly book being published about it, I would have probably given it a more elaborate name than “Knoppix.” But now it’s too late, of course.)

The Present

Today, with thousands of Knoppix downloads per day and with about a dozen derivatives, each with a special focus group, language, or supported architecture, it seems that my experiment has gotten a little out of hand. I’m trying my best to keep up with the technical development, and I provide regular updates of the download edition and add new features and gimmicks. And occasionally, there are “Special Editions” like the LinuxTag Conference DVD, which contains a maxi edition of Knoppix with a lot more software than the CD version.

By saying this, I’m probably fitting the cliché that says programmers are naturally lazy in writing documentation, but, lucky for me, it seems that others are now writing manuals and documentation for Knoppix, which means I can stay focused on development. It’s really useful to have a book at hand that not only contains technical information about the structure of a system, but also explains some of its components in detail, and I have learned a lot from this book about Knoppix. (In particular, I’ve learned that some things are not really as complicated as I thought they were.) Had I read this book earlier, I probably would have created Knoppix differently!

There are so many things you can do with Knoppix. The primary design is to use Knoppix as a desktop system platform for tasks, such as office work (using OpenOffice.org, for example) and Internet connectivity; power users and system administrators may use it for rescue operations (grabbing data from a defective or nonbooting filesystem on a different OS), or ad-hoc installations of web, file, or print servers, with or without hard-disk installation. With the terminal server utility (which is just a shell script that creates configuration files for DHCP, NFS, and squid, and starts all of them), you can boot an entire classroom of PCs over a local network, using just a single CD-ROM, which comes in handy if you want to run an Internet cafe, for example. It’s also a good tool for learning about operating systems or for functioning as a base if you want to customize your own bootable GNU/Linux CD.

The Future

Knoppix, the downloadable edition from LinuxTag, will continue being a public experiment with a snapshot of the current, most representative desktop programs, rescue tools, and some popular servers installed. The challenge of keeping hardware support up-to-date is always difficult. Some of the newer hardware components, especially hotpluggable devices, require that binary firmware files be uploaded to the device during activation. Unfortunately, the licenses of the firmware don’t allow free redistribution in every case, so some hardware will never be supported in the download edition, even if drivers are available for private use. One attempt to circumvent this nontechnical problem with proprietary licenses is the “live installer” that was added by Fabian Franz for Knoppix Version 3.4. Maybe a “Knoppix customizing toolkit” would allow you to individually create such personal editions with a collection of software and drives. But currently, it seems to be virtually impossible to automate every single step of the customization process, though Morphix has made some interesting progress in this direction.

The Book

This book takes Knoppix’s boot process apart, explains how to do hardware autoconfiguration, describes some of the excellent GNU/Linux tools for recovery of data or system repair, and assists you in finding out more about operating systems in general. Perhaps some part of this book will encourage you to create your own live CD with your own toolkit collection installed. You can do this by using the included Knoppix CD as a base or by downloading a fresh version from the Internet. This book shows you how.

Happy hacking!

—Klaus Knopper

LinuxTag e.V./KNOPPER.NET

Get Knoppix Hacks, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.