[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