|Home » Resources » Rants
Week of March 8, 2005
As far as Unix goes, Gentoo and Linspire are newcomers to the scene. There are other flavours of Unix that have been around longer.
Both Red Hat and SuSE have been around for years. They're both based on Linux.
Linus Torvalds started the Linux kernel in the beginning of the 1990s - over ten years ago. But there are others who have been around in the world of Unix even before that.
AT&T released a 'Unix PC' in the late 1980s. So did IBM with a flavour they called 'PC/IX'. It was written by Interactive Systems of Santa Monica California.
But there is one company who has been around in the world of Unix even longer than them - longer maybe than any of the others. 'Uncle Eunice'.
Uncle Eunice (Microsoft, Bill Gates) bought a source code licence to Unix right after IBM released their PC. Uncle turned the code over to Santa Cruz Operation who were to create Microsoft's own Unix called 'XENIX'.
Simultaneously Uncle Eunice bought up the best x86 C compiler on the market from Lattice of Elgin Illinois. The Lattice compiler was not architecturally compatible with Unix C compilers; programmers at Microsoft were set to task to achieve this compatibility.
Amongst other things, so-called 'header' or 'include' files had to be located in standard directories. The system had to recognise so-called 'environment variables' for the paths to these directories. And modules had to be contained in roughly the same files. And so forth.
Microsoft were after full cross-platform compatibility. They wanted at least the simpler programs to run as easily on MS-DOS as they did on Unix. And as far as the compiler was concerned, they achieved it.
XENIX stood in the doorway but never achieved mainstream. It was there but it might as well not have been. PCs back then weren't exactly powerful and Unix demanded all the power you had and more.
When IBM decided to pre-empt the PC OEM market with Microchannel Architecture and PS/2 and follow this up with a new operating system called OS/2, Microsoft followed along and basically left Unix behind. Then Compaq decided to leave PS/2 behind, the other OEMs fell into line behind Compaq instead of IBM, and OS/2 stagnated.
But Uncle Eunice was still out there almost faster than anyone, and today when the world in general cries out for Unix, you'd wonder why Eunice doesn't give the folks what they want.
It's not easy writing your own operating system. Linus got a prototype of his kernel out there, but then turned it over to the net and asked for help to polish it up, and his development method - called the 'bazaar' by Eric Raymond - meant the code could be perused, checked, debugged, improved - and ultimately become robust.
That method is called 'open source' because the code is available for all to look at and because suggestions for changes and improvements are readily acceptable by the 'code owners', those responsible for its quality.
Microsoft Windows did not start as its own operating system. Initially it was only a thin panoply over MS-DOS running in semi-graphic mode on the relatively crippled x86 PC. All through the abortive years of its best forgotten existence, right up to Windows 3.1, it was little more.
Even the so-called '32-bit' variations known as Windows 95, Windows 98, Windows 98SE, and Windows Me are little more. As there was now another truly 32-bit source tree created by Dave Cutler, Microsoft saw a need to establish a single application programming interface (API) for both platforms.
As much as possible, the so-called 'Win32 subsystem' of NT was wrapped around the old 16-bit kernel used in Windows for Workgroups 3.11 released in the fall of 1992.
Applications running on '9x' were true 32-bit code, but they interfaced with the 'operating system' through a thin thunking shell that turned everything around to 16-bit and then back again. It wasn't secure, it wasn't stable, and it wasn't its own operating system. It was still good old (bad old) MS-DOS running underneath.
Windows NT - and thereby Windows 2000 and Windows XP - are not original systems either. NT is Dave Cutler's Prism project from Digital Equipment, and Prism in turn is a derivation of Cutler's older (and respected) VMS. Essentially Microsoft bought in VMS lock stock and barrel.
Microsoft could have at any time turned around and developed their own variant of Unix. They could have done just like Linus had done (and in fact may have tried for all we know). And if Linus on his own could create a first version of the kernel, a single programmer at Microsoft should in theory be able to do the same.
If old Windows users didn't care (or didn't know) it was MS-DOS running under the bonnet, they could hardly be expected to care that had changed and Unix was running there now. The interfaces to 'ordinary' Windows and NT were deliberately identical or as close to identical as possible - NT's first version number ever was even 3.1 so it would appear to be as close to 'ordinary' Windows as possible.
Users don't care about issues like that. Users want quality, and that quality, more and more today, starts with good security. They wouldn't (and couldn't) have cared.
Microsoft, aware OS/2 was going nowhere fast, could have dusted off their old XENIX even. Or started afresh with their own in-house created Unix, just like Linus who'd released his first kernel back when Microsoft released Windows 3.1.
But there are a number of reasons this hasn't happened, and most speculation points to there being real logistical causes for this not happening, primarily Microsoft's inability to duplicate what Linus and Linux have done.
For starters, it's Linus' superior development model. Called the 'bazaar' by Eric Raymond and normally referred to today as 'open source', it's the superior method, and unfortunately the very type of method Microsoft cannot by definition use - and their own 'Halloween Documents' corroborate this unequivocally.
Yet Red Hat, SuSE, Apple and others have open source operating system kernels, and that hasn't stopped them from making money. The code despite all is their property, and no amount of outside inspection will ever change that. Both Red Hat, SuSE, and Apple continue to make money off their Unix variants, so it's not just the money.
But Microsoft are secretive. Sometimes this is because they would be embarrassed if the world at large knew just how shitty stupid their code is, and sometimes this is because they're doing dirty things with their code - such as the sabotage against a browser known as Netscape, a programming interface known as Java, a media component known as QuickTime and another known as Real, or the stealth migration of code they undertook to try to hide the truth about what they were up to with a program called Internet Explorer from the US Department of Justice.
Microsoft have been using open source all along. They implemented a number of Unix cornerstones in later versions of MS-DOS (but poorly). They re-created the essence of Berkeley Sockets for their first networked operating systems. They now use this code outright. They've previously funded research projects to attain more and more compatibility with Unix.
But Microsoft in the marketplace is not a research institute. What they could in theory attain if research and product improvement were their only goals is not the same as what they perceive as necessary when going out and trying to make money.
For in the mindset of Microsoft it's never enough to turn a profit. The computer industry marketplace belongs to Microsoft; everyone else is an intruder that must be driven back out through the gates. And you can't do this with open systems.
Open systems implies coexistence in the marketplace. Microsoft do not recognise coexistence anywhere.
But the logistical issues go deeper even than that. Microsoft would first have to have a viable Unix kernel to get anywhere. If they gave in and used Linux, they'd probably lose so much prestige they'd feel destroyed, even if their own 'OS' would suddenly be secure and robust in a way their customers had never known before.
So the only remaining alternative is to try to create a kernel on your own. But Microsoft, the 'Uncle Eunice' of the PC Unix world, would have a hard time pulling this off. Their development model, called the 'cathedral' by Eric Raymond, is a closed model, and they might like to keep it that way so they can continue to do away with competitors by illicit means without hopefully getting caught at it.
Which is nothing compared to the prospect of seeing Microsoft programmers at work creating the thing in this first place.
Microsoft have no in-house competence in operating systems development. Absolutely none.
Their NT - their Windows 2000 and Windows XP - were created by an outside team, that of Dave Cutler and known as the 'Tribe'. When Cutler quit back in 1996 the Tribe left town with him.
Microsoft have never worked on development of 'real' operating systems. They even bought in MS-DOS without creating it, and brought its author on board to deal with future 'evolution'.
When Cutler left town, and because Digital Equipment could force Microsoft to not only pay damages for stealing Prism but also scrap the entire source tree Cutler's Tribe used, the entire NT had to be rewritten for Windows 2000, and we all know how that turned out.
And if Windows 2000 was bad, bloated, and bugged enough, it was nothing compared to that latest eyesore from the Pacific Northwest known as 'XP'. Windows users keep on claiming Windows is getting more and more stable all the time but they don't get it - the best Windows ever is still a piece of shit compared to the wobbliest Unix.
And we're still not even talking about other more serious issues like security, attack vectors, and the like. Just the OS kernel itself is probably a monumental endeavour Microsoft will never be able to pull off.
It's not in their mindset; it's not in their corporate makeup; and it's basically beyond their experience and capabilities to ever succeed.
Uncle Eunice will never be more than a funny old ninny.