One of the original design requirements for NT was that it be portable between different CPU architectures, it was one of the driving forces behind its creation.
So much so in fact, Microsoft developed NT 3.1 first on non-x86 architectures (i860 and MIPS), then later ported to x86, to ensure no x86 specific code made it in.
"Windows NT 3.1 was released for Intel x86 PC compatible and PC-98 platforms, and for DEC Alpha and ARC-compliant MIPS platforms. Windows NT 3.51 added support for the PowerPC processor in 1995"...
NT is a pretty interesting bit of PC history, I can highly recommend the book "Show Stopper!" by G. Pascal Zachary that recounts its development, and also dives a bit into why making the OS portable across CPU architectures was so important to the team at the time.
Something I didn't realize until recently was that the original MIPS version of Windows NT was Big Endian. I'd always heard it said that WinNT was strictly, 100%, absolutely always little endian, and the fact that every CPU that got a port (or was going to get a port) was either little or bi endian confirmed this.
Well, it is true, but Windows did run BE on the original MIPS R3000 platform. And only on the R3K[0]. The CPU architecture flag is still defined on modern Windows as IMAGE_FILE_MACHINE_R3000BE. There's an early test build of Win3.1 + GDI somewhere that runs on this platform.
The actual first release of WinNT 3.1 only supported MIPS R4000 and higher, I think. In little endian mode.
[0] I know the Xbox used a modified NT kernel, I've seen claims that the Xbox 360 also was, which would make it the second NT system to run big endian. Not familiar enough with sources better than wikipedia to trust that it actually was.
I believe you're correct - Xbox runs a modified Windows 20000, and subsequent versions I'm not certain on but I know it basically stands up a modified Hyper-V and the parent partition is the interface OS with games booting whatever kernel they were built for inside a VM
One of my first job out of school was as a sales support for the then bleeding edge NT 3.1 MIPS box for a company in Canada. Fond memories of loading stacks of 1.44 floppy disks for NT 3.1 and mangling ARC paths (Advanced RISC Computing, boot firmware). This was pre-internet and documentation was often hard to come by, incomplete etc.
I remember demoing the machines to astonished clients by running a stupid number of Clock apps on the desktop without a hitch.
My first real job out of school was supporting Windows NT on Dec Alpha for a company in Canada.
Things were so weird and wonderful back then. You could get GCC from Microsoft for Windows NT 3.1 for Alpha (crazy). And when Windows NT 4.0 came out there was the FX32 subsystem that ran X86 apps on Alpha (very similar to Apple Rosetta but much earlier).
I did not realize Canada was such a hotbed of Windows NT RISC.
Interesting historical note: the main reason PuTTy exists is because its author was given a Windows NT on alpha workstation and there was no native terminal emulator for it that he needed to connect to other equipment. IIRC, PuTTy still supported alpha into the 2000s until the build machine he had failed.
One of the original design requirements for NT was that it be portable between different CPU architectures, it was one of the driving forces behind its creation.
So much so in fact, Microsoft developed NT 3.1 first on non-x86 architectures (i860 and MIPS), then later ported to x86, to ensure no x86 specific code made it in.
NT supported quite a few architectures:
> https://en.wikipedia.org/wiki/Windows_NT#Supported_platforms
"Windows NT 3.1 was released for Intel x86 PC compatible and PC-98 platforms, and for DEC Alpha and ARC-compliant MIPS platforms. Windows NT 3.51 added support for the PowerPC processor in 1995"...
NT is a pretty interesting bit of PC history, I can highly recommend the book "Show Stopper!" by G. Pascal Zachary that recounts its development, and also dives a bit into why making the OS portable across CPU architectures was so important to the team at the time.
Something I didn't realize until recently was that the original MIPS version of Windows NT was Big Endian. I'd always heard it said that WinNT was strictly, 100%, absolutely always little endian, and the fact that every CPU that got a port (or was going to get a port) was either little or bi endian confirmed this.
Well, it is true, but Windows did run BE on the original MIPS R3000 platform. And only on the R3K[0]. The CPU architecture flag is still defined on modern Windows as IMAGE_FILE_MACHINE_R3000BE. There's an early test build of Win3.1 + GDI somewhere that runs on this platform.
The actual first release of WinNT 3.1 only supported MIPS R4000 and higher, I think. In little endian mode.
[0] I know the Xbox used a modified NT kernel, I've seen claims that the Xbox 360 also was, which would make it the second NT system to run big endian. Not familiar enough with sources better than wikipedia to trust that it actually was.
I believe you're correct - Xbox runs a modified Windows 20000, and subsequent versions I'm not certain on but I know it basically stands up a modified Hyper-V and the parent partition is the interface OS with games booting whatever kernel they were built for inside a VM
One of my first job out of school was as a sales support for the then bleeding edge NT 3.1 MIPS box for a company in Canada. Fond memories of loading stacks of 1.44 floppy disks for NT 3.1 and mangling ARC paths (Advanced RISC Computing, boot firmware). This was pre-internet and documentation was often hard to come by, incomplete etc.
I remember demoing the machines to astonished clients by running a stupid number of Clock apps on the desktop without a hitch.
Fun times.
My first real job out of school was supporting Windows NT on Dec Alpha for a company in Canada.
Things were so weird and wonderful back then. You could get GCC from Microsoft for Windows NT 3.1 for Alpha (crazy). And when Windows NT 4.0 came out there was the FX32 subsystem that ran X86 apps on Alpha (very similar to Apple Rosetta but much earlier).
I did not realize Canada was such a hotbed of Windows NT RISC.
Interesting historical note: the main reason PuTTy exists is because its author was given a Windows NT on alpha workstation and there was no native terminal emulator for it that he needed to connect to other equipment. IIRC, PuTTy still supported alpha into the 2000s until the build machine he had failed.
I know, I was a Windows engineer, I knew it had been ported to many architectures, but somehow I missed PowerPC :)
It gets weirder.
Nintendo GameCube and Wii are also PowerPC based. And somebody managed to have them run Windows NT: https://github.com/Wack0/entii-for-workcubes
It was also on mips and alpha. There was an intergraph port as well that never went out
Solaris (2.5.1 at least) had a PowerPC port as well.
NT was great on Dec Alphas.