History of Xenix – Microsoft's Forgotten Unix-Based Operating System
fossbytes.com
fossbytes.com
This is the understatement of the decade. Of course it was more powerful. I used Xenix in 1987 on an IBM PC, probably a 80286. It was a Xenix/MS-DOS dual booting system. Multiuser and multitasking with Xenix or single user and monotask with MS-DOS.
I used various flavors of Unix on Z8000 or 68k architectures in those years. All of them were obviously better than MS-DOS.
I know this may be strange but there aren't many people left that can debug these kinds of systems. Sorry for disturbing this thread!
It's like trying to write a DVD with no burner. Where do you have a computer that still has a DVD drive burner? Same problem I'm having.
What is better critically depends on the "coordinate system". There was (and still is) something infinitely precious about MS-DOS. Simplicity, ease of accessing hardware, and all that alongside the vast multitude of extremely powerful and useful software that was available for it. In other words, DOS had something that few, if any, other OS could offer at the time.
http://www.softpanorama.org/People/Torvalds/Finland_period/x...
pcjs.org has a Xenix image in its library, but no preconfigured example. Anyone know enough about pcjs to set one up?
It took a lot of work to build Microsoft and the PC industry with it. Hopefully in later years he will be redeemed.
Given the first instinct is always to be closed and profit the openness of the PC ecosystem must have taken gargantuan effort to build. Gates clearly believed in more accessibility, affordability and wider outreach for computing than closed systems in some deeper way, whatever his motives and the outcome on hindsight completely blew open the floodgates.
Thanks to that we have open systems on PCs instead of closed blackboxes and a massively rich ecosystem. This in itself is an impressive achievement.
Also, back in the day, at least in Portugal, many of us dreamed to work at Microsoft and usually applied to work there at the end of the CS degree.
I can also switch between ROMs to boot from - I have BBC Basic, Word*, Publisher, Forth.
It was a great idea when you only have 32K RAM. The ROMs are page mapped in.
OS choices and OS upgrades happened regularly. You could run all sorts of things on a PDP/11, VAX, DG Nova, etc.
As for the mainframes and minis, I never worked with them, besides the AS/400.
But from my collection of old papers and manuals, many of them had "bytecodes" with microcoded execution (more higher level than plain CISC Assembly) burned on their processors.
And frankly, its design is not that far from the other micros (ISA cards can extend the BIOS by responding to specific memory address ranges, much like a ROM cart on a C64). Its just so damn well wallpapered over these days.
See for example this paper, where they took a VAX and rewrote its microcode so that it executed instructions for the Warren Abstract Machine, the output format of their Prolog compiler.
It's like you would reprogram your Core i7 to directly consume JVM bytecode.
I was a big Prolog fan during my degree.
For instance, perhaps you feel having the appropriate moral tone to a vision is the requirement to deserve credit for achievement?
The only thing he really did was not get in the way of making billions.
If not for MS, other companies would have filled its place (DR-DOS?)
If not for IBM creating and then opening up the PC market?
edit: Looking back on my original comment, I can see where I should've phrased things better. When I said I couldn't see giving Gates any credit for the open PC ecosystem, I should've said "the creation of" the open PC ecosystem. We may still disagree, but at least now we'll be on the same page about where the points of disagreement are. =)
The openness of the PC ecosystem was built almost entirely on IBM's failure to legally secure it (which was neither intentional nor something for which Gates was responsible), and the willingness of third-party hardware vendors to take risks in testing the degree to which IBM had failed to legally secure it (which, again, was not something Gates was responsible for.)
Before MS-DOS there was CP/M and UNIX. After selling IBM PC-DOS, Gates had MS-DOS 2.0 made for PC clones after Compaq and a few others wrote a clone BIOS. They had to reverse engineer the BIOS in one room, and build their own BIOS in another. It was the cheaper PC clones that put an end to TRS-80, CP/M, Apple //, etc.
Windows was a cheap knock off of the Macintosh GUI, I used to have a blog that had an article that Bill Gates stole from Steve Jobs to make Windows because Steve Jobs would not give him permission to license the Mac OS. Sure Apple and Microsoft settled it out of court by Microsoft investing money in Apple to save it. But a lot of Apple fans don't like how Gates had cheated Jobs originally.
Even if Microsoft was not the first company to invent these things, they filed for patents anyway.
But I will say something positive about Gates, his monopoly created a Windows standard by forcing OEMs to pay the Windows tax per PC even if they didn't use Windows. So that killed the Amiga, Atari ST and other third parties as PC clones became so cheap in the early 1990s that the market was flooded by them.
Jack Tramiel founded Commodore and got into war with other companies in the same way Steve Jobs went to war with IBM. Without Jack Tramiel and the home computer wars that lead to $200 Commodore 64 ect systems, a lot of families would not be able to afford a computer to learn on. Commodore got a primitive version of Microsoft BASIC so they got a cheap license per computer.
The open system PC was IBM using off the shelf parts from Intel and other companies. Using the ISA bus for example for expansion cards.
What IP holders? Those of other FORTRAN implementations?
So if I'm writing a C compiler I'm "taking money away" from the developers of existing compilers? Like, I'm doing something despicable, as apparently, that money belongs to them?
Back then if you wanted to use C or UNIX you had to license it from Bell Labs. If you wanted BASIC you had to license it from Dartmouth, if you wanted COBOL you had to license it from The navy and Grace Hopper, etc.
Over times things have changed and free and open source versions of those languages got written. But try to make a free and open source version of the Intel Mac BIOS, try to make a clone of MacOSX, try to make a version of XCode that runs in Linux and submits apps to the Apple App Store, etc. You need an Intel Mac for that and Apple's MacOSX and XCode. So not everything is free and open source or has an alternative to it.
For example Microsoft made Windows that basically stole the Mac GUI IP without permission. Windows sold so well that Apple started to have financial problems. In that case it was taking money away from Apple.
Also, while you had to get a UNIX license from AT&T, they didn't make any money from it (well, they weren't allowed to) and at the time, it came with full sources. Yes, the term FOSS didn't exist yet but people shared source code anyway, at least in the academic/research environments where UNIX was popular.
You're right in that things were much worse in the commercial office and home computer market.
HTTPS://feld.me/pub
1. Create a better UNIX than UNIX. UNIX microcomputer market forms as a side-effect due to marketing.
2. Move UNIX features into CP/M in MS-DOS.
3. Clone OpenVMS architecture with enhancements and emulators for older OS's.
4. Develop on OS/2 for better reliability, pace, and inspiration. I'm sure OS/2 stuff ended up in NT past the emulator. I'd be interested in a link that went into that in detail.
5. Run mail and gateways on Xenix as UNIX was great at that sort of thing.
6. Run whole business on a single AS/400 that just gets shit done mainframe-style.
7. Replace all of the above with one product that has key attributes of all of them in usable package on cheaper hardware.
They don't look as dumb now as I thought when I was younger comparing MS-DOS to BSD's or Linux. ;)
re Linux
The author asserts multiple times that Linux comes from Xenix somehow but didn't seem to prove it. Says the architecture, standard, and microcomputer UNIX was first done by Xenix. Then Linux did one. Past that, nothing. Is there some resource with specific evidence that Linus got Linux design aspects from Xenix as opposed to another UNIX? And my original sources said he started with Minix changing stuff in his design that didn't suit his hardware or needs. So that needs to be factored in.
Windows 3.x was way more successful than Microsoft anticipated. They wanted to pivot the Win32 layer in NT to be the primary API and make the user interface more Windows-like. IBM didn't want that so they parted ways.
David Cutler (designer of VMS) was the architect for NT. Many people don't know it has a single root filesystem that takes the unix philosophy even further... objects like mutexes exist in the root, not just files. Everything has full ACL support. The IO completion ports and async support were way ahead of their time. It originally even ran things like the video driver in user space.
Windows 3.x being so successful almost killed everything that was great about NT. It also caused Microsoft to completely miss the mobile revolution.
Success hides problems indeed.
http://windowsitpro.com/windows-client/windows-nt-and-vms-re...
Be interesting at some point to collect all the attributes of NT to see what came from VMS, OS/2, UNIX, DOS, Win 3.x, etc. Then one might also see how it could be done even better esp without baggage. :)
For those of us that enjoy delving into OS details, Windows is full of interesting goodies.
Even the way .NET is integrated with the OS, is somehow similar to how bytecode and JITs used to work in mainframes.
Hybrid tablets have killed the netbooks and the majority of people are going for 2GB/4GB + 32/64 eMMC hybrids with Windows 10, and not to those Android ones that kind of look like a desktop. For most pockets across the world, an iPad Pro isn't an option.
The whole thing with .NET, Longhorn, Windows 7 and 10, was also a causality of the typical Windows Dev vs DevTools "wars" and most of us that follow MSFT blogs and news, know to which side Sinofsky was sponsoring.
Somehow UWP seems to be what .NET and eventually Longhorn should have been all along, lets see how it goes.
Got bitten by that once when i thought i could just copy the user dir between Windows installs and discovered that the registry had its own ACL on top of the FS ACL...
All that trouble to move files on a LiveCD that has full access to the disk anyway. Wth lol...
Xenix was successful because it delivered a lot of bang for the buck. It ran on relatively inexpensive hardware and delivered a lot of UNIX flavor despite the limitations.
Really early versions of Xenix would run on an actual 8086, with no protected memory whatsoever. I don't think any other UNIX ever managed that.
Mind you, on a 4.77 Mhz PC at home, I ran Windows 1.0 and used it to multitask two sessions. In the foreground GUI I used Notepad to write C code, while the DOS session in the background ran the compiler. Back then compiling took a long time. Few people even then realized that Windows 1.0 did real pre-emptive multitasking on the original IBM-PC between the front-end GUI and a backend DOS session.
If you weren't using an "real-mode" drivers then it never bothered to talk to DOS, it just did everything itself... for example the "32-bit disk mode" stuff was a 32-bit disk and filesystem driver that completely replaced DOS disk routines.
Microsoft being Microsoft, if you had DOS TSRs, DOS drivers, or other random DOS crap they would hook those things and drop down to real mode to call them the way they expected to be called... going so far as synchronizing the DOS in-memory data structures before and after the calls to make sure the lie was as complete as possible.
Hard to believe but we had three different UNIX offerings: Microsoft Xenix, AT & T 3B1/PC 7300 and what sold by far the best: Altos systems. We sold the hell out of 4, 6 and 8 user Altos systems because everything was connected to cheap dumb terminals. The Xenix systems could not come close at the time for speed.
But then Novell commoditized cheap networking and file sharing on the PC and that was that. The PC had far more software selection and despite the price difference offered Lotus 123 which took the industry by storm.
Minix?
I used SCO Xenix on 386. It had a very good Lotus 123 clone called SCO Professional- you could have 5 or 6 users all sharing a PC. SCO was sued over it, had to stop selling it.
And as for 286, there were (and probably even still are in production systems) multi-user multi-tasking CP/M derivates. Two large niches for such systems were industrial automation (IIRC some versions of Siemens Simatic ran that) and point of sale (IBM).
https://github.com/jbruchon/elks
But it's still pretty unstable. If you have a spare 8086 and want a Unixoid, go look up Minix 2 (not 3). It's not very comfortable on a 8086 with 640kB, but it works. Proper filesystem, processes, Bourne shell, the lot. It even has a self-hosted C compiler. You can get real work done on it (slowly).
https://www.minix-vmd.org/pub/minix/2.0.2/
Later versions really want a 286, but that gives you proper memory protection too.
Of course, if you want any processes bigger than 64kB code / 64kB data, you need to upgrade to Minix 386.
In page 286 of https://archive.org/details/byte-magazine-1983-11-rescan one of the main advantages of MS-DOS 2.0 is supposed to be its Xenix compatibility. That is why MS-DOS 1 had CP/M style system calls while MS-DOS 2 added Unix style ones.
At that time Microsoft was thinking that eventually MS-DOS and Xenix would be merged into a single operating system (I read it in yet another Byte article but can't look for it right now) but things ended up going in a different direction.
Here's the evaluation report with all of its security features and such for anyone interested in learning about it. Or comparing it to security of modern UNIX's:
http://webapp1.dlib.indiana.edu/virtual_disk_library/index.c...
Particularly interesting to compare it to SELinux, FreeBSD w/ SEBSD, or OpenBSD.
Then the legal uncertainty around Unix copyrights started happening and the need for a cross-platform system evaporated because PC's won, so Microsoft shifted to Windows and OS/2 as its future.
> Slowly, Microsoft started losing interest in Xenix
It seemed more like they lost interest the moment it was released.
The Microsoft legacy lingered in SCO's codebase for a long time -- the MS C compiler was standard right through Open Server (disclaimer: I left in 1995 and happily never had to use that festering dungheap ever again, much less write and maintain chunks of the docset for it).
I doubt that it would happen given that Microsoft's modus operandi is to make as much money as possible by trying to lock people into their products, with Windows being the primary product on which they want people to be dependent.
https://blogs.msdn.microsoft.com/wsl/2016/05/23/pico-process...
Drawbridge powers the pico kernels infrastructure on Windows and is the basis of the new Ubuntu/Windows subsystem.
The research in Singularity and Midori were used in MDIL compilers targeting .NET AOT native code generation on Windows 8.x and the follow up changes that lead to .NET Native.
Also F# started as a MS Research project.
The theorem provers used to validate Windows drivers were also a MS Research project.
LINQ, .NET contracts and Fakes framework also started as MS Research projects.
Some Haskell and OCaml researchers are on MS Research payroll.
There are tons of other examples.
How easy is it to port the average program from MacOS to Linux?
While the Kernel may be close enough, the window library is so vastly different that it's probably the same work to port from windows to Linux as to port from MacOS to Linux
The other issue was performance. UNIX systems at the time needed a far faster CPU and graphics, and far more RAM and disk space. Faster = much more expensive. Which is also why Windows systems were 1/4 the price.
Xenix collector here, I would say they had (sort-of) MS-DOS binary compatibility, as you could run some DOS programs on Xenix 386. I think it's only limited to real mode programs, but I tried it a couple of years ago and it worked.
Not to mention that on Xenix you could develop for both platforms (well, more than that: with the right setup you could target DOS, Xenix 8086, Xenix 286 or Xenix 386), that's quite an advantage.
On a side note, a good collection of Xenix manuals can be found at http://www.tenox.net/docs/.
Sometimes, it even worked!
The problem was the absolutely awful userspace and Win32 they pasted over it. And then let that dig tendrils down into the lower levels of the kernel.
I remember administrating systems running NT 3.51 and finding it actually not that bad apart from the usual Windows fault of having to use the GUI for almost everything.
Yeah. Management dropped the ball big-time in 1994. SCO could have been Red Hat really easily if they'd had even a tiny amount of vision. Instead they missed the bus, went into terminal decline, and ended up split between Borland (the good bits) and the ambulance chasers from Utah (the bad bits, who everybody remembers).
Caldera started as a legit Linux distro circa 1994-5, but burned through their funds too quickly. As a pivot they bought out Digital Research including their anti-trust lawsuit against Microsoft (for blocking Win95 from running atop DR-DOS). They won big, and the rest is history -- they used a chunk of the funds to buy what they thought was SCO's IP rights, then sued IBM (because that never ends badly, right?).
The next year or the year after IBM announced their big Linux pivot where they went all-in on Linux on everything as a big strategy.
Caldera made all of its money by going into shops with SCO-based point-of-sales or industrial control or what-have-you, and cutting the integrators/resellers out of the loop.
Putting those two businesses under one roof was doomed to failure.
I also worked for a retailer that used SCO Xenix for Point of Sale and other applications. 386/16s and 386/20s with 16, 24 or 32 port serial boards running serial printers and dumb terminals. Fun times.
I managed to grab some SCO Xenix installation floppy disks when I left (they had moved on to Netware/MS-DOS at that point, so the disks were just going to get thrown out). I still have them around somewhere...
Now I think this was on IBM's PC/RT but Googling I can't find much. At any rate I'm pretty sure it was some "special" PC variant. Anyone remembers that one? There were quite a few other oddball "PC" platforms like the one that ran VM/CMS and was like a little 370 mainframe in a PC box. I think that one was PC/370 or something.
http://basalgangster.macgui.com/RetroMacComputing/The_Long_V...
Hugh and John Gilmore visited Microsoft around the time of Sun 1, to see if there was anything they could learn / exchange. The Microsoft guys asked excitedly how they made SunOS so fast on the limited hardware.
Hugh and John looked at each other, shrugged, and said "Caching?".
The response was "Oh no, we tried that. It didn't work."
Hugh and John concluded there was nothing to learn here.