[Am-info] A brief history of Windows.....a GOOD read.

Fred A. Miller fm@cupserv.org
Fri, 20 Dec 2002 12:46:00 -0500


A brief history of Windows
Posted 19 Dec 2002 by lkcl (http://www.advogato.org/person/lkcl/)

Windows started life as a program-running program, and has had a 
chequered and potted life, including having a botched name-change due to 
Northern Telecom's Trademark.

This article is intended to fill people in on some of the misconceptions 
surrounding Microsoft's ... er... Operating System.

First, to put this into perspective: Microsoft's turnover is smaller 
than IBM's profit in their banking sector. Contrast this to how 
Microsoft got off the ground: with a $50,000 license deal with IBM, for 
MSDOS.

Originally, Mr Bill bought QDOS - Quick and Dirty Operating System - in 
the days when CP/M Rocked The World; Xerox didn't know what to do with 
their new pointy-clicky thing; Steve Jobs was doing a new thing to 
replace fruit machines (and incidentally was offering some bored Xerox 
employees a new career incentive).

IBM, the biggest and still the biggest software company in the world, 
was leading with its hardware (and still leading, to the detriment of 
the software teams, who had to put up with being told what to put up with).

They'd just brought out a radical new system, called a Personal 
Computer. Trouble was, they had nothing to run on it (Basic. Yeahright) 
so they needed an Operating System.

So, they approached the designer of CP/M, to ask him if he'd like to put 
his OS on their new design. Trouble was, he was up flying his Microlite 
(no mobile phones, remember?). To make matters worse, his flunkies 
didn't have authorisation to sign the famous "IBM one-way NDA".

They walked away.

Mr Bill got with the plot, right away, and signed on the one-way dotted 
line, pronto. Enter MS-DOS 2.2... [Keyboard not present: hit any key to 
continue]

Later on, the Macintosh Classis is released - a computer where the 
keyboard is optional and you get a pointy-clicky thing with it. If you 
want to type, you have to run the keyboard program and pointy-clickity 
away (so that independent survey about the use of a mouse slowing user 
productivity is well-founded).

Also, the Atari ST gets its famous TOS - Tramiel's Operating System. 
Actually, TOS was the GEM part of GEM/DOS ported to the 68,000. GEM was 
a competitor to Windows 1.0, and it was significantly better than 
Windows 1.0. Both GEM and Windows ran on the legendary IBM PC; Microsoft 
Write 1.0 was available for both Windows and Atari ST; and Atari even 
got into the PC market, right up until the 386 began to run out of steam.

So we have Microsoft developing a program runner (Windows) on top of a 
program runner (DOS), whilst other companies are doing more program 
runners (MacOS and TOS), and even more companies are doing obscure 
things with proper OSes such as VMS and Unix.

Windows marches inexorably on, via the real-mode to the virtual mode, 
but is still incapable of taking advantage of the features that decent 
operating systems use (virtual memory and process scheduling) because, 
essentially, Windows is just a Graphical Thing implementing the famous 
Win16 API, and DOS handles devices such as keyboard, mouse, screen, 
printer and... umm... that's about it, really.

TCP/IP isn't even in the picture [and when it is, it's done as a 
user-space WINSOCK.DLL hack]; the Internet is dismissed by Mr Bill as a 
waste of time; Xerox are Doing Their Thing by extending TCP - IPeXtended 
/ SPX; Novell are ripping IPX/SPX off whilst other companies with better 
networking file server products actually wait for Xerox to grant them a 
license to use IPX/SPX...

Then something funny happens, and some coincidences occur that mark the 
beginning of something really quite special, and technically far-out.

Someone at DEC gets bored of being told he can't extend VMS beyond what 
DEC can cope with, so off Mr Dave Cutler goes to Microsoft, and he takes 
the entire VMS team with him.

At around the same time, Hewlett Packard acquires Apollo, and one of its 
co-founders quits and goes to work for Microsoft, too. Mr Paul Leach 
happens to be one of the key architects of NCS - Network Computing 
System, which becomes Network Computing Architecture. The Open Group 
makes a Request for Technology and Apollo had responded by submitting 
NCA, a very advanced RPC system, to The Open Group, and DCE/RPC is the 
result.

