Listen Print

An Interview with Bill McCarty, author of Learning Red Hat Linux and Learning GNU/Debian Linux

by Betsy Waliszewski
09/01/1999

Waliszewski:
Can you give us some history of your work with Linux?

McCarty:
I first discovered Linux in a Byte magazine article, back in the days of the 0.99 release. At that time I didn't have a high-speed connection to the Internet, so I spent about 24 hours downloading Slackware Linux by using a 2400 baud modem and copying it to dozens of floppy disks. Then I installed Linux on a surplus 486 SX computer at the university I teach at. I'd used other flavors of Unix on much more powerful computers, so I was amazed to see how well Linux ran on such a puny processor. I was hooked from the very first.

Soon, I was the campus Linux evangelist. I installed Linux on every computer in our computer science labs and the computer of any faculty member who lingered too long at lunch. Over the next several years, I introduced hundreds of students to Linux as I used it in every possible course I taught. Recently--after years of hesitation--even our administration has embraced Linux. We now have only a handful of Windows NT servers on campus.

Waliszewski:
Was it difficult to write for people with no previous experience with Unix, as opposed to those on a more technically advanced level?

McCarty:
Two years ago I moved from computer science, where I taught primarily graduate students, to the School of Business & Management, where I began teaching undergraduates in our MIS program. Most undergraduates have never seen anything other than a point-and-click interface; they don't even recall the days of MS-DOS. So, I simply wrote this book as though I were teaching my students about Unix.

At one time, one had to know a good bit about computers to get a Linux system up and running. But, that's much less true today. Essentially every modern operating system--including MS Windows--is based on Unix. Writing for those unfamiliar with Unix involves helping the reader see that Unix lives inside MS Windows. That's what I've tried to do in this book: To build a bridge between the familiar world of MS Windows and the seemingly unfamiliar world of Unix.

Waliszewski:
What are some of the more interesting things you have been doing with Linux?

McCarty:
One recent application of Linux is as a router and firewall for a home network. Linux can provide every computer in a home access to the Internet via PPP, a cable modem, DSL, ISDN or whatever. And, it can keep the bad guys out. The latter is especially important, as more folks learn daily.

My Linux system is the linchpin of my home network. It provides network access, security, large-volume data storage, and backup services. We only touch on these topics in the book, but the astute reader can probably see how it's possible to do all this and more.

Waliszewski:
Tell us how some of the best features that Linux offers compare to those of Windows NT.

McCarty:
First, Linux offers a bonanza of free software, especially network software. I couldn't begin to afford to purchase Windows NT software comparable to my free Linux software.

Second, Linux offers robust performance superior to Windows NT. From time to time my Windows NT system--yes, I do have one--will blue screen, causing me to spend minutes or hours determining the cause and fixing the problem. Most recently, a loose cable on a ZIP drive prevented my Windows NT system from starting. In contrast, I don't recall the last time one of my Linux systems failed to boot.

Third, Linux systems can be up almost all the time. It seems as though every time you install new Windows NT software you must reboot the system. The problem is that Windows NT centralizes so much information in its registry that everything affects everything else. With Linux, you can simply restart the appropriate process. I've had Linux systems run continuously for over 100 days, which is not at all unusual within the Linux community.

Finally, Linux lets you have it your own way. Its configuration files are all text files that you can readily view and manipulate. Windows NT, in contrast, hides much of its configuration data and lets you access it only via dialog boxes. It's faster and easier to troubleshoot a Linux system because you can see and understand what's going on. And, you can configure a Linux system just about any way you like using whatever tools you prefer.

Granted, you have to spend some time in the man pages learning how the files are structured. But, that saves a great deal of time in the long run in comparison to pointing and clicking your way through the Windows NT underbrush.

Waliszewski:
Originally Linux had no graphical administration tools. This has changed recently. What do you think of the graphical administration tools at present and how do you see this evolving in the future?

McCarty:
Graphical administration tools are a real boon to the new user. I don't know how we ever managed to install and configure Linux without them. As the price for ease of use, such tools hide the simplicity and beauty of Linux. But that's merely my own perspective and it reflects a certain bias that grows out of the way I use Linux.

Let me explain. I see two main types of Linux users. One type uses Linux as a tool. Just as a carpenter may not be interested in how hammers are manufactured, these Linux users may not be interested in the structure of Linux. For these users, graphical administration tools are essential. I hope that Linux developers continue to improve graphical tools of all sorts so that others can use Linux effectively.

