Microsoft's Ancient History w/ Unix
NutscrapeSucks writes "The Register is running
a article which discusses Microsoft's experience running their own version of UNIX, called Xenix, as their standard desktop operating system. Before they got involved with OS/2 and later NT, Microsoft considered UNIX to be the PC operating system of the future. Talks about Bill Gates running vi, difficulties with AT&T, and other interesting tidbits."
There's a lot of stuff everyone knows, and a lot of stuff you probably didn't
know. Worth a read.
"And through Windows NT, you can see it throughout the design. In a weak sense, it is a form of Unix."
Actually, Windows NT was built very much like VMS, the operating system for the VAX built by DEC. David Cutler, one of the main architects for VMS, was hired by Microsoft to build Windows NT. The name Windows NT itself is one of those HAL like play on letters where each letter is the VMS letter plus 1. WNT VMS
Believe in things of which no person has ever learned
When I worked at Microsoft in the early 90s, the role of Xenix was pretty much relegated to a glorified email terminal. A few old-timer people on the teams I worked with used it, and few of those people did anything but read their email remotely on the Xenix email servers. I don't recall anyone actually running Xenix on any box within their own office.
At no time did I get the impression that a developer at Microsoft felt that Xenix/UNIX was the future of the desktop. It was big, it was bloated, it couldn't run on then-current PCs well, nevermind the smaller machines of the mid-80s.
Sure, maybe there were some hold-outs in groups I didn't interact with, and I was only there long past Xenix heyday, but Xenix had no chance at the desktop, really.
[
DOS 2.0 included Unixy features like file descriptors (instead of the old FCB file control blocks), directories, and devices as files (COM1:, LPT0:, etc) that weren't present in DOS 1.0.
Unfortunately, my memory fails as to whether this was still IBM PCDOS or MSDOS. I'm thinking by that time it was MSDOS.
ATT had no reason to "properly manage" UNIX. ATT's forays into areas that the FCC deemed outside of the realm of telecommunications (i.e. computer HW & SW) resulted in a a choice for ATT:
1. retain the telecommunications monopoly but refrain from any money-making ventures outside of the telecom area
2. become a real business, make money on anything you want, and open up competition in telecommunications.
ATT chose choice #1 -- retain the monopoly. This was for them a sure thing. They had always managed to retain the monopoly in the past and it provided a steady source of income. Computers were new, and internally were not percieved as a consumer item.
So at the time Bill was talking about ATT, the UNIX development/administration/lisencing was, by legal necesity, not a money-making area for ATT. UNIX was a tool to develop telecom products, the real business of ATT. Giving the technology away and managing the process "for the public good" was a means to demonstrate that it was not a money-making venture as well as a way to trumpet Bell Labs. It didn't recieve the best support from management, though, as they were focused on the money-making areas of the business.
On the other hand, the statement that ATT didn't know what they had, was that ever true! Once they did figure it out it was too late, they were legally barred from that market untl after deregulation (nothing is forever!) -- too late!
"Glory is fleeting, but obscurity is forever." --Napoleon Bonaparte
Slideshow: http://www.usenix.org/events/usenix-win2000/invite dtalks/lucovsky_html/.
In there, you'll learn 'NT' was related to the first proc it was targeted to, the 860 of intel, codenamed 'N10', plus some juicy stuff about the development of NT3.1 and win2k, and some related notes to Unix and NT.
Never underestimate the relief of true separation of Religion and State.
But none of the 'innovations' you cite came out of UNIX. The closest one would be Kerberos, but even that was conceived from day one as being independent of the O/S. MIT has developed enough O/S to know that there is more than one.
UNIX was not an O/S with lots of innovative features, the main innovation was the idea that most of the O/S could be written in a high level language. Most of the advances in UNIX consisted of removing unnecessary junk from Multics or ITS.
UNIX was not the first O/S with symbolic links, it was however the first where the feature was widely used. There is even a way to create symlinks in VMS, although you have to go through an API to do it.
Looking for an Information Security student project suggestion?
Try http://dotcrimeManifesto.com/
Actually "NT" has a double meaning. Its primary meaning was "N-Ten", because Windows NT was being developed initially only for the Intel i860 chipset, which was code-named "N10". Later, when it was decided NT would run on other platforms, the term "New Technology" was used. At least, this is what I've read.
A/UX or Apple UNIX was Apple computer's entry into the desktop UNIX world. It ran on their 68030 and '040 based systems, but was never ported to the PowerPC when they made the move to that CPU architechture in the early 90's.
A/UX had a nice GUI (it was from Apple after all!) which was very similar to the Macintosh GUI of the time (System 7). It had all the greatness of UNIX, including pre-emptive multitasking and protected memory, and it was even able to run most Macintosh applications without modification. Yes, you could bring up a terminal window and much around with a command line if you so pleased, but like today's Mac OS X, you never needed to. Sadly Apple only marketted it to corporate and higher-education users, so it never caught on and was forgotten.
He speaks before he knows... People like this give software engineers bad names. It is so obvious he hasn't looked at the Unix API... The wait() call is a central part of Unixes, since day one. Signals, semaphores, mutexes, they are used abundantly in Unixes. Whoever posted this should be tarred and feathered..
I program both Windows and Unix, and have written OS Wrappers which allow me to port my applications between OS's. Everything you can do in Windows OS's can be done in Unix. Threads, Processes, Semaphores, Mutexes, Spin-Locks, Signals, memory maps, pipes, timers, etc. To make assertions that Windows uses WaitForObject, etc. is a ridiculous one. I would use semaphores or mutexes to co-ordinate two threads.
Personally I find the Unix OS much more straight forward and easier to design for. Microsoft keeps on making programming more and more esoteric, more difficult to understand. I use COM all over the place, and have started to port COM to Linux. It is nice, but it is not anything new, it is basically dynamic libraries with a known exported interface which exports class factories. I write low-level, often device drivers, or interfaces to video capture devices for DVD burning software. I use DirectShow which is a layer on COM. I find COM beneficial for some things and think Linux needs a similar framework.
Michael A. Uman
Sr Software Engineer
softwaremagic.net
That's just off the top of my head. Things beside these I can usually find in New Riders' book Vi IMproved -- Vim
Good luck. I use VIM almost exclusively for my editing needs; over the last ten years it has been my constant companion through thick and thin. I wouldn't work without it.
Finding God in a Dog