Since the introduction of version 1.0 of Linus Torvalds' Linux kernel in 1994, Linux has grown exponentially in popularity. Today, there's scarcely any major vendor who hasn't expressed an interest in Linux. Vendors like Sun and IBM have contributed funds and hardware to Linux development efforts. SGI and many others have released previously proprietary source code under open licenses, allowing the code to be incorporated into Linux. Companies like Gateway and Dell are shipping servers and desktop computers running Linux. Many new enterprises, like the Google search engine and the special-effects company Digital Domain (which did the special effects for the movie Titanic), were founded on Linux technology.
Given all this interest, should you be considering Linux for your department? In the following comments, I'll try to help you answer that question. The answer will depend on your environment, and for some people it may be a resounding "NO". But for many of you, Linux could be a useful addition.
Many of the things I'll say about Linux apply equally well to other Unix-like operating systems. So let's start out by asking the question "Why Unix?".
I think a little historical perspective is necessary to explain why Unix and its descendant, Linux, have been so successful. The Unix operating system was developed at Bell labs in the 1970s. Because it was implemented in C (a well-defined standard language), it could easily be ported to many different hardware platforms. According to the Jargon File:
"UNIX subsequently underwent mutations and expansions at the hands of many different people, resulting in a uniquely flexible and developer-friendly environment. By 1991, UNIX had become the most widely used multiuser general-purpose operating system in the world."Unix has chiefly been successful for two reasons: it's both pragmatic and visionary. The implementation of Unix in C was a bow to pragmatism. An operating system that's written in a general-purpose high-level language might be expected to suffer a performance penalty compared to OSes written directly in assembler, but the Unix developers felt that the flexibility and ease of programming afforded by C outweighed any small performance losses. In addition to meeting the immediate, practical need for easier programming, the developers were also planning for the future when they chose to program in C. A high-level programming language would allow Unix to accommodate new hardware as it came along. Historically, Unix has always looked for solutions that solve immediate practical problems, while providing viable paths for future growth. This design philosophy has been the key to the success of Unix.
In fact, it's not much of an exaggeration to say that "Unix Always Wins". Despite attempts to improve upon them, Unix and the tools associated with it have tended to become universal standards. The standard programming language is now C, not Fortran or Pascal. The standard network protocol is now tcp/ip, not decnet or netbeui. Kerberos is becoming a standard authentication method. The Apache web server owns the vast majority of the web server market. If we had time, we could document how each of these successes results from the pragmatic and visionary nature of Unix.
Often, Unix wins not by converting but by subverting. Take, for example, the upcoming Apple operating system, Mac OS X, which will be based on a BSD Unix kernel. As a second example, we note that Microsoft retarded the growth of the World Wide Web for several years while it argued that tcp/ip was unneccessary. The company eventually developed support for tcp/ip, and incorporated it into Windows95 and subsequent operating systems. (Note also that the seed of the World Wide Web's phenomenal, culture-changing success was the development of a graphical web browser, Mosaic, for the X window system under Unix. Before Mosaic, I remember "browsing the web" by telnetting into a host at CERN.)
As a descendant of that original Unix, Linux is pragmatic in many ways:
Linux also inherits the visionary aspects of the original Unix:
So why choose Linux instead of one of the other flavors of Unix? Compared to the commercial Unices (AIX, Irix, HP-UX, Solaris, etc.) the differences are price, portability and open source. Linux is free, where most of the others are rather expensive, and Linux runs on a wide variety of platforms, including those supported by the commercial operating systems. Compared to other free Unices (FreeBSD, NetBSD, OpenBSD, etc.) the difference is more subtle. The *BSD operating systems are fine, and in some areas even superior to Linux, but perhaps ultimately it's a question of momentum. Linux has people's attention, there are many people working on it, and that doesn't seem likely to change any time soon.
But also, there are licensing issues with the *BSD family. These differ from the usual licensing problems, which are typically caused by restrictions that are uncomfortably tight. In the case of *BSD, the license may be too loose. It allows anyone to take the code, modify it and use it without restrictions. The danger of this has been pointed out recently, in a case where Microsoft took some code (for Kerberos) released under the BSD license, modified it and then released it as a proprietary product, without documenting their changes. Linux, on the other hand, is released under the GNU General Public License (GPL), which assures that the code and all derivative works will be free. This brings up the third important distinction between Linux and the other varieties of Unix (in addition to price and portability): Linux is Open Source.
Why are vendors so interested in Linux? Because it provides a ready-made, prepackaged, free operating system, a tried-and-true descendant of the original Unix, that is flexible enough to meet almost any needs. The availability of Linux, developed collaboratively by programmers throughout the world, frees hardware vendors from the need to develop and support their own operating systems. And because Linux itself is not owned by anyone, the hardware vendors who use it aren't placing their fate in the hands of a possible future competitor, as they would be if they licensed an operating system from a second vendor.
Because of all this vendor interest, you're likely to encounter Linux sooner or later, whether you choose to or not. Companies like Gateway are producing thin clients like the WebPad, based on Linux, that seem poised to enjoy a wide popularity. Thin clients provide the administrator with a great deal of central control, they are inexpensive (due in part to the free nature of Linux) and they provide standard, interchangeable desktop computers. Similarly, many vendors are offering "thin servers", like the Cobalt Qube, a small, plug-and-play file server with a web-based interface. (Gateway has been shipping Qubes -- relabeled as Gateway Miniservers, through an agreement with Cobalt -- as bonuses with large computer orders.) Finally, a whole area of Linux-based embedded systems has opened up, with vendors offering items like the Linux-based webcam from Axis and the TiVo VCR thingy.
As I mentioned above, the open source, non-proprietary nature of Linux is attractive to vendors. It's also of concern to consumers. Take the UCITA, for example. UCITA (the "Uniform Computer Information Transactions Act") is a pending piece of federal law, governing software contracts. It needs to be ratified in all 50 states to take effect, and it has already been passed in Virginia and Maryland. Among the provisions of UCITA, software vendors are allowed to change their license conditions at any time, without nofiying consumers in any way other than posting the changes on the vendor's web site. UCITA would also allow the vendor to install back doors in software, permitting the the vendor to remotely disable software. Even though vendors themselves would be very reluctant to actually use such back doors, their mere presence presents a significant security risk, since they can be discovered by hackers. One Microsoft executive has been quoted as saying that the back doors weren't a risk because "no one would know they were there". The recent discovery of an undocumented back door in Microsoft's frontpage software makes this doubtful. Linux, released under the GPL, does not suffer from the concerns raised by UCITA.
So how might Linux be useful in your department? Here's a catalog of useful things you can do with a Linux computer:
Linux is a powerful force in most of these categories, and could even be said to dominate new development in all of them except "Desktop". Why is the desktop arena different? Desktop systems are the end-user's interface to the world of computing and (as anyone knows who's tried to switch a department from WordPerfect 5.1 to Microsoft Word) interface changes are very hard, especially for unsophisticated computer users. Training can make a large contribution to the total cost of ownership, and its cost (both in money and time) is sometimes overlooked when planning a change. Although Linux might be very appropriate in server applications that are invisible to your users, Linux desktop computers probably aren't a reasonable option, unless your users are already using some other variety of Unix on their desktop. You can do the same tasks with a Linux desktop or a Microsoft desktop, but the user interface will be different, and for many end users that in itself presents a great obstacle.
There are additional issues for the administrator moving to Linux from other platforms. Consider the recent move many of us made from Novell to WindowsNT. What were the questions we asked before we decided to switch?
In other words, we need to examine the candidate operating system's cost, performance, reliability, security, manageability, completeness and sustainability. Let's take a quick look at these aspects of Linux.
Finally, a few examples of Linux at work.