But, another type of Linux user is more curious about how Linux works. These people want to squeeze more capability and performance from Linux than most. They appreciate the "small is beautiful" philosophy that guided the design of Unix. Graphical administration tools are unnecessary for these users. I think it would be a bad idea for the developers of Linux distributions to force graphical administration tools on users. I'd hate to see that.

Waliszewski:
Most users are accustomed to thinking of a graphical interface as the easiest way to interact with a computer. However, quite a bit of Linux interaction happens through a command line interface. What are some of the ways a graphical interface can be a hindrance? And what are some of the ways a command line interface can be a powerful and easy way to work with a computer?

McCarty:
Computer use rapidly became more popular when graphical user interfaces were introduced, because such interfaces were a real boon to the beginner, particularly beginners unable to type. A graphical or "point-and-click" interface lets us communicate with the computer by means of gestures, rather like American Indian sign language (not the modern American Sign Language for the deaf, which is much more sophisticated). So long as you want to communicate simple ideas like "friend" or "delete this file," American Indian sign language and the point-and-click interface are quite adequate.

However, you begin to see the limitations of a point-and-click interface when you need to repeatedly perform an operation, varying the operation slightly each time. Your wrist and elbow quickly grow tired with effort.

Oddly, repetition is what computers are good at. The problem with point-and-click is that it forces the user to do the repetition rather than the computer. By building a simple command-line script--perhaps one including a conditional loop--you can perform an operation as many times as you like, varying it in any way. To initiate the sequence of operations, you merely type the name of the script file; you endure no wrist or elbow strain at all, unless you assign an absurdly long name to the script file. In effect, the command line lets you transform Linux to include exactly those commands that you need.

Someday, computer scientists may develop a gesture-based interface that rivals the powerful and sophisticated expressiveness of American Sign Language. But, until then, graphical user interfaces will constrain us as well as help us.

Waliszewski:
What sorts of extra administration knowledge does Linux require, and what does the user gain by learning that?

McCarty:
I hesitate to say that Linux requires extra administration knowledge. If I had someone who'd never seen a computer before, I think I could teach that person to use Linux about as easily as, for example, Windows.

Most of us do know something about Windows. So, we have to learn the Linux way of doing things. But a Linux user unfamiliar with Windows would face significant obstacles. For example, how do you stop Windows? By clicking on Start, of course: What could be more intuitive than that?

But, Linux does provide an opportunity to learn much more about system administration than does Windows. The main reason for this is that Linux stores its configuration information in text files that are easily viewed and manipulated. You can see "inside" Linux in ways that are not possible with Windows. So, you can develop a clearer understanding of what your computer is doing and how it's doing it.

Waliszewski:
What are 5 things a Windows user should know before starting to use Linux?

McCarty:
  1. How to make a backup of your system. Installing Linux is no more risky than installing any other operating system. But, things happen. Having a backup will reduce your stress level should something go wrong.

  2. How to access Internet newsgroups or chat. These provide access to help, if it turns out to be needed.

  3. What Linux software you want to run. Be sure to have it on hand so you can install it right away. Many Linux packages are on the CD-ROM diskette that accompanies the book, but much more is available on the Internet.

  4. Where to install Linux. If you have available space, you can install Linux to the same hard drive that holds Windows. But, you may prefer to add a new hard drive to your system so that you have plenty of space.

  5. What distribution of Linux to use. Red Hat, which is on the CD-ROM that accompanies the book, is the most popular distribution in the U.S. One of the key advantages of Red Hat is its ease of installation and administration, even for the beginner. However, other distributions--for example, Debian--have their advocates. It's somewhat difficult to switch a system from one distribution to another. So, it's best to install a distribution you're comfortable with at the outset.

Waliszewski:
Since we're doing numbers, give us your list of the top 10 reasons for running Linux.