So we have the beginnings of New Technology, "NT", which was not 
originally intended to be a graphical operating system. The target of 
the six (seven) developers was eighteen months: in the end, it was 
200,000 lines of code each per year, for four and a half years, but 
that's another story.

NT is basically the Mach Kernel (Steve Jobs, who quit Apple and formed 
NeXT, and GNU/Hurd now uses Mach), the VMS security model, with several 
sub-systems including OS/2, Win32 and POSIX as the classic sub-systems; 
running on top of the sub-systems is a series of DCE/RPC services; plus 
some programs and services that were part of the DOS and Windows suite 
ported to the New Technology.

Word has it that Mr Bill ordered the NT team to make NT a graphical OS, 
so my guess is that they simply ripped off the Windows 3.0 source code 
and shoved it in as a sub-system on top. What they did have to do, 
though, was port it from 16-bit to 32-bit, and hence Win32 was born.

Later, of course, there turn out to be bugs in the port, and also bugs 
fixed BY the port, and hence you got the famous Win16 and Win32 disaster 
area problems, compounded further by the Windows 3.1 team themselves 
moving to Win32 and screwing that up in Windows 95...

The important thing that comes out of this is to remember that windows 
is NOT an operating system, it is a GUI API; Win32 is available on 
several systems, including Wine; Windows 95; Windows NT; SCO/Unix and 
Sun's ABI (application binary interface).

Anyway: after a while, DEC got suspicious, and asked what Microsoft was 
up to. After a bit of a wing-ding, Microsoft announces that they are 
making Windows NT available on the new DEC Alpha platform, and 
incidentally they decide to increase DEC's bank-balance by $50mill...

Technically, the job of porting Windows NT to the DEC Alpha was very 
simple: the entire codebase was written in c. (Endianism only later 
became a problem for 64-bit platforms). With MIPs and RS/6000 also 
supported, one more platform is easy.

What I cannot quite comprehend is why The Open Group didn't notice about 
DCE/RPC. Microsoft originally approached TOG to license DCE/RPC, 
properly. Unfortunately, TOG's license structure was $100 per client, 
and because they are a foundation, they could not "do deals", due to 
their charter. Microsoft did the math based on their projected sales 
measured in millions, presumably told them where to put their charter, 
and just ignored the license.

Remember: DCE/RPC 1.1 is available as a 250,000 lines of code reference 
implementation, under the OSF 1.0 BSD-compatible license. It is DCE/RPC 
1.2.2 that consists of 3.5 million lines of services on top of the 1.1 
run-time libraries and services, that has the non-commercial usage 
source code licenses etc. etc.

The boundary between what Microsoft took from the DCE/RPC 1.1 reference 
implementation and the 1.2.2 codebase isn't clear: what is clear is that 
they renamed everything (function_name to FunctionName); called it MSRPC 
instead of DCE/RPC; extended DCE/RPC to support Unicode Service 
Location, and also added some really useful extensions to the IDL syntax 
(e.g. sizeis(length / 2)); added in a whole boat-load of new transports, 
as is possible to do according to the DCE/RPC specification; and added 
support for their new security / domain system, NT Domains (also 
according to spec).

Ironically, one of the transports that Microsoft added for DCE/RPC 
transparent usage - NetBIOS - is patented by IBM :)

Anyway.

Windows NT 3.1 (then 3.5) was so well designed that if a third party 
screen driver was unreliable and crashed, it didn't matter: you could 
still try and guess where to click the mouse, or use keyboard shortcuts, 
and basically still keep on running, or just leave the machine alone!

So, where are we: Windows NT 3.5 is basically a really good, 
well-designed, well-planned operating system, running sub-systems and 
sub-processes that don't matter if they crash; Windows 3.1 becomes 
Windows 95 because the NT team develop "NEWSHELL.EXE" for one of the 
Windows NT 3.51 betas and the '95 team get wind of it and rip it off; 
Linux has just got a foot in the door...

Then we get Windows NT 4.0, which is where the Windows 95 team actually 
helped out: by ripping off NEWSHELL.EXE they got all those stupid users 
to iron out some of the bugs, which makes it more reliable and mature 
when back-ported to Windows NT 4.0.

