MusingsUSENIX

 

Musings

farrow_
rik

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.

<rik@spirit.com>


I just looked at my calendar. It seemed that I traveled every week since the beginning of April and continued to do so until the third week in June. But I was wrong. I did get to stay home three weeks out of that time. I am really glad that I don't have to travel as much as some people I have met.

During my travels, I had a chance to visit Raleigh, North Carolina. I am sure it is a wonderful place if you live there, but it seemed a bit, well, slow, after spending several days in New York City. The City of Raleigh was the cohost, along with Red Hat, for Linux Expo. Red Hat is the most successful distributor of Linux so far. Other sponsors included S.u.S.E, a German distributor of Linux; and IBM, a surprising contributor to Open Source, as well as being local to the area.

But I didn't come to see Raleigh, or even to meet Bob Young, CEO of Red Hat. I came to see what it was like to be at a Linux conference. Talk about time warps! The level of enthusiasm was reminiscent of the "early" days of UNIX in the '80s. It seemed that the average attendee had less than two years' exposure to Linux and was very excited about anything to do with Linux.

Extreme Linux

A good example of the enthusiasm, and one that gives me shivers of déjà vu, is "extreme Linux." I remember seeing the cover of one of the first UNIXWorld magazines. The cover featured a picture of an enormous control console for an early multiprocessor design using a version of UNIX as the operating system. It was entitled "UNIX on Big Iron," although "big iron" is really an affectionate nickname for mainframes (which as of MVS 10 include support for AIX-flavored UNIX).

Extreme Linux covers the use of Linux as the operating system for clusters of computers. All of Saturday was devoted to talks about extreme Linux, which I am not criticizing; rather, I'm commenting on how things have come full circle. Certainly today's technologies, chiefly cheap hardware in the form of PCs, are different from what was available in 1985, but people still get excited about having an enormous amount of processing power coordinated using their favorite operating system. There were more "papers" about clustering (extreme Linux) than any other topic.

I sat in on some of these talks, and wondered (to myself) what it was about Linux that particularly supported the use of clustering. Actually, the only thing I could find by listening or reading the papers was that Linux was chosen on the basis of a groundswell of interest. In one case (the Hebrew University's MOSIX project), Linux was the third OS platform supported, not the first. So, in reality, *BSD and other versions of UNIX were not left out; they just were not part of the conference's focus.

Graphics did come in a close second. Another of the driving forces behind Linux today is the growing popularity of Linux for gaming, and having hot device drivers is critical to the success of Linux as a platform for Quake. For example, Quake can bypass the usual operating-system controls and access memory for graphics cards directly, providing more performance. And, incidentally, a couple of root exploits as well.

I am not criticizing Linux or the Linux community, but rather looking at it as newer, and perhaps young. Enthusiasm is wonderful, so long as we don't go making the same mistakes we did in the past.

Mistakes?

Linux has so far managed to remain a single, mostly coherent distribution. That is, you can expect to be able to compile software written for Linux on any up-to-date distribution, and run any binary compiled for Linux on x86 processors. But there are starting to be some exceptions.

Ted Ts'o, recently at MIT and now at VA Research, gave a nice talk about device drivers and how important it is to standardize. One Linux distribution, Slackware, has shipped old kernel include files, making driver builds fail. Another driver issue that Ted mentioned is that the kernel currently ships with all drivers compiled into the kernel. There is no way to load just the drivers needed, or additional, oddball drivers. This leads to kernel bloat (which is not a problem just for Linux) and the inclusion of possibly buggy drivers into every kernel.

And then there are the desktop wars. As in the UNIX days of yore, there are several popular desktops (window managers) as well as GNOME, a library that supports graphical applications including window managers. GNOME does include other cool features, such as the ability to control resources of active applications and interprocess communication using CORBA (as a stand-in for OLE 2, or Microsoft COM, as it is better known).

Currently, only Enlightenment (or sometimes just E) and one other window manager sit on top of GNOME. On the other hand, there is also KDE, which is something like CDE (the Common Desktop Environment, embraced by many commercial UNIX vendors today) and window managers supported by KDE. If you have loaded Red Hat 6.0, you will get GNOME and E by default. This can cause problems if you then decide to run a KDE-based application, in that the two window subsystems do not communicate resource and other needs well to each other.

At the moment, there are people who are passionate about the use of one or another of these subsystems. But Linux has not become Balkanized as a result — so far. And breaking Linux into fractious groups is certainly a goal for some.

The Opposition

Microsoft has not been resting quietly. Its stock price has fallen almost 20 percent in value, and this is not something that people who have vested interest in the stock will tolerate. Among the offensive tactics, Microsoft funded a "comparative review" of NT versus Linux as Web and SMB servers, with NT outperforming Linux by more than a factor of two. If you don't believe this, well, you shouldn't. The test was performed by Mindcraft, a group that has done this several times so far and gets better assistance tuning NT servers from Microsoft than does the average billion-dollar corporate customer. On the other hand, Mindcraft attempted to use Red Hat's free installation-support line to fine-tune Linux. Jeremy Allison has a nice article that points out some of the errors made by Mindcraft personnel and also includes a few useful hints for tuning NT servers: <http://www.linuxworld.com/linuxworld/lw-1999-04/lw-04-mindcraft.html>.

The infamous Halloween papers recommend that Microsoft "decommoditize" protocols in order to make the problems of competing (as well as cheaper and better performing) OSes go away. What this amounts to is to take standards, like Kerberos V or HTML, and extend them in incompatible ways by bending the standards. Then, keep the changes secret, as well as continue to modify them often enough to prevent imitation. IBM tried these techniques years ago, not long before its stock price tanked, and it looked like IBM might even go out of business. Will history repeat itself? That is, will Microsoft embrace open standards (as IBM apparently has) and recover? I for one am not holding my breath.

The Microsoft antitrust case has resumed as I write this, and I expect history to be repeated in a different sense. That is, the Justice Department will generally leave Microsoft to continue to experiment with its monopoly, which would be bad for the industry as a whole. Why? It will simply take longer to move to open standards, get away from bloatware, and be able to embrace advances in computing from the tens of thousands of programmers involved in open source (as opposed to the hundreds involved in writing NT or Office). Those companies hoping that Microsoft will open up its directory services (the part of Windows 2000 that replaces domain controllers) had better increase their pressure, and soon, if they are to have any hope at all of succeeding.

More Déjà Vu

The Linux Expo exhibit floor was not only large, but also well attended. And when you walked in the door, there were IBM, SGI, DEC/Compaq, and a little Sun booth tucked away toward the back. To me, it was reminiscent of UNIX Expo in New York City. Not as large and without the circus-like atmosphere as vendors put on sideshows (jugglers, actors, singers, and scantily clad young men and women) to attract attention. But still, to see the major UNIX OS vendors at a Linux Expo show was, to me, surprising.

There was still the small-conference atmosphere to some extent. One vendor's booth, Watchguard, was serving good beer and offering free Internet hookups. And, of course, there were the usual free handouts. A nice map would have helped.

I did pick up a copy of Red Hat 6.0 while I was there. I wanted to share it with a local friend who had lent me an earlier version when I discovered that BSD was not going to load on my new notebook.

I have been trying out various OSes on PC hardware, looking for strengths and weaknesses. I got a copy of Solaris 7 for free and loaded it with little trouble. The load was not trouble-free — Solaris had to be in the first disk partition or it wouldn't boot. Sulky software.

I was pleased that it recognized most of my hardware, including my monitor's vendor and type. No futzing around with timings and worrying if the settings would destroy my monitor — Solaris just worked. But then, there is no C compiler or Perl. There is a site where you can get free downloads of both; the format used proved unusable, though.

Solaris 7 handles disk partitioning, so that you have lots of partitions. Then the Sun install program wants more disk space in those partitions and will fail with useless error messages when it runs out of space. I tried being creative by using symbolic links to add the illusion of more space whenever a console error message would give me a hint, but I gave up after two hours. A free compiler isn't free when you can't install it.

I needed NT for some testing, so I installed it on the same hardware. It recognized the display adapter, but not the monitor, and failed to recognize the network adapter as well. Installing the network adapter is not hard but just a nuisance. Also, you must manually install the latest Service Pack, even though it really turns NT 4 into NT 4.4 or 4.5. It took more than twice as long to get an installation going, and with only 640x480 resolution.

With the Red Hat 6 package in hand, I tried installing it. Installation was comparable to *BSD versions I have tried, although I made the mistake of trying to use the Disk Druid (best to stick with fdisk). But 15 minutes later, Red Hat was up and running, without my having cracked any documentation. Again, xf86configure did not recognize my monitor as Solaris did, and it took some tweaking to get X working properly. Then I got to try out E and GNOME, which was different enough from the other window managers that I liked it (especially being able to scoot the bottom panel out of the way).

My friend Jay was not so lucky. He let the install script scan for bad blocks, and when the scanning program crapped out, the installation script hung. He also had other disk-related problems because he had a new, large (8.6 GB) hard drive, and the Red Hat install program had some problems with it as well. Finally, booting failed because the SMP version of the Linux kernel boots by default but had trouble finding the second processor on his Tyan motherboard (there wasn't one). Jay did have to read the Red Hat docs and discovered that he could choose to boot the single-processor version.

I have often toyed with the idea of benchmarking NT versus various *nices on the same PC hardware, but am glad that I haven't. Successful benchmarking requires tweaking the operating system perfectly in order to get the best performance. And, generally, benchmark testers may be more or less successful at doing this, skewing the results (the way Mindcraft did).

Jeremy Allison, in the article mentioned earlier, states that the only relevant benchmark is one where you use your own applications in your own environment. Even this benchmark will be prone to some problems, unless you have expert assistance in tuning both the operating system and the applications' behavior.

Still, if you have done this in your organization, I think we would all be interested in the results, as well as in learning what you did to tune the OS and apps. Let me know if you want to write about benchmarks. And don't forget the FREENIX special edition of ;login: coming early this fall.

 

?Need help? Use our Contacts page.
Last changed: 18 Nov. 1999 mc
Issue index
;login: index
USENIX home