McCarty:
Listed in no particular order, they are:

  1. Recreation. Just as some folks build hot-rods for fun, many run Linux for fun. It's a kick to see what a computer--even a puny computer--can do when it's running a well-tuned operating systems.

  2. Curiosity. It seems that Linux is everywhere, including radio, TV, and print. The only way to learn what the fuss is about is to install it yourself.

  3. Learning. Linux is a great learning opportunity for those who work--or want to work--with computers.

  4. Server. If you want to run a server, such as a Web server, Linux will let you do so.

  5. Low Cost. It's a great operating system for a starving student. A set of good fonts will cost more than Linux.

  6. Community. Linux users are nice people even if many of them are out to change the world.

  7. Aesthetics. Unix and Linux are models of simplicity and elegance--the sort of operating system Frank Lloyd Wright would love.

  8. High performance. Linux uses resources efficiently, so Linux systems have high performance. Moreover, if you have the need, you can combine several Linux computers to achieve enormous computing power.

  9. Networking. Linux systems do TCP/IP quite well. For example, you can use them to route, masquerade a local area network, or establish a firewall.

  10. Status. If you're a technical worker, your colleagues may disrespect you unless you're running Linux.

Waliszewski:
At the conclusion of your book you write, " ...don't merely read about Linux; work with it. Share scripts you've written with others and study scripts written by others. Above all read, communicate, and share what you've learned and what you want to learn." Can you expand on that?

McCarty:
Sure. As I see it, Linux is more a community than a product or technology. To use Linux effectively, you need to be a part of the Linux community.

Communities thrive based on service. Spending time answering newsgroup queries posted by clueless newbies is a good way to initially participate in the Linux community. If you've successfully installed Linux, you can help others who haven't been as successful. Most newbie problems are pretty simple, though they may seem simple to the newbie only in retrospect. If you give useful advice with patience and courtesy, you've made a friend and you've enlarged and enhanced the Linux community. Not that you should necessarily devote the remainder of your file to answering newbie queries. After answering a few, you may discover other ways to serve. The point is not how you serve, it's that you serve.

When I talk of service, I don't rule out profit. Some see service as inconsistent with profit, but I do not. Those who know that I am a member of the Business faculty of a university will not be surprised by this opinion.

But the relationship between service (communities) and profit (markets) is quite an interesting one. Contrary to statements I often see on the Internet, markets are marvelous institutions and free market capitalism--for all its flaws--is the best economic system yet devised. As I see it, communities and markets are not mutually exclusive. True enough, the capitalist who abhors service and community can turn a profit in the short run. But, in the longer run, even the market sees through shallow commercial behavior. Likewise, the capitalist who fails to set a price that recovers the cost of production is soon out of business. The capitalist who succeeds is the one that provides the greatest value: the most benefit at the lowest possible price.

Without question, those who seek to make money and don't care about community are destructive of community. But, those who seek to form community and don't care about profit can be destructive of value. As Linux users, we need both community and value and I believe we should support both service and profit.

Waliszewski:
How long will Linux be a valuable tool, and what do you think would supplant it?

McCarty:
So long as Linux continues to grow and develop, I can't imagine it being supplanted. To be supplanted, a technology or product must stand still. Linux shows no sign of standing still.

However, there is some risk of Linux eventually becoming so large and complicated that the rate of improvement slows. At some point, Linux developers may become so numerous and specialized that they're not able to share information effectively, leading to a loss of design integrity. Linux users will see this as persistently buggy interfaces and performance bottlenecks.

To prevent this, the Linux community will need to continue to evolve new ways of working together and new ways of explaining and rationalizing the structure of Linux. I believe that design tools and documentation will need to become much more important than they seem to be today.

Waliszewski:
Once people absorb the information in your book, what other reading should they turn to next?

McCarty:
Learning more about the BASH shell would be a good first step. I'd suggest the book Learning the bash Shell, by Newham and Rosenblatt. By learning about the shell, readers can discover ways to simplify their use of Linux.

After that, it'd be good to learn more about system administration and networking. Running Linux, by Welsh, Dalheimer, and Kaufman, is a long-time favorite of Linux users. And, Linux Network Administrator's Guide, by Kirch, is still a good detailed introduction to Linux networking, especially when read in conjunction with Hunt's excellent TCP/IP Network Administration. Essential System Administration, by Frisch, is also very good, even though it addresses Unix generally rather than Linux. I own and use all these books.

I think that the best book on Unix ever written is The Unix Programming Environment, by Kernighan and Pike. It's a difficult book, written primary for those who understand the C language. But, this book shows the simplicity and power of Unix like no other book I've read. I'd urge those who are up for a challenge to get a copy and read it until it becomes clear.