Unfortunately, when users complained that Windows 95 was faster than 
Windows NT 3.51, it was considered wise to rip out all of the user-space 
screen driver redirection (similar to X-windows) and to run all screen 
drivers in user-space.

The consequences of this action was to make it real fun to move programs 
outside off the top of a Windows NT 4.0 RC1 screen, and it also meant 
that the Citrix Team had to be hired en-masse to put Remote Destop 
(Terminal Server) back into Windows NT 5.0...

Perhaps it is wise at this point to mention one important fact, that 
becomes significant later on.

The Windows NT team and the Windows 95 team

HATE

each

other.

In my opinion, the scorn of the NT team for the 95 team is well 
justified. Basically, the NT team core are millionaires who haven't quit 
Microsoft in over a decade. Why? because they have a sense of 
responsibility and want to change the world.

By contrast, the Windows 95 team are Microsoftee Wanabees. They wannabe 
millionaires, they wannabe microsofties, they wannahave microsoft on 
their CV. And, eighteen months down the line, when they are burned out 
and overloaded, they get at least one out of three of their desires.

Consequently, with a higher staff turnover, no real incentive of 
committment, and with a chequered history of development, the Windows 95 
codebase is, basically, a complete mess.

Now we move on to Windows NT 5.0, which was six years in development. 
Windows NT 5.0 added, basically, and this is not a joke, Kerberos 5.0, 
LDAP, some up-to-date device drivers and some management console tools. 
This results, incredibly, in an increase in the codebase of a staggering 
FORTY million lines of code.

And yet the core services and security paradigms do not change. Sure, 
Microsoft extended Kerberos and LDAP to take account of the NT security 
model; yes they wrote some console tools to manage the shift; it doesn't 
really justify such a gratuitous increase in the codebase.

To Microsoft's credit, they seem to have pulled it off. by hook and by 
crook.

Now we have the Windows 95 team, who for a while, presumably whilst the 
NT team were quietly getting on with NT 5.0 development, led the way in 
terms of more device drivers, more devices supported, but running as 
VXDs that were incompatible with NT. we'll come back to this, later.

Now we have, around the time that NT 5.0 rc3 is released, a bit of a 
quandry. some smart alec notices that NT is trademarked - by another 
company called Nortel, of all things. so they decide to rename NT 5.0, 
and call it Windows 2000, based on NT technology.

based on New Technology technology. veeeerryyy smaaaart.

anyway.

finally, microsoft decide to do something smart: kill off Windows 95. so 
they take it through some death-knell releases: Windows 98; Windows 
Muscular Encephalophathy (whatever the damn disease is called - it's a 
wasting disease that make people look really lethargic and lazy but in 
fact they have a serious debilitating physical condition).

but, microsoft can't just sack all those weenies, so they give them 
something to do.

they give them...

yep!

you guessed it!

they give them a copy of the Windows NT codebase to play with. but 
first, due to United States Export Laws governing weapons-grade 
technology (munitions), they have to take out all the 128-bit stuff and 
all the kerberos stuff and all of the code that could be used by 
terrorists who are too stupid to download the source code (or don't have 
a telephone or an ISP).

remember, the Windows NT developers are watched closely; looked after; 
Microsoft thinks long-term regarding NT, and gets worth-while people 
green cards and BXPA licenses etc.

not so on the piss-poor-quality windows 95 group: the staff turnover is 
way too high to bother, so they don't.

code-named chicago, the windows 95 weenies get a copy of NT to play 
with, minus all of the critical windows 2000 Kerberos / Domain services 
that really make windows 2000 useful and manageable.

so what do the weenies focus on? fonts, graphics, making it idiot-proof 
(viz, user-hostile), and this weird XML trash called dot net.

oh, and of course, making all the useful programs that run on it need an 
internet connection to register that they're here, alive and running.

remember, it was one of the Windows 95 betas that started shipping out 
the directory listing of the hard drive off to a remote site from a C2 
certified location. the only reason it was noticed was because the 
location took their C2 certification REALLY seriously, and had someone 
employed full-time to watch the network traffic coming in and out of 
that lab and slap blocks on any suspicious activity.

ahhh, such is life...

-- 
Fred A. Miller
Systems Administrator
Cornell Univ. Press Services
fm@cupserv.org, www.cupserv.org