musings![]()
by Rik Farrow
Rik Farrow provides UNIX and Internet security consulting and training.
He is the author of UNIX System Security and System
Administrator's Guide to System V.
Bill Gates, in another of his famous "about-face" speeches, announced that Linux was obviously the wave of the future, and that Microsoft would soon be releasing extensions that would make Linux more compatible with Microsoft products. The source code to these extensions, and the underlying APIs, would require a standard Microsoft nondisclosure agreement to view. Alas, I can no longer get away from using Office. Many of my friends and colleagues already consider Microsoft formats the lingua franca of the Internet and send me Word documents as email and schedules in Excel spreadsheets, and expect me to produce seminars in PowerPoint. I had been returning the documents and asking for something that I can read in vi, but Office for Linux makes it looks like dodging the issue will no longer be possible. April fool. While it is true that Sun, HP, and Silicon Graphics announced that they would support a Linux port to their hardware, I don't expect that Microsoft will offer a port of Office until it is too late to do them any good. Hard Facts Hardware vendors sell hardware. The operating systems help them to sell that hardware, which, you must admit, will just sit there uselessly without it. UNIX hardware vendors have traditionally used their operating systems as a means of differentiating their product offerings, when all we wanted them to do was make the operating systems work as alike as possible. Vendors instead put a lot of time, money, and effort in doing exactly the opposite. Now perhaps we can get what we have been asking for since the 80s. Of course, the wider acceptance of Linux could also be its death knell. As Linux becomes more commercialized, different vendors will begin to include extensions that will make their version less interoperable with other versions. Even if these extensions are open source, they can still lead to problems. Take for example the current scheme in HP/UX 10 and 11 for shadowing the password file. Instead of having a single shadow file that includes the encrypted passwords as well as additional, useful information (e.g., password aging and account expiration date), the HP/UX system uses separate files for each user account. These files are organized by directory, with a different directory for each letter of the alphabet. Most people that I talk to at the HP World conferences do not use shadowing under HP as a result of this. Now imagine that HP decides to "extend" Linux to use this same, overly complex scheme. Yikes! There goes the single version of your account management tool. While I have great hope for the future of Linux, I am concerned about commercialization. Will Linux programmers "sell out"? Will there be Linux wars, like the UNIX wars of the late 80s and early 90s? I certainly hope not. The Desktop And while Microsoft won't be supporting Linux any time soon, I think that many of us would agree that Linux makes more sense on desktops than does NT. But there are some problems here, many in the area of the ability of mere mortals to manage a UNIX system. AT&T made an attempt to put UNIX on desktops. They created a stripped-down version of UNIX without most of the tools you would use in ordinary script writing (this was pre-Perl and Tcl). The result was a total failure. The operating system was too costly for desktops (about as much as NT is now), too hard for the user to manage, and unmanageable without the standard set of UNIX tools. And besides, a stripped-down UNIX system was just not politically acceptable to the very people who already used and managed UNIX systems. Linux and other versions of UNIX today are just as unmanageable. While I do like a lot of the tools that come with Red Hat 5.1, it took a lot of man page reading and good ol' UNIX-style futzing around to get pppd working from my laptop. I would not ask a Windows 9x or NT user to do that. And I would certainly not ask my mom. The very flexibility of UNIX defeats most schemes designed to make it more manageable. Yet, something must be done if UNIX is ever to take over desktops. Apple is working on this right now. MacOS 10, rumored to be out this year, will have the Apple desktop and applications sitting above the NextOS (Mach) kernel. Terminal windows and the UNIX command line may be there (I hope), and there was also supposed to be a Java Virtual Machine. Will Apple succeed where others have failed? I don't know, but I do wish them luck. Devices The other big edge that Microsoft has over Linux is in hardware support. They have this because they have lots of person-power to manage and include thousands of different device drivers. And any hardware vendor is willing to write a decent device driver for Windows (and maybe, just maybe, NT too). Sun Microsystems has been the outstanding exception so far. The list of supported devices (and motherboards) for Windows is perhaps an order of magnitude larger than it is for Linux or any other version of UNIX. While Linux already runs on more different processors than any other operating system, its list of supported devices is much smaller. Have you tried to install something other than a Sound Blaster sound card in a Linux system? If Linux won't make noise when the user plays games, it's all over for the desktop market (even if I consider Jaz drive support more important). This will be the first barrier that must be overcome for the broader acceptance of Linux or any version of UNIX. Easy installation of Linux relies on the right device drivers being present or easy-to-get-and-install. Already, installing most UNIX systems is much easier (barring device-driver problems) than NT, and about four times faster. Of course, there is one other really nasty device problem -- and again Microsoft really lords it over UNIX in this area -- and that is in setting up the windowing system. I am sure most of us have been through this in installing X on a PC. You must choose the correct timings for the X-window server to work correctly, and this is usually a hit-or-miss operation. What's worse, the instructions tell you that poor choice of timing values might damage your hardware. Yikes! This "feature" helps me to understand why so many of my UNIX friends run Windows on their notebooks. It would be nice if Sun's Jini would help here. Jini is an object-oriented interface to devices that makes it possible to just connect a device to a network and have it instantly available and able to communicate without any device-driver installation or configuration. Essentially, software (Java, but it could be other) queries the device for its interface, and the device provides its own device drivers. Jini won't work for bus-installed devices. Bus-installed devices are designed to work as fast as possible (that is, at bus speeds designed to rival memory speeds), and I don't think that Jini will work for disk, CD-ROM, sound cards, and other devices where latency is critical. I may be wrong, but I doubt it. The real problem in writing device drivers has been corraling the device vendors. Hardware vendors pretty much do as they please. We have IBM to thank first, and Intel more recently, for there being any compatibility between PC devices at all. There have been attempts to standardize device interfaces, but none have succeeded at the software level necessary for making writing device drivers easy. Just getting data sheets from some vendors has proven impossible -- unless perhaps it is Microsoft asking. None of these problems is insurmountable, especially considering the legions of programmers who are working on them. So I have a favor to ask. I would like those of you who are working on Linux or the BSD versions to send me article proposals on work designed to solve these problems. I am also interested in articles about how each organization decides what new features or code to include in each release, articles about the performance and reliability of the chosen filesystems, and plans to make Linux or other UNIX versions more manageable for mere mortals. I will propose having a special issue about this in ;login: this year based on the response to this plea. Please don't send me completed articles. Send me a page or two that clearly shows me that you know what you want to write about, know your topic, and can write. Don't worry if you are not an excellent writer -- USENIX has a wonderful copy editor who will help you. Let's see if we can use ;login: to advance the future of operating systems in general, and UNIX in particular. And please do not send me Word or any other Office documents. My bit bucket may be bottomless, but why waste your time?
|
![]() First posted: 15 Apr. 1999 jr Last changed: 15 Apr. 1999 jr |
|