Different Mentalities - Feedback from Chris Carlson
Thu, 14 May 1998 21:05:54 -0700
John,
I must say, this is a powerful report. I found it very complete and well organized. I've been in the computing industry since 1970 and have always preferred Unix over NT. Frequently, I don't have the facts to back up my opinion. Now I do. Thanks.
Something that I've come to realize about Windows NT vs. Unix is the mind set behind it. I think this has a lot to say about the quality of the software and usefulness.
For one thing, Unix was designed by software engineers to be used by software engineers. It is designed to be easy to use, require a minimum of keystrokes to do things (this is because the designers didn't know how to type) and modular. Software was developed in modules that do one thing simply. Unix was designed to allow these software "modules" to be connected together (through pipes) easily to perform more complex functions. Unix was designed long before graphical interfaces and performs most functions on text and data with textual input and output interfaces. Device drivers were developed to appear like files so that a program could manipulate a device just like a file and not have to know the difference.
Also, Unix was designed to provide complete access to everyone by default requiring action by someone to restrict access. This is because it was assumed that everyone was trusted except specific, known individuals (people given accounts that would call in on a phone or members of other companies that used the local equipment). For example, the password file is available to everyone to see as are all the administrative files. Only specific parts of these files are protected through encription.
The window system, X, was developed to be layered. This is why there are many window managers available and development libraries. The lowest level is the X protocol. On top of that is the Xt library which combines X protocol functions into common function calls. Then, OpenLook is on top of the Xt library as is Motif.
The X window server was designed as a separate program that communicated to applications through a single interface (usually a network port but, more recently, shared memory or other devices). This allowed the window server to be on an intelligent terminal, the local computer or a remote computer. It also allowed hardware/software vendors to develop X servers for their product that could be tuned as desired as long as it was able to communicate using the X protocol. Motif, OpenLook or even basic Xt applications will work on any X server that supports the basic X protocol.
Looking at NT, on the other hand, you see a completely different philosophy during development. NT was written to be a complete package within itself. It is supposed to incorporate the file system, windowing system, device management, network management, etc. all rolled into one entity that is inseperable so competitive parts can't come from anyone but Microsoft. Also, NT was developed so that certain applications (specifically Microsoft applications) could have access to parts of the kernel, windowing system or administrative files that would not be divulged to competing developers. NT was developed by paranoid people who wanted everything to be protected from everyone and privileges provided as needed.
Microsoft seriously wants to take over the software industry. They are willing to do just about anything to become the sole entity from which software eminates. Since they own the operating system (Windows NT/95), they can manipulate the entire industry. They designed various interfaces to be incompatible with the industry standard intentionally. This would give Microsoft developers an edge that outsiders wouldn't have.
Windows NT was also designed with the graphical interface in mind at the start. The entire kernel is designed around the graphics. Devices are devices and don't appear like files.
Windows NT was designed for brain-dead users. Things are extremely automatic and difficult to perform manually. All administrative functions are supposed to be performed automatically at startup rather than require an administrator to set up.
Bottom line, the two operating systems came from different camps and different mentalities. This makes them very different in many respects.
I prefer the Unix camp because it is designed to interoperate, be easily configured and expanded and comes from a trust everyone mentality. Even though Windows NT comes from the do-everything-automatically mentality, it rarely succeeds. This makes it considerably more difficult to configure or manage if problems occur.
Once again, good job on the paper.