Unix vs Windows


   Over the past few months I have had the opportunity to take an Operating Systems class at a leading University.  During that time, I have been once again confronted with the whole Unix (*nix, Linux, Mac OSX) versus Windows argument.  It became quite apparent to me during that time that the professor thought that Unix was better than Windows.  It also became apparent to me that he didn’t really understand Windows.  Take, for example, our discussion of filesystems.  When referrring to Unix, he talked about inodes.  When referring to Windows, he talked about FAT32.  When talking about memory management, he wasn’t sure if Windows still used segments.  When discussing UI programming, he showed some code with the most basic Windows application (create the window, run the message pump, handle windows messages).  The problem was, he saw the message pump and didn’t know what the code was doing.  If you don’t understand that, you really don’t have a right to be criticizing Windows.  The flip side is also true.  If you don’t understand Unix, you shouldn’t be criticizing it either.


   I have come to the conclusion that most “Windows is better” or “Unix is better” arguments at the wholistic level come down to familiarity.  I have had discussions with a friend who is a BSD guy.  Most of his criticisms are outdated or just plain wrong.  I suspect the same is true to for my criticisms of Unix.  For a given task, one may be better than the other.  Taken as a whole though, both can obviously get the task done if you are familiar with them.  The difficulty is that each is hard to understand so mastering both is really hard.  Also, neither is standing still.  People still argue that Windows crashes a lot (it did in Windows95 but not in WindowsXP) or that Linux can run on a 486 (it can, as long as you don’t use a modern UI).  These arguments are outdated.  Often the criticism “Windows can’t do X” or “Unix is hard to make do Y” boil down to “I don’t know how to do X on Windows” or the corollary on Unix.  It is an argument of familiarity rather than actual ease of use.


   When I started the class, I hadn’t done much Unix work for a long time.  It was painful trying to compile, debug, etc.  I still think that things like Windbg are more advanced than DDD/GDB but it is less painful now than it was.  Likewise, I’ve come to understand some of the Unix file structure and command line tools like vim and grep which makes getting around less difficult.  As I become familiar, it is harder to think “Unix Sucks.”  I can still point to many places where it does, or where it feels like it does, but I have to be careful that these aren’t stemming from merely my ignorance.  I would challenge any Linux/BSD/Mac OSX/Unix/Solaris afficianados out there to do likewise.

Comments (11)

  1. Matt Evans says:

    Yup.

    People are entirely too religious about this stuff, and academia breeds this sort of thinking. most of the students are at the age where they want to rail against/despise _something_, (and aren’t especially wise, to boot). What’s funny is how little most faculty know about unix as well. You can be qualified to teach the concepts of the UNIX kernel and filesystem design, but be utterly unqualified to figure out why you’re not getting email, or a million other things.

    Prior to joining MS I was a unix admin and developer, so i know both worlds quite well. I’ve come to the conclusion that anyone with a really strong opinion of the form of "foo is better than bar" usually isn’t qualified to discuss foo OR bar 🙂 If it was universally agreed that something was sub optimal, naturally it wouldn’t be done that way.

  2. Greg Miskin says:

    My favorite is the "windows crashes a lot" argument. Many people never realized in the old 3.1 and 95 days that most of their "windows problems" were the result of bad drivers for cheap components. Those who stayed away from the cheap parts had far fewer issues.

    I can’t even remember the last time a Windows OS crashed on me. At least four years, I would guess.

  3. Greg Miskin says:

    Also, people who are religious about their OS (used to only be MAC-heads) are an endless source of entertainment. They cannot resist rising to the bait when you ridicule their beliefs.

  4. does.it.all.matter says:

    Unix, Windows, Mac OSx, Linux, Solaris blah blah blah. They all can fit the bill for the requisite investment with similar vulnerabilites and scaleability issues. The real work is done (where’s you bank account) on Z/OS.