Live data from Hacker News

Why doesn’t Windows use 64-bit virtual address space below 0x00000000`7ffe0000?

devblogs.microsoft.com

11–20 of 65 posts

Re: Why doesn’t Windows use 64-bit virtual address space below 0x00000000`7ffe0000?

#12
post #7

I enjoy the short and sweet blog posts from Raymond Chen on "Why does Windows X?".

He is great at summing up these things in a way I can understand (most of the time, not being very experienced with Windows internals) without having the feeling he is dumbing it down, just that he is explaining it very clearly.

Re: Why doesn’t Windows use 64-bit virtual address space below 0x00000000`7ffe0000?

#13

Earlier quoted context omitted.

…on a long dead architecture.

I still have Windows 2000 installed on a Digital Ultimate Workstation (2x Alpha 21164). I turn it on every few years when I need a nostalgia kick ;-)

So sad to see Alpha die off, especially since I haven't noticed any architectures with anything like PALCode spring up since. The Alpha's firmware was essentially a hypervisor that only supported a single guest, and the OS kernel had to upcall to the firmware for any privileged operations.

In particular, it would be nice to have userspace programs be able to take advantage of new/larger registers without requiring the OS kernel to support the extra CPU state. If the firmware (which presumably is available as soon as the new CPU ships) handles the context switch, then the OS kernel doesn't need an update.

Re: Why doesn’t Windows use 64-bit virtual address space below 0x00000000`7ffe0000?

#14

Earlier quoted context omitted.

…on a long dead architecture.

Chen is the poster boy for backwards compat. They used to work very hard to make sure updates didn't break popular programs that used undocumented hacks.

> They used to work very hard to make sure updates didn't break popular programs that used undocumented hacks.

Obsessively.

I worked for a company that sold a security auditing tool. We cared very much about which version of Windows we were running on. When Microsoft came out with the next version of Windows and to our dismay, we found out that our software recognized it as the old version.

Turns out that Microsoft had found (pre release) that the new version broke our software. It reported "unknown version" or something. So they added us to a long list of applications that, when those applications asked for what version of Windows they were running on, Windows lied and told them an earlier version.

It cost us some heartburn to work around Windows trying to be helpful to us...

Re: Why doesn’t Windows use 64-bit virtual address space below 0x00000000`7ffe0000?

#16
post #13

Earlier quoted context omitted.

I still have Windows 2000 installed on a Digital Ultimate Workstation (2x Alpha 21164). I turn it on every few years when I need a nostalgia kick ;-)

So sad to see Alpha die off, especially since I haven't noticed any architectures with anything like PALCode spring up since. The Alpha's firmware was essentially a hypervisor that only supported a single guest, and the OS kernel had to upcall to the firmware for any privileged operations. In particular, it would be nice to have userspace programs be able to take advantage of new/larger registers without requiring th…

On the other hand, Alpha had an infamously weak memory ordering, and it dying means that we don't have to deal with that when writing software. Check Documentation/memory-barriers.txt on the Linux kernel for the gory details (recent versions are after the kernel was changed to make Alpha work somewhat more similar to other architectures; check that documentation file on older kernel versions for the full horror).

Re: Why doesn’t Windows use 64-bit virtual address space below 0x00000000`7ffe0000?

#17
post #13

Earlier quoted context omitted.

I still have Windows 2000 installed on a Digital Ultimate Workstation (2x Alpha 21164). I turn it on every few years when I need a nostalgia kick ;-)

So sad to see Alpha die off, especially since I haven't noticed any architectures with anything like PALCode spring up since. The Alpha's firmware was essentially a hypervisor that only supported a single guest, and the OS kernel had to upcall to the firmware for any privileged operations. In particular, it would be nice to have userspace programs be able to take advantage of new/larger registers without requiring th…

PAL code didn't do anything like context switches and I'm not sure how it could, given how the OS needs to know the specifics of the thread context in many scenarios.

Re: Why doesn’t Windows use 64-bit virtual address space below 0x00000000`7ffe0000?

#18
post #16
post #13

Earlier quoted context omitted.

So sad to see Alpha die off, especially since I haven't noticed any architectures with anything like PALCode spring up since. The Alpha's firmware was essentially a hypervisor that only supported a single guest, and the OS kernel had to upcall to the firmware for any privileged operations. In particular, it would be nice to have userspace programs be able to take advantage of new/larger registers without requiring th…

On the other hand, Alpha had an infamously weak memory ordering, and it dying means that we don't have to deal with that when writing software. Check Documentation/memory-barriers.txt on the Linux kernel for the gory details (recent versions are after the kernel was changed to make Alpha work somewhat more similar to other architectures; check that documentation file on older kernel versions for the full horror).

Yes, I'm familiar with the woes of the particularly weak memory model. It's mostly a problem when writing lockfree data structures, as mutex acquisition and release executed the necessary fence instructions to maintain proper happens-before relations.

Re: Why doesn’t Windows use 64-bit virtual address space below 0x00000000`7ffe0000?

#19

Earlier quoted context omitted.

…on a long dead architecture.

Chen is the poster boy for backwards compat. They used to work very hard to make sure updates didn't break popular programs that used undocumented hacks.

I would argue they still are; Windows is dead in the water if it doesn't run the vast majority of Win32 software out there today.

Re: Why doesn’t Windows use 64-bit virtual address space below 0x00000000`7ffe0000?

#20
Has anyone here ever used Windows NT on a DEC Alpha?

A company in Ireland I worked for gave a mobile phone GIS demo to the Irish national phone company and Digital lent us a beefy server with two AXP CPUs (it was gonna be the future!) running windows NT. We literally pulled it on cobbled dublin streets on a a handcart to bring it to their offices.

Post reply on HN