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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Copyright © 2009 O'Reilly Media, Inc.