*BSD News Article 38324


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!bunyip.cc.uq.oz.au!munnari.oz.au!spool.mu.edu!bloom-beacon.mit.edu!gatech!rutgers!igor.rutgers.edu!athos.rutgers.edu!not-for-mail
From: hedrick@athos.rutgers.edu (Charles Hedrick)
Newsgroups: comp.os.386bsd.questions
Subject: Re: Free Un*x vs. Windows NT
Date: 25 Nov 1994 06:24:37 -0500
Organization: Rutgers University LCSR
Lines: 134
Message-ID: <3b4hhl$1k3@athos.rutgers.edu>
References: <3b074f$mro@pdq.coe.montana.edu>
NNTP-Posting-Host: athos.rutgers.edu

uphlabh@gemini.oscs.montana.edu (Brian Handy) writes:

>I've never met anyone face-to-face who respected Windows NT, but I've
>also not met anyone with actual experience.  Could someone give me a 
>brief comparison between the two so either I have some ammunition or 
>enough sense to give up on the flame war?  I'm familiar with FreeBSD 
>and Linux, anyone with experience in any of the Free Unices and NT 
>would qualify as having a useful opinion.  

I use primarily Linux, but NT to some extent (and Solaris at Rutgers).
NT is a great improvement over the bad old days of DOS and Windows
3.x: it's pretty much a real 32-bit OS, with some level of
understanding of multiple users and protection (though only one user
can log in interactively at a time -- this seems to be for marketing
reasons, not because the system is incapable of supporting something
like telnetd -- in fact there are free and commercial telnetd and
rlogind's available from people other than Microsoft).  Its big
advantage is that there's a lot more software for it that is likely to
be of interest to the average person.  Under Linux you can run a few
commercial packages in SCO versions, and a few more in DOS emulation.
But it's not where you'd choose to run Word, or other current major
applications software.  (I've recently had occasion to learn Word.
I'm pretty impressed, though I'm used to separate typsetters like
Scribe and LaTeX.  I'm also afraid I have to admit that the Windows
versions of things are ahead of the Unix equivalents we get from
people like Island Graphics.) Of course in some technical areas, the
advantage may be in the opposite direction.  NT has a number of
reasonably modern operating systems concepts in its design.  It's not
a micro-kernel, but it does as much with loadable modules and
non-kernel modules as possible.  It does a lot of message passing, and
it's object oriented (for whatever that's worth -- I'm not sure quite
how much the term means, but the NT designers seem to have done some
reasonable things with it).

To someone who is used to Unix, there will be some obvious 
issues:

  The computing model is one user per machine.  It's designed for
client-server computing, but with the application split into client
and server portions, and the client running on the user's machine.
These days Unix tends to mean X.  X provides a way to get a
window-oriented interface without having to split your programs into
two pieces.  So in the Unix world you're more likely to use computing
power on servers.  For those of us who can't afford to keep upgrading
desktop machines every year, an X-based environment makes it easier
for everyone to have access to fast machines.  Clearly Microsoft wants
to encourage us to run as much of our code as possible on the desktop,
and is not interested in supporting anything that looks like
timesharing.  One can argue that there are performance and security
advantages to the NT approach.

  The desktop environment is not as easy for me to tailor.  This may
be because I don't know NT as well, but there doesn't seem to be an
easy way to make all my tools use off-white instead of white.  You can
choose colors, but the standard tools give you a fairly small, fixed
set of colors to choose from.  (I suspect that there are or will be
third-party tools to handle this.  An individual application can, if
it wants, control the color map.  This is an issue of conventions for
standard tools, not the capabilities of the underlying system.)
Similarly, the window manager seems to be an intrinsic part of the
system.  If you don't like the style or the look and feel, there's not
much you can do about it.  (There are third party replacements for
Windows 3.x.  Perhaps there are or will be for NT as well, but you
don't get multiple window managers with the system, as you do with
most X distributions, and the documentation doesn't suggest that they
intend the window manager to be separable.)

  The shell and its window aren't up to the standards of typical Unix
shells. No completion, and it's not very programmable.  When you run a
program that uses DOS compatibility mode, the scroll bar permanently
disappears (i.e. it doesn't come back when the program is finished).
(Note however that there are commercial Unix-like shells available for
NT from at least MKS and Hamilton.  Microsoft supplies a ksh clone in
their "resource kit", but it refuses to run any programs other than
those in the POSIX subsystem, so I'm afraid it's not usable.  The
POSIX subsystem appears to be something done just far enough that they
can check off the box on RFP's saying that they support POSIX.  It
doesn't appear that it's actually intended to be used.)

  Basic TCP support looks OK, though it's not clear whether there's a
good NFS client yet, and telnet isn't as transparent.  (There's a
whole set of issues you have to deal with in telnet to make it feel
just like a hardwired line, particularly over slow links such as SLIP.
Without this work, output is bursty, and ^C and ^S take forever to
act.)

I find it hard to think that most people will be affected by the basic
system design and architecture differences, except as they affect
portability of code (and which is better depends upon where you're
porting from).  DOS/Win 3.1 was so dramatically inferior that system
limitations did get in your way, but I doubt that this will be true
with NT (or not more than Unix).  There are clear differences in
typical development environments, though one can argue which approach
is better.  (Also, Unix development tools seem to have mutated to look
more like NT's -- compilers and other tools are no longer bundled with
Unix.  You now buy compilers separately, and SDK's and CD's of online
documentation are available.)  I think the decision will, as usual,
come down to what you want to do and for which environment you can
find applications software you like.  And for a lot of people, that's
going to favor NT.  This really worries me.  A few years ago, there
seemed to be some hope of getting major PC applications ported to
Unix.  That seems mostly to have stopped, and I understand that even
currently ported things are not necessarily going to be maintained at
the same level as the Windows version.  It seems that vendors have
gotten fed up with Windows, OS/2, and 5 different major Unix vendors,
and have decided to concentrate on the mass market.  This makes
products like WABI (or Wine) key, but so far WABI doesn't seem
very successful.

The free Unices have an additional problem: if people really want the
fancy object-oriented, self-configuring user interfaces like the new
Unix Common Desktop Environment, I think this is going to mean trouble
for Linux and BSD.  The free software community has done really well
with the OS and traditional utilities, but so far has not managed to
do critical applications techology such as Motif and SQL.  The base
technology for applications is getting rapidly more complex.  I have
real qualms about that direction.  I'm more comfortable with the
traditioinal Unix style of simple tools.  But if people want
object-oriented this and that, systems that let you configure them
with GUI tools and store all the information in cryptic binary
databases, etc., I think it's going to be hard for Linux and BSD to
keep up.  Motif is available commercially for free Unix, because the
OSF will sell it to anyone.  But I'm less sure that this is going to
be true of the whole range of applications technology.

This doesn't mean that I think Unix is dead.  I think it will have a
continuing place for servers and timesharing systems, some technical
desktops, and hackers.  I certainly don't see NT as inherently
superior to Unix (that is, across the board -- there are things in it
that are better than the equivalent thing in Unix).  But I think if
Microsoft can come up with something similar that will run on most
people's machines (which seems to be the goal of Chicago), I fear Unix
won't be likely to get out of its current niche.