In the “Yet Another Repost” category, here’s one of my old articles examining the differences between GNU/Linux and High-End UNIX out of insights gathered from a Slashdot discussion. Yeah, I know a lot of people slam Slashdot for the technical ignorance manifested there, but if you’re familiar with the territory, it’s not that treacherous.
Repost follows — There was an interesting Slashdot discussion today regarding what’s missing from GNU/Linux systems that high-end UNIX systems possess. I made a comment myself (which I’ve pasted in its entirety inside, hey, it’s my web site!), and gleaned some interesting information from the discussion.
Before you get to my cut & pasted entry, here’s some of what I gathered from the discussion…
A) The Price. At first you think “hey, ok, this is a big positive”, but wait a minute: if you install GNU/Linux for free, it’s only free if your time is worth nothing. If you pay for professional installation of your operating system, you don’t lose as much time. Curiously, when I worked at Talk2 a year ago, they had HP/UX systems there that were the original factory install and had been for years. They had patched them regularly, of course, but still, they saved a TON of time by never installing a “fresh” HP/UX system. They simply created a system image when the system was new, and restored from that. It appeared to lower their management costs; at least, they decided they didn’t need admins anymore and canned the two of us 🙂 Meanwhile, Solaris is free on Sparc hardware. Guess you pay that cost up-front.
B) There’s a good summary of the difference in security features between GNU/Linux and conventional UNIX here.
C) Curiously, nobody could seem to come up with any high-end UNIX systems that were microkernel-based. They are all monolithic, with modules, similar to Linux (or, in the case of HP/UX, simply monolithic and you recompile the frigging thing if you want any new hardware). The only good examples of microkernel-based systems anybody could conjure up were GNU/Hurd and BeOS. I’m eager to see how well Hurd penetrates the OS market.
D) Man pages. GNU/Linux seems to have almost abandoned them entirely in favor of Info pages, text READMEs, HTML documentation, or the most popular choice: no documentation at all. Apparently you can get around this in the case of info pages with:
info –subnodes –output – | less
Alternatively, use Debian, where every binary requires a man page, or is considered broken. Interesting, that, didn’t know that before.
E) Great quote from Zeinfeld, and spot-on in my opinion: “The man issue points to the real limitation of Unix which isn’t really a lack of features, the problem is the quality of implementation.” Completely true. Feature-for-feature, GNU/Linux really competes well on all fronts. But the quality of the implementation on GNU/Linux systems lacks considerably, particularly in the first iteration. Yet, over time, they evolve to a point where they are superior to the earlier tools. Witness the 10+ year old GNU tools… they are far, far better than the corporate implementations. Bash, cshell, and ksh are all awesome compared to the posix SH that ships with HPUX or Solaris. GNU’s grep, awk, sed, and other command-line utilities are so much better than the vendor-provided ones that vendors are abandoning their own in favor of GNU. It’s definitely getting there.
My original observations from the Slashdot discussion follow. —– A few things that are very nice about some commercial UNIX variants you don’t have on GNU/Linux systems:
1. Integrated systems management, ala “Sam” in HP/UX. Although I’m first in line to say that systems administration should never be handed over to imbeciles, Sam is easy enough that non-professionals can use it, yet it covers all the bases of systems administration from your hosts file through recompiling a kernel. It seems to be what Linuxconf wants to be, but isn’t quite yet. It also does this without royally screwing up particularly hard-fought configuration files. Just use Linuxconf to configure network interfaces after you’ve set up a beautiful five-lne config and see what it does to /etc/sysconfig/network-scripts/ifcfg-ethX. Red Hat’s config tools are getting there, and YaST seems to have nailed it — but it’s not free software.
2. Transparent X configuration w/3D support out of the box. When the installers get it right (about 75% of the time), Linux + X-windows is just fine. When it gets it wrong, the iterations are ugly: XFree86 -configure (blah blah blah) XFree86 -xf86config /root/XF86Config.new (dumps out, some obscure error) vi /etc/XF86Config.new (ad nausem)
I miss how trivial it is to adjust X on my old Sun. Then again, there, instead of hacking a config file, you had to hack some obscure command options. And setting up dual monitors on XFree86 is much better than on Solaris (or was, back when Solaris 8 was the standard, haven’t mucked with Sun equipment much since then).
3. More on the X server: FAST X services. I’ve run XFree86 on really new, top-of-the-line Nvidia, ATI, and Matrox hardware, and not one of them can even touch the performance of X-windows on my old SGI O2. IRIX X is just amazingly faster. I’m not talking so much about 3D performance, but multi-head, full-window drag type stuff. Watching the ghosting as I wiggle this very screen I’m typing in back & forth on my RedHat 8.0 box at work right now on an Nvidia Geforce4 @ 1280×1024 is just painful. I know people are going to say “it’s the configuration, stupid!” but if optimizing for decent X-windows performance isn’t easy enough for a UNIX veteran of 7 years to do it without serious pain, it’s not easy enough for an admin to want to deal with it. NOTE: I optimized all 686 at home on Gentoo with Nvidia’s drivers. It’s considerably better, but still doesn’t compare. Then again, I don’t have an O2 anymore for real head-to-head comparison, so maybe my memory is playing tricks on me. On the other hand, identical hardware in MS Windows gives immensely better 2D performance.)
Then again, that’s just a graphics professional feature, more than a server-type feature. Comparing any other UNIX to SGI’s IRIX for graphics work is just no contest.
4. Memory fault isolation. On Solaris, I’ll actually get a message telling me which DIMM is bad, and which slot it is in. Admittedly, this is a failure not only of the operating system, but also of the hardware design. When you have 30-some-odd DIMMs in some E10K server, if you didn’t have this kind of isolation, trying to find the bad stick of RAM would be beyond time-consuming. Ditto for HP/UX when replacing faulty RAM. Once again, though, IBM seems to be adressing this with their higher-end servers, and I look forward to about a year from now when it becomes more of a common feature on GNU/Linux servers.
5. Something like “OpenBIOS” or Sun’s OpenBoot (I think that’s the name? Been a while, I forgot). This is great to work with, for instance, on Alpha systems. Fairly complete diagnostics before the OS even boots, and it all gets shucked out the serial port. You can compensate for this by installing some kind of lights-out management board in your PC, but if you ask any UNIX admin that has used the non-PC-BIOS stuff on pro UNIX systems, a PC BIOS just doesn’t compare. For instance, on the Alpha I have at home, I can hook up fibre channel and enumerate all the available partitions, flag one as bootable, mount some filesystems and make changes, force boot to HALT temporarily rather than boot to full, stop the OS, do a memory dump, sync the filesystems and reboot… a whole lot.
GNU/Linux on Alpha/Sparc inherits these benefits, and so it is a non-issue. GNU/Linux on X86 still really, really sucks in this dep’t.
That’s about all I can think of for now. The difference between managing UNIX systems from Sun & HP, versus PC-based GNU/Linux systems, is still large but shrinking. As evidenced above, a BIG chunk of what still sucks about Linux is due to hardware & hardware integration, not the O/S itself, really. GNU/Linux is definitely getting there; I love running it on my Alpha at home, because I get many of those benefits mentioned and still use the operating system I love.