# What exactly \*is\* Windows XP/Vista relative to the older Windows OSes?

**URL:** <https://boards.straightdope.com/t/what-exactly-is-windows-xp-vista-relative-to-the-older-windows-oses/471940>\
**Category:** Factual Questions\
**Created:** [November 9, 2008, 8:56pm UTC](https://boards.straightdope.com/t/what-exactly-is-windows-xp-vista-relative-to-the-older-windows-oses/471940 "2008-11-09T20:56:00Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![astro](https://avatars.discourse-cdn.com/v4/letter/a/9dc877/32.png) [@astro](https://boards.straightdope.com/u/astro)\
**Post date:** [November 9, 2008, 8:56pm UTC](https://boards.straightdope.com/t/what-exactly-is-windows-xp-vista-relative-to-the-older-windows-oses/471940/1 "2008-11-09T20:56:00Z")

</div>

Some time ago I stopped following the evolution of XP/Vista relative to older versions of Windows. IIRC up to Win98/WinME it was simply extensions to the DOS/Windows95/386 instruction set. Then came XP which was based kinda-sorta on OS4 which was based on … and then it got hazy.

What exactly _is_ Windows XP/Vista relative to the older Windows OSes?

---

<div class="post-metadata">

**Author:** ![Knorf](https://avatars.discourse-cdn.com/v4/letter/k/58956e/32.png) [@Knorf](https://boards.straightdope.com/u/Knorf)\
**Post date:** [November 9, 2008, 9:00pm UTC](https://boards.straightdope.com/t/what-exactly-is-windows-xp-vista-relative-to-the-older-windows-oses/471940/2 "2008-11-09T21:00:29Z")

</div>

A turd expressed in 0s and 1s?

---

<div class="post-metadata">

**Author:** ![BMax](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/bmax/32/4267_2.png) [@BMax](https://boards.straightdope.com/u/BMax)\
**Post date:** [November 9, 2008, 9:09pm UTC](https://boards.straightdope.com/t/what-exactly-is-windows-xp-vista-relative-to-the-older-windows-oses/471940/3 "2008-11-09T21:09:10Z")

</div>

According to [Wikipedia](http://en.wikipedia.org/wiki/Windows_NT) and my personal experience with them, they’re NT based OS’s.

[QUOTE=WIKIPEDIA]  
Windows NT is a family of operating systems produced by Microsoft, the first version of which was released in July 1993. It was originally designed to be a powerful high-level-language-based, processor-independent, multiprocessing, multiuser operating system with features comparable to Unix. It was intended to complement consumer versions of Windows that were based on MS-DOS. NT was the first fully 32-bit version of Windows, whereas its consumer-oriented counterparts, Windows 3.1x and Windows 9x, were 16-bit/32-bit hybrids. Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Home Server, and Windows Server 2008 are based upon the Windows NT system, although they are not branded as Windows NT.  
[/QUOTE]

By OS4, I’m assuming you meant NT4.  
Windows 2000 was NT5.  
Windows Xp is NT6 workstation.  
Windows Vista is NT7 workstation.

I’m sure someone who knows more about it will come in and supply more details.

---

<div class="post-metadata">

**Author:** ![astro](https://avatars.discourse-cdn.com/v4/letter/a/9dc877/32.png) [@astro](https://boards.straightdope.com/u/astro)\
**Post date:** [November 9, 2008, 9:15pm UTC](https://boards.straightdope.com/t/what-exactly-is-windows-xp-vista-relative-to-the-older-windows-oses/471940/4 "2008-11-09T21:15:31Z")

</div>

So XP and Vista don’t have any old embedded windows code, it’s all NT now, and backwards compatibility with older win versions (to the extent possible) is some kind of virtualized emulation?

---

<div class="post-metadata">

**Author:** ![Pseudocode](https://avatars.discourse-cdn.com/v4/letter/p/59ef9b/32.png) [@Pseudocode](https://boards.straightdope.com/u/Pseudocode)\
**Post date:** [November 9, 2008, 9:17pm UTC](https://boards.straightdope.com/t/what-exactly-is-windows-xp-vista-relative-to-the-older-windows-oses/471940/5 "2008-11-09T21:17:58Z")

</div>

This table might be helpful: [http://en.wikipedia.org/wiki/Microsoft\_Windows#Timeline\_of\_releases](http://en.wikipedia.org/wiki/Microsoft_Windows#Timeline_of_releases)

XP is actually NT 5.1/5.2.

Vista is NT 6, which is why the next version of Windows will be called Windows 7.

See also [http://en.wikipedia.org/wiki/Timeline\_of\_Microsoft\_Windows](http://en.wikipedia.org/wiki/Timeline_of_Microsoft_Windows)

---

<div class="post-metadata">

**Author:** ![Mangetout](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/mangetout/32/19_2.png) [@Mangetout](https://boards.straightdope.com/u/Mangetout)\
**Post date:** [November 9, 2008, 9:18pm UTC](https://boards.straightdope.com/t/what-exactly-is-windows-xp-vista-relative-to-the-older-windows-oses/471940/6 "2008-11-09T21:18:11Z")

</div>

> [@BMax](#):
>
> According to [Wikipedia](http://en.wikipedia.org/wiki/Windows_NT) and my personal experience with them, they’re NT based OS’s.  
> By OS4, I’m assuming you meant NT4.  
> Windows 2000 was NT5.  
> Windows Xp is NT6 workstation.  
> Windows Vista is NT7 workstation.
> 
> I’m sure someone who knows more about it will come in and supply more details.

That doesn’t sound right to me. I think Win2K and XP are the same major version number.

---

<div class="post-metadata">

**Author:** ![Mangetout](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/mangetout/32/19_2.png) [@Mangetout](https://boards.straightdope.com/u/Mangetout)\
**Post date:** [November 9, 2008, 9:20pm UTC](https://boards.straightdope.com/t/what-exactly-is-windows-xp-vista-relative-to-the-older-windows-oses/471940/7 "2008-11-09T21:20:47Z")

</div>

Ah.  
Win2k is NT 5.0  
WinXP is NT 5.1-ish  
Vista is NT6.0.

Oddly, Windows 7 is NT 6.1

> **[Microsoft Windows version history](https://en.wikipedia.org/wiki/History_of_Microsoft_Windows#Product_progression)**
>
> Microsoft Windows was announced by Bill Gates on November 10, 1983. Microsoft introduced Windows as a graphical user interface for MS-DOS, which had been introduced two years earlier. The product line evolved in the 1990s from an operating environment into a fully complete, modern operating system over two lines of development, each with their own separate codebase.
> The first versions of Windows (1.0 through to 3.11) were graphical shells that ran from MS-DOS. Windows 95, though still being ...

---

<div class="post-metadata">

**Author:** ![Derleth](https://avatars.discourse-cdn.com/v4/letter/d/b9e5f3/32.png) [@Derleth](https://boards.straightdope.com/u/Derleth)\
**Post date:** [November 9, 2008, 9:59pm UTC](https://boards.straightdope.com/t/what-exactly-is-windows-xp-vista-relative-to-the-older-windows-oses/471940/8 "2008-11-09T21:59:20Z")

</div>

> [@astro](#):
>
> the DOS/Windows95/386 instruction set

This doesn’t make sense: DOS and Windows 95 don’t have an instruction set. They’re rather simple attempts at an operating system without effective memory protection (DOS doesn’t even try, Windows 95 tries but fails) or the ability to enforce separation between applications and the hardware. That made them completely insecure and unstable.

The 386 has an instruction set, though, and it’s historically important because it’s the first 32-bit x86 chip and the first x86 chip capable of running real operating systems (it had both hardware memory protection and an address space big enough to hold a real OS). All later x86 chips implement the 386 instruction set but they also go significantly beyond it, meaning a Pentium 4 can run all 386 software but a 386 will likely be unable to run Pentium 4 software because it has opcodes the 386 doesn’t implement.

---

<div class="post-metadata">

**Author:** ![astro](https://avatars.discourse-cdn.com/v4/letter/a/9dc877/32.png) [@astro](https://boards.straightdope.com/u/astro)\
**Post date:** [November 9, 2008, 10:26pm UTC](https://boards.straightdope.com/t/what-exactly-is-windows-xp-vista-relative-to-the-older-windows-oses/471940/9 "2008-11-09T22:26:03Z")

</div>

> [@Derleth](#):
>
> This doesn’t make sense: DOS and Windows 95 don’t have an instruction set. They’re rather simple attempts at an operating system without effective memory protection (DOS doesn’t even try, Windows 95 tries but fails) or the ability to enforce separation between applications and the hardware. That made them completely insecure and unstable.

My intent was to convey the concept of the DOS/win95 + 386i instruction set as a combined paradigm. Not to indicate that the Oses themselves had instruction sets.

---

<div class="post-metadata">

**Author:** ![Balthisar](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/balthisar/32/2825_2.png) [@Balthisar](https://boards.straightdope.com/u/Balthisar)\
**Post date:** [November 9, 2008, 10:59pm UTC](https://boards.straightdope.com/t/what-exactly-is-windows-xp-vista-relative-to-the-older-windows-oses/471940/10 "2008-11-09T22:59:51Z")

</div>

I’d understand “instruction set” to mean “API,” which is something that all had in common. Even [command.com](http://command.com) is just a shell to the DOS API.

---

<div class="post-metadata">

**Author:** ![Derleth](https://avatars.discourse-cdn.com/v4/letter/d/b9e5f3/32.png) [@Derleth](https://boards.straightdope.com/u/Derleth)\
**Post date:** [November 9, 2008, 11:53pm UTC](https://boards.straightdope.com/t/what-exactly-is-windows-xp-vista-relative-to-the-older-windows-oses/471940/11 "2008-11-09T23:53:09Z")

</div>

> [@Balthisar](#):
>
> I’d understand “instruction set” to mean “API,”

Nobody uses the term instruction set to mean API. It’s like understanding the term “kidney” to mean “left ear”.

> [@astro](#):
>
> My intent was to convey the concept of the DOS/win95 + 386i instruction set as a combined paradigm.

This actually makes more sense. Software that runs on multiple platforms is often ported to OS/hardware pairs as opposed to just different OSes, largely because many commercial OSes (outside of the embedded world) only exist on one piece of hardware (MVS is only on zSeries mainframes, Windows XP is only on x86 PCs, etc.) but also because the hardware can dictate what features the application can rely on.

---

<div class="post-metadata">

**Author:** ![Derleth](https://avatars.discourse-cdn.com/v4/letter/d/b9e5f3/32.png) [@Derleth](https://boards.straightdope.com/u/Derleth)\
**Post date:** [November 10, 2008, 12:00am UTC](https://boards.straightdope.com/t/what-exactly-is-windows-xp-vista-relative-to-the-older-windows-oses/471940/12 "2008-11-10T00:00:42Z")

</div>

> [@astro](#):
>
> So XP and Vista don’t have any old embedded windows code, it’s all NT now, and backwards compatibility with older win versions (to the extent possible) is some kind of virtualized emulation?

To directly answer this: Yes, that’s more-or-less how it works now, but it isn’t that simple because MS tended to compromise the NT kernel to make certain Windows 95-era programs keep running. This means NT isn’t as secure as it ought to be (the single biggest reason is that MS allows application developers to _insist_ that their applications must run with full Administrator privileges) in addition to being more complex than it should be. [Raymond Chen goes over a lot of this in detail in his blog and book ‘The Old New Thing’.](http://blogs.msdn.com/oldnewthing/)

It _is_ the case that on 64-bit systems all 16-bit code (DOS programs and whatever Windows 3 applications you can dredge up) must run under software emulation because there is no way to run 16-bit code on the hardware when the CPU is in 64-bit mode. 32-bit code (Windows 95 and later) will run on the hardware in a special, OS-managed mode.

---

<div class="post-metadata">

**Author:** ![engineer\_comp\_geek](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/engineer_comp_geek/32/504_2.png) [@engineer\_comp\_geek](https://boards.straightdope.com/u/engineer_comp_geek)\
**Post date:** [November 10, 2008, 1:50am UTC](https://boards.straightdope.com/t/what-exactly-is-windows-xp-vista-relative-to-the-older-windows-oses/471940/13 "2008-11-10T01:50:52Z")

</div>

Microsoft used to have two different product lines, called “Windows” and “NT”. It’s a little easier to understand what is going on if you use the versions that the operating systems identify themselves as instead of using Microsoft’s marketing department’s name for them. Ignoring all of the stuff from 3.x and earlier, the “Windows” line is:

Windows 95 (windows 4.0)  
Windows 98 (windows 4.1)  
Windows ME (windows 4.9)

The NT line is:

NT 4.0 (NT 4.0)  
Windows 2000 (NT 5.0)  
Windows XP (NT 5.1)  
Windows Vista (NT 6.0)

You’d expect Windows 7 to be NT 7.0, but it looks like it might end up being NT 6.1, which is really odd if you ask me. It makes me think that Windows 7 isn’t some great new thing from the ground up like they’ve been saying it is. What it really might be is just Vista with a bunch of fixes for all of the things that customers have been complaining about.

Anyway, the “Windows” line was backwards compatible to DOS. Contrary to what was posted earlier in this thread, these operating systems did not just call DOS functions to do the work. They had their own system drivers, and only called DOS functions when a particular drive was in “dos compatibility mode”. In order to be compatible with DOS, they had to allow programs to fully access the machine’s hardware. This was necessary to get performance out of games at the time, and was also necessary for some DOS programs to function properly, but it also was an Achilles heel since a truly misbehaving program could bring the entire system to its knees.

The NT line was designed for business users in a networked environment, and as such it had to be more rugged from the ground up. The key architectural difference between Windows and NT is that NT has what is called the “hardware abstraction layer” or HAL. Programs can’t directly access hardware in NT. The program accesses the HAL, and the HAL accesses the hardware. This means that a misbehaving program can’t easily whack out the entire system. It also means that a lot of DOS programs just won’t ever work under NT.

Microsoft officially “merged” the operating systems at XP. That’s a bunch of marketing doublespeak. They didn’t merge anything. They killed off the Windows line and forced everyone to NT. They tried to do this for Windows 2000, but too many commonly used programs for home users wouldn’t run under 2000. Microsoft then switched gears and said 2000 would be for business users. You can still see evidence of this in the cutesy “my network places” instead of “network neighborhood” in Windows 2000, and in the multimedia apps that were clearly designed for the home user and not the business user. Microsoft then found themselves without a new software release for its home customers, and rushed ME out the door, which, IMHO, is why the thing was such a buggy piece of crap when it first came out. By the time XP came out, most home users had upgraded their software so that they didn’t have so many incompatibilities with NT any more, and Microsoft was able to complete their “merge”.

The actual API is very similar between the two operating systems.

As far as backwards compatibility goes, Microsoft has a long standing policy of intentionally breaking backwards compatibility if they think they can make their new OS “better”. Microsoft doesn’t go to any great lengths to maintain backwards compatibility. They are more than happy to tell you that no one supports old “legacy” code any more and that if you have something that old you need to upgrade it. Most of the compatibility between versions comes from the fact that the API hasn’t changed all that dramatically over the years.

---

<div class="post-metadata">

**Author:** ![Balthisar](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/balthisar/32/2825_2.png) [@Balthisar](https://boards.straightdope.com/u/Balthisar)\
**Post date:** [November 10, 2008, 1:10pm UTC](https://boards.straightdope.com/t/what-exactly-is-windows-xp-vista-relative-to-the-older-windows-oses/471940/14 "2008-11-10T13:10:31Z")

</div>

> [@Derleth](#):
>
> Nobody uses the term instruction set to mean API.

I said I’d _understand it_, not use it. Just like when someone says their operating system is Office 2003 or Internet Explorer, or that they’ve upgrade their memory to 300 gigs. No one _should_ say it, but to say that no one says it shouldn’t be said.
