A great and concise history of the run-up to MS-DOS 2.0.
Yet, there was a nagging feeling that a single-tasking CP/M clone was inadequate for the new generation of personal computers. Digital Research released multi-user, multitasking MP/M-86 in September 1981 and announced the single‑user multitasking Concurrent CP/M in early 1982. In response, Microsoft came up with a plan for tiered approach to its operating systems: single-user/single-tasking MS-DOS at the bottom; multi-user/multitasking XENIX at the top; and in the middle, something called XEDOS: a single-user version of XENIX. This “pyramid of upward-compatible operating systems” was announced in a Byte Magazine editorial in January 1982.
↫ Nemanja Trifunovic
I’ve always found this tiered approach fascinating, and the world surely would’ve looked quite different had Microsoft been able to make it work. I doubt Windows NT would ever have existed, and most of the world would probably be running a XENIX-based Windows today (all else being equal, which is of course unlikely and silly). Regardless, MS-DOS 2.0 contained a few UNIX-like utilities to deal with its brand new support for directory trees and other new features, and even had a /dev directory.

Had Microsoft pushed Xenix instead of Windows NT, there would’ve been a much larger base of desktop software suitable for porting to Linux.
Linux may have had the Year of the Linux Desktop® more than 2 decades ago!
Don’t worry. At the first sign of interoperability, Microsoft would have added some special saucy extensions to make the whole thing completely incompatible with anything else.
The unix vendors were already pushing incompatibilities with each other so MS would have been no different.
If MS had pushed a unix-based system back in the day, we’d likely not have Linux…or at the very least, it would have been incredibly niche.
I’ve seen references to XEDOS before and it’s intriguing, especially when you look at some of the groundwork put down in DOS 4.0 (not 4.01) — multiple processes, shared libraries, etc. It would have been a bear to program for.
Yea, that’s true. Basically the only thing among the unices that worked correctly for building portable software was stdio and later on very basic x extensions.
I do write simple stuff for ancient workstations as a hobby and yea, you need to consider pthreads vs cthreads. You get SGI-exclusive X extensions. HP had some multithreaded opengl stuff in their implementation. You need to keep track of platform-specific limits.
I still believe that Microsoft would make it an order of magnitude worse, though.
To be fair, Microsoft were very motivated to drop Xenix by the mid 80s. One of Microsoft’s traditional strategic strengths has been avoiding their core technologies to depend on stuff they can’t acquire of control. So they were not going to have their core OS strategy at the whim, even partially, of something as chaotic and badly managed as 1980s AT&T.
Microsoft was traditionally very good at reading the tea leaves. It recognized that it needed to control its own platform and GTFO the Unix train before that commercial ecosystem became a complete wreck.
There was already a openXenix project back then.
Negotiations ended in deadlock with the open source advocates. linux was pretty bad in 1991 when it launched, the code is available for all to read.
openXenix would have been so cool.
I never heard of that. If there were 2 companies hostile to opensource back then was SCO and Microsoft. So it sounds almost impossible? Do you have any references, that would be an interesting read.
Pretty sure those dates don’t even add up, and no hits on Google for it. Gonna need some proof. Maybe at most it’s like the Win 9x ReactOS days, all discussion and no actual code.