Michael Schwarz has worked as a UNIX system programmer for more than fifteen years and as a Linux programmer since its emergence. He started the SASi open source project, and has been a frequent contributor to Linux Journal. He is also one of the authors of Multitool Linux.
In his own words
I am a pretty good programmer. I program well in C, C++, Java, perl, shells, and PHP. I’m not really a guru in any (well, maybe C, but there are people whose skills at algorithms utterly blow me out of the water). My real skill is seeing the potential in other people’s work and jumping on the bandwagon early so I can maximally profit from the cleverness of others. This is a socially valuable skill since it prevents me and others like me from having to become actual thieves. I love technology mainly because I fear it. I *must* know how things work, otherwise I don’t have the upper hand, the things do. I think most of the people who program are like me, Salieris to a handful of Mozarts. And that’s okay. Sherlock Holmes didn’t write the stories, it was his bright but less intelligent friend, Dr. Watson.
My father was an electrical engineer who worked at Control Data for many years. He and I started homebrewing a S-100 bus Z80A based computer in the late 1970’s. I had to start by writing I/O functions for the BIOS. I learned polling and interrupts here. The first time code of mine made the big single-sided single-density 8-inch BR-803 floppy drives step out to track zero and load the head, I was totally hooked to computers. The POWER! All that technology and engineering waiting for ME to tell it what to do! Heady stuff for a 12-year-old. Now that I think about, I suspect anyone who has wanted to be a programmer from an early age probably has psychological issues that require therapy.
How long have you been working with Linux, and how did you get interested in it?
You know, I can’t remember where I first heard of it. I had been a systems programmer on Unix machines for some time, a classic C hacker, so when I heard about a Unix-like OS that ran on a PC, I went searching for it. It was in 1993 some time. I stumbled across the “TAMU” distribution (Texas A&M University), I say stumbled because there was no web and certainly no search engines at the time. I spent a ridiculous amount of time downloading floppy images. I got it up and running, text mode only. I’m not sure what kernel version it used. It certainly crashed a lot back then, but I was also a clueless newbie about kernel compilation. As an aside: We take kernel compilation for granted these days, but who would have thought in 1993 that we would ever have a “kernel of our own?” The next year, I bought a CD-ROM at a hamfest (yes, I’m a radio geek) called “Plug & Play Linux” from Yggdrasil. This worked right and the GUI worked with my hardware. It looked an awful lot like Unixware. I was quite pleased. This was when I got serious. I got PPP working and I started downloading and compiling software in earnest. I upgraded to the next version of the same distro the following year. Since then, I’ve used Debian, SuSE, and RedHat. I’ve fiddled with several others. I also use FreeBSD. I remain ecumenical about distributions, and I don’t join in the Linux/BSD flamewars. They each have their strengths.
How long did it take you to write Multitool Linux and what was it like?
It took longer than it should have. It was herding cats. My co-authors are good friends, and I really enjoyed working on it with them, but coordination of work when you have families and full-time jobs is difficult. We hoped to be done in four of five months and it took us nearly two years, end-to-end. That’s why some of the screenshots in early chapters (like my VNC chapter) are showing KDE1.
In your opinion, where does Linux need the most software development at the moment?
Simple answer: “It depends.” It depends upon what you want Linux to become. I remember the progression: “It’s a toy. No one will ever use it.” “It’s a niche OS. Unix programmers will use it to develop from home. No one will ever run anything on it in production.” “It’s a server OS. No one will ever use it on the desktop.” Well, I use it on the desktop. Many say it is in “desktop friendliness” that “Linux,” meaning Linux and all its associated software, needs the most work. I’m not so sure. Unless the Microsoft stranglehold on the OEM channel is well and truly broken, I’m not sure we need the bulk of developers working on desktop issues. I’d say that keeping up with hardware is a first, best effort. Standards compliance is always nice. Improving the printing infrastructure (which has always been a Unix problem) always helps, although great strides have been made lately. I hate to say it, but keeping up with .NET is important. If we want Linux to thrive, we have to interoperate with the operating system whose name shall remain Windows. Remember that the fact that Samba was a better NT than NT was a big part of Linux’s uptake in IT shops. Otherwise, the natural interests of the programmers who work on Linux seem to do a good job of directing development efforts.
Oh, yes. If you really want Linux to dominate the desktop, it has to run GAMES. The same 3D games as people go nuts over on the other platform. Now, do I think this is where we should go? No. If you want games, buy a PS2 or a Gamecube. Still…
What advice do you have for people that are considering switching to Linux?
Buy our book. Seriously, though, you should switch for a reason. Linux should offer you something that you don’t have with what you have. It might be security, it might be affordable software, web server software, development software, whatever. It might even be Microsoft hatred. That’s fine, but don’t expect perfect satisfaction if that is why you are switching. Linux is different. I think it is better, but the important point is it is different. Things don’t work exactly the same here and if you are easily annoyed or frustrated, you probably don’t want to switch. Also, I’m not sure this is the right question. You don’t have to switch. You can use both. I’ve still got a Windows machine somewhere on my network. The fact that I’m comfortable in a pure GNU/Linux environment doesn’t mean that you can’t make full use of a Linux box and still sit at your Windows PC.
So, first have a reason. Second, get a good after market book on whatever distribution you choose. Third, find a friend who already uses it. Join a user’s group if you have to. People who know more about it than you do can be a big help when you hit a rough spot. Fourth, buy our book. I mean it this time. And I think I even got the order right…
What are your plans for the future? Any exciting new projects?
One of my co-author’s and I are working on a Java based GPL’d personal finance package intended to work very much like Quicken. I have a new book proposal in to Addison-Wesley, we will see if that takes off. Otherwise, I have an exciting job with a company called Carmichael Security that they won’t let me talk about, but Linux is involved.
What is your vision for Linux in the future?
The nice thing about Linux, to me, is that my vision doesn’t matter. Or, to look at another way, my vision is the only one that matters. And your vision is the only one that matters. Linux (really meaning the body of Free Software) will become whatever you work to make it become. It is already doing things I never imagined it doing. So why should I try to push it into any particular shape? The code is mine. The code is also yours. When GNU/Linux exploded into the world it really was the GPL that was the radical invention (no license flameware intended; the BSD license and Artisitic license have similar properties). A Unix like OS was hardly in innovation in the 1990’s, but the Free Software license, combined with Internet-based cooperative development is a stunningly important invention. With developments like .NET and Palladium, the Microsoft world is evolving into a world of perfect control. With the Internet and the GPL, the Linux world is evolving into a world of perfect freedom. Which you choose is up to you.