Bias in the Open Source OS World

24 08 2007

I like seeing posts like If you want the features of Solaris, then just use Solaris! cropping up. Not because I think everyone should use Solaris (which I do, but that is beside the point) but because it shows that some people still think about choice of OS rationally. There is a lot of bias among open source operating systems users – most of it completely blind. I won’t pretend to be innocent of this – I was very involved with Brown’s LUG in the past, and was for a time one of the Linux zealots (mostly desktop users) you will occasionally encounter, who treat anyone who favors any other OS with great disdain, and even resentment. Fortunately I mellowed out.

Why should you pick an OS? You should pick the one which best suits your needs. And you should always be open to the possibility that a different OS may serve your needs better than your current one. The main criteria for deciding this tend to be ease of general desktop use, support for common software uses (e.g. Firefox, Thunderbird, office suites), and hardware support.

But in the world of open source UNIX-like operating systems, after configuration, for most desktop users it doesn’t matter. You can use any CLI shell, and you can use any windowing environment. And most open source software will compile on (and is generally available in a package form for) any UNIX-like OS. Most desktop users only go through one main round of software installs, so as great as tools like apt-get are, most people won’t get that much use out of them. For a few the licensing and copyleft ideaology are really key. But for most desktop users, the deciding factor is ease of initial configuration – this is something that more polished Linux distributions* like Debian, Ubuntu, and Red Hat do well, and they certainly deserve credit for it (yes, I said Debian is polished – mostly because of apt-get). Do you really want to be a (possibly unjustified) elitist snob over some nice configuration utilities?

Developers and power users make use of a much wider range of software – compilers, code editors and IDEs, debuggers, more sysadmin-ish command line utilities for resource management and so on and so forth. These are the areas where differences start to emerge. Any of the BSDs, any Linux distribution, Solaris, and with Cygwin even Windows, can run vim/emacs, Eclipse, gcc, gdb and so forth. Want to track down a kernel bug easily, either on a live kernel or on a real, complete crash dump? Solaris is the clear winner: kmdb. Want to track down performance problems easily using a kernel tracing framework that goes through every part of the system and has no performance hit when it’s disabled? DTrace is only available on Solaris, and hopefully soon (eventually?) will be stable on FreeBSD. Need top-of-the-line security? You’re looking at Solaris and OpenBSD. Need fine-grained resource control? Solaris. A copy-on-write shadow-paging filesystem with cheap snapshots and a variation on RAID which can withstand two disk failures in a single disk array? You’re either looking at ZFS on Solaris and FreeBSD, or forking many thousands of dollars over to NetApp (there are other similar filesystems in development, but they’re not very far along). In-kernel support for some variety of native (same-OS) virtualization? FreeBSD, Solaris, and Linux all have their own versions, with their own ups and downs.

Notice any patterns in those lists? Like the fact that FreeBSD has adopted many of the innovations Solaris created and provides as open source? Or the fact that Linux has not? Why is that? Partly it’s licensing – the CDDL and GPL are not compatible, so code written under the two licenses cannot be linked and redistributed. Part of it is the fact that many of the notable Linux kernel developers carry this bias I described earlier. Some of you probably noted the fact that I did not mention SystemTap when I mentioned DTrace earlier. Look at the comment battle on lwn.net or Adam Leventhal’s comments on SystemTap at OSCON and comments responding to his proposal for a DTrace Linux port. You’ll see why.

Andrew Morton has also made some small news with a wonderful quotes which have already been commented on by someone else.

Don’t get me wrong – I love Linux. I use it almost every day at school. I used it exclusively for a number of years, with great pleasure. But now that I’ve seen what else is out there, I sometimes wonder if it’s lack of innovation that’s holding Linux up, or the attitudes of its leaders and much of its community, of elitism and NIH (not-invented-here) syndrome. There are so many smart people involved, I strongly suspect the latter.


* For the BSDs: I haven’t played with PC-BSD, though I’ve heard good things. I’ve had bad experiences installing FreeBSD. Installing OpenBSD was a breeze, but getting *any* software installed on it was a royal pain in the ass. At some point I want to get around to playing with DragonflyBSD and it’s new vkernel take on virtualization.

About these ads

Actions

Information

7 responses

24 08 2007
aleks

you mean andrew morton, not alan cox, right?

24 08 2007
csgordon

Touchè. Fixed.

27 08 2007
Peter

I’ll mention one more important property of the system: free software. All three systems you mentioned have this now, but Solaris didn’t recently, and AIX, HP-UX, Irix, and most of the other Unixes don’t have this at all. Why is this important? A couple of reasons. Freedom aside, when anything goes wrong, I can always fix it myself. This hasn’t come up often, but in a few cases, it has saved my butt. All the things you’ve mentioned are trivial niceties in comparison. What good is a kernel debugger if I don’t have kernel source?

All the things you’ve mentioned are also more relevant in a server environment. In a desktop environment, I mostly care about power consumption, things like suspend and hibernate working, hardware support (I get this to some extent by configuring the systems I buy to my OS of choice, but USB devices hot-swap, and there often isn’t much choice in wireless). For a desktop OS, the Linux kernel tends to come out way ahead. In addition, I want a responsive desktop (latency, not throughput), and low-latency audio for games.

The more polished GNU/Linux distributions are much better for the desktop too. This isn’t only initial configuration. This is maintenance. How much work do you need to do when you upgrade some piece of hardware? How easy is it to keep the OS up-to-date at the newest version? Here, Ubuntu cleans up. Debian packages just work better than anything from the other distributions, or the BSD/Unix camps.

For a real-time OS, I want a completely different set of features — low system requirements, real-time operation (low latency rather than high throughput), support for esoteric hardware architectures, etc. Here, the Linux kernel also does better.

Of all the major Unixes, Linux is the best embedded OS, and the best desktop OS. Once you’ve got an OS on those boxes, unless it completely sucks as a server (eg Windows), it doesn’t make sense to switch to something else on the server just for slightly better kernel debugging.

What I’m curious about are the multicore chips coming out. A monolithic kernel, like Linux, will have a much harder time scaling to multiple processors. At that point, a microkernel is no longer an idiotic design propagated by ivory tower academics, but it has very real advantages, in that it can be distributed between processors. I can dedicate one core to serving networking code alone, and another to other tasks. Solaris already scales well to many processors. Linux, fairly fundamentally, saturates at maybe 4.

Footnote: I don’t know where you get off calling Solaris/FreeBSD security better than Linux. Being smaller Unixes, they do get targeted less, but the security frameworks in Linux are world-class.

27 08 2007
Mike

you got digged again

27 08 2007
Mike

…or reddited

28 08 2007
Massimiliano

You’re too ignorant to understand a philosophical requirement.

You don’t understand there are philosophies out there which are not your own. You take a silly utilitarian outlook which you don’t even understand.

Do you know you’re utilitarian? Are you even aware why people might want their OS GPL’d versus BSD’d? Do you understand the affordances of each license?

You don’t.

Stop posting.

28 08 2007
csgordon

Actually, I do understand the differences in licensing between the GPL, BSD, and CDDL licenses. I’m slightly fuzzy on the particulars of the MIT and Apache licenses (which don’t have any major OSes using them), but I get the big ones. Note from above:

For a few the licensing and copyleft ideaology are really key. But for most desktop users…

If you missed the reference for some reason, the GPL’s philosophy is sometimes referred to as copyleft, as opposed to copyright. I had decided to address non-license issues because for the majority of users, they’re not really a focal point. When I started using Linux, it was because it was more stable and offered me more flexibility than Windows. I picked it over a BSD because of the hardware support, and Solaris was not yet open source. I thought the GPL was novel, even cool, but the cost, stability, and hardware support were the deciding factors for me. I only personally know two people who chose Linux because of the GPL (out of a great many Linux and BSD users).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




Follow

Get every new post delivered to your Inbox.

%d bloggers like this: