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.