Interview with Patrick Volkerding

LQ) To get us started, can you give us a little background information about yourself? (LQ)

volkerdi) Sure. I was born in Virginia while my dad was stationed out there as a Navy dentist. We moved to North Dakota when I was very young. As far back as I can remember I was interested in science, the space race, and other typical interests of a kid who wanted to be some kind of scientist someday. I had an erector set, lots of Lego blocks, and a pretty decent chemistry set full of poisons they'd never allow kids to play with today. When I was 7 or 8 years old my class took a field trip to North Dakota State University to see the computer department, and it was there that I got my first taste of UNIX and realized that I wanted to work with computers. I had an Atari 2600 and wanted to get the fairly rare BASIC cartridge for it (but never did), and when personal computers started to appear, I began hanging out at Radio Shacks and electronics stores to get my computer fix. The Radio Shack at the mall had the TRS-80 Model I on display and a nice collection of books on BASIC. I learned to program typing in program listings from one of David Ahl's computer game books and then figuring out how to modify them. The store was happy to have me come in and enter some code, and save the programs to tape so they'd have demos. But alas, they did not make the sale, and my first computer was an Apple ][+, and with it I learned to program Pascal (UCSD p-System), an integer C called Hyper-C, Forth, and other languages. Forth led to appreciation of RPN, and I still use only HP RPN calculators to this day. After high school I entered college as a computer engineering major (kind of a 5 year EEE / CS degree), but after 2 years of that it was clear to me that hardware design really wasn't my calling and that a computer science degree would be better for me. Also, the school I'd chosen was very much focused on VMS. I ended up transferring to Moorhead State University, which had just been given a bunch of AT&T UNIX equipment and was actually connected to the Internet (the other school only had BITNET access, which was fairly useless). It was while finishing my degree at MSU that I first started working with Linux.

LQ) How did you get involved with Linux and Open Source, and what was the path that lead to you starting Slackware? (LQ)

volkerdi) It was 1992 when I first heard that there was this project going on where someone in Finland was trying to build a UNIX clone. At the time I was running OS/2 on a 16MHz 386/sx. It was a good operating system, but what I really wanted was some kind of UNIX. I'd looked at the ads for Coherent in Byte magazine and had considered that, as well as Minix. I'd even gone down to the local computer store and asked about SCO Xenix, which if I recall correctly, they wanted a couple of thousand bucks for a single-user license! I'll pass, thanks. So I was pretty excited to head to the computer lab and start checking out the USENET groups and FTP sites where the development was taking place. It almost seemed too good to be true at the time, but soon I had H. J. Lu's floppies running on my machine (it works!), and checked out MCC Interim Linux next. Yggdrasil was around back then, too, but I didn't try that one until much later since my machine didn't have a CD-ROM drive. I pretty quickly landed (softly) on one of the early releases of Peter MacDonald'sSLS distribution.

I was taking a class on artificial intelligence, and the coding was all done in LISP. We were provided with a DOS based LISP interpreter to use, but the CLISP interpreter that came with SLS turned out to be far, far better. I told my professor about CLISP, and about Linux, and he asked if I could help him install Linux on one of the lab's computers, an AT&T 486 with an S3 video card. We went down there and did the install, and it went pretty well. I took out my notebook ("time to fix the bugs!") and started fixing all the problems that I'd documented in the time I'd been using SLS, and this led to him asking if it would be possible to fix all those bugs on the floppy disks, and make the installer more automated, so that maybe future classes could do their programming on Linux and not have to license a fairly mediocre version of LISP. I was up for the challenge and started figuring out just how things had been put together. SLS had shipped as a mostly binary only release with hardly any source code for anything, and not a lot of clues as to how things were built. There weren't any build scripts for anything, though that was pretty typical for Linux distributions in 1993 (and was a trap I fell into myself early on until I got tired of having to relearn what I'd done every time something needed to be rebuilt). Over the next month or so I corrected all the bugs that I knew about in SLS, upgraded the kernel, and did a major cleanup of the installer. My friend Brett Person was my original beta tester (and contributed a lot to the installer as well), and by April of 1993 was encouraging me to share what I had back with the Internet. I got a few more beta testers around this time by directly emailing people who were posting on comp.os.linux running into problems with SLS and asking if they'd like to help test what we were working on. I got a lot of good feedback, and more encouragement to put the beta up for FTP. So, in July of 1993 I put the first public release of Slackware on an FTP site running on an AT&T 3b2 UNIX box and announced it to comp.os.linux. The response was pretty overwhelming... especially to the UNIX box that was hosting it. I tried to keep things running for a few days, but it wasn't going to cut it, and Linux wasn't yet up to the task yet either (TCP/IP still suffered from random hangs), so I put out a call for help hosting it. Among the responses was one from Rod Grimes of the FreeBSD project offering space on Walnut Creek CDROM's ftp.cdrom.com server, which I gratefully accepted. This led to a long relationship with the folks at Walnut Creek CDROM.

LQ) Which Slackware release to date has been the most demanding/difficult to put together? What about the most rewarding? (solarfields)

volkerdi) Thinking back, there are definitely a few of them that stand out as being particularly challenging, generally due to a major transition of some kind. The move from a.out to ELF was certainly one of them, as was converting from ELF libc5 to glibc when the first stable glibc release came along. I was really glad to see glibc release as stable, because I'd adopted a policy of not shipping beta versions of critical components like the C libraries or compiler, but most other distributions had gone ahead and based on pre-releases of glibc. I was close to violating that policy when the long promised stable glibc finally came along. Probably the most difficult and also the most rewarding release was Slackware 13.0, the first release to support the x8664 architecture. Eric Hameleers deserves a great deal of credit for his work on porting Slackware to AMD64/x8664 systems, and for making sure that it would be possible to add multilib support to it fairly easily. I'd been inclined to support 64-bit only, using the same library directories as 32-bit Slackware, and viewed /lib64 as an unnecessary complication that was going to require patching a lot of sources to make it work. It did require a lot of patching initially, and still does in places, but /lib64 was the solution that everyone ended up using.