Did Windows NT 4 emulate x86 on non-Intel platforms?
I've been trying to find more information about non-Intel versions of Windows NT regarding x86 emulation but found very little about it. There is one sentence about it in the Wikipedia page but the reference link is gone.
Was there any sort of x86 emulation on MIPS, PowerPC or Alpha versions of Windows NT?
emulation windows
add a comment |
I've been trying to find more information about non-Intel versions of Windows NT regarding x86 emulation but found very little about it. There is one sentence about it in the Wikipedia page but the reference link is gone.
Was there any sort of x86 emulation on MIPS, PowerPC or Alpha versions of Windows NT?
emulation windows
add a comment |
I've been trying to find more information about non-Intel versions of Windows NT regarding x86 emulation but found very little about it. There is one sentence about it in the Wikipedia page but the reference link is gone.
Was there any sort of x86 emulation on MIPS, PowerPC or Alpha versions of Windows NT?
emulation windows
I've been trying to find more information about non-Intel versions of Windows NT regarding x86 emulation but found very little about it. There is one sentence about it in the Wikipedia page but the reference link is gone.
Was there any sort of x86 emulation on MIPS, PowerPC or Alpha versions of Windows NT?
emulation windows
emulation windows
edited Jan 26 at 16:03
Leo B.
6,83942470
6,83942470
asked Jan 26 at 10:01
AybeAybe
7951619
7951619
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
There was x86 emulation on Windows NT, on MIPS, Alpha, and PowerPC — in fact, more than x86 emulation, PC emulation.
The Alpha release of Windows NT was quite famous at the time for using a binary translator rather than a “plain” emulator, FX!32; it would run x86 programs, keeping track of which parts of the binaries were actually used, and then translate them to Alpha instructions and store them in DLLs which were used the next time the programs were run. FX!32 was described in a fair amount of detail in various publications at the time, see this USENIX paper and this Digital Technical Journal article.
On MIPS and PowerPC (and Alpha for DOS x86 programs), NTVDM.EXE
could emulate a PC as well, using a version of Insignia’s SoftPC (which was common on workstations at the time). This post on Virtually Fun looks at the MIPS version specifically.
The scope of these tools is different: FX!32 translates Win32-on-x86 to Win32-on-Alpha, whereas SoftPC emulates a complete 486-level PC.
Thank you for the links. Lesefutter :)) It's maybe worth to add that these emulations where more intended for copatibility reasons with existing applications, as applications could be (and would) compiled to native code.
– Raffzahn
Jan 26 at 12:09
2
After Intel bought the Alpha technology, FX!32 became the basis for the x86 emulation for IA-64, I believe. Interestingly, around the same time, Alpha technology showed up in both major vendors's products: AMD's new frontside bus at that time was based on the FSB of the canceled EV8.
– Jörg W Mittag
Jan 26 at 15:39
2
The comment about the alpha doing binary translation is not strictly true, unusually for a CPU, the alpha allowed the OS to load different microcode, and, at least some, of the x86 emulation was done in the CPU itself using this technique. The contemporaneous linux kernels have the gory details, if you're interested. Better still the Alpha boot rom (like the BIOS) could also use this feature so regular x86 option roms (like SCSI controllers, and video bioses) worked on an Alpha systems.
– james
Jan 26 at 20:24
1
@james are you referring to PALcode by any chance? As I understand it (and the last time I talked to an Alpha designer about this was twenty-odd years ago, so I might be wrong), PALcode is used to handle system initialisation, context switching, interrupt dispatching, cache management etc.; while it can take care of some instruction emulation, that’s intended for the optional instructions in the Alpha architecture, not for emulating a different architecture altogether.
– Stephen Kitt
Jan 27 at 15:45
1
@StephenKitt - I spun up an old tape cartridge looking for the source of em86 and libem486.a but didn't find it (that was the linux helper binary that was syscall compatible with ia32) - I dimly remember a paper about how they'd cunningly added palcode instructions to do some of the x86 emulation, there are some alpha greybeards around here - I'll ask them.
– james
Jan 27 at 15:53
|
show 4 more comments
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "648"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f8971%2fdid-windows-nt-4-emulate-x86-on-non-intel-platforms%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
There was x86 emulation on Windows NT, on MIPS, Alpha, and PowerPC — in fact, more than x86 emulation, PC emulation.
The Alpha release of Windows NT was quite famous at the time for using a binary translator rather than a “plain” emulator, FX!32; it would run x86 programs, keeping track of which parts of the binaries were actually used, and then translate them to Alpha instructions and store them in DLLs which were used the next time the programs were run. FX!32 was described in a fair amount of detail in various publications at the time, see this USENIX paper and this Digital Technical Journal article.
On MIPS and PowerPC (and Alpha for DOS x86 programs), NTVDM.EXE
could emulate a PC as well, using a version of Insignia’s SoftPC (which was common on workstations at the time). This post on Virtually Fun looks at the MIPS version specifically.
The scope of these tools is different: FX!32 translates Win32-on-x86 to Win32-on-Alpha, whereas SoftPC emulates a complete 486-level PC.
Thank you for the links. Lesefutter :)) It's maybe worth to add that these emulations where more intended for copatibility reasons with existing applications, as applications could be (and would) compiled to native code.
– Raffzahn
Jan 26 at 12:09
2
After Intel bought the Alpha technology, FX!32 became the basis for the x86 emulation for IA-64, I believe. Interestingly, around the same time, Alpha technology showed up in both major vendors's products: AMD's new frontside bus at that time was based on the FSB of the canceled EV8.
– Jörg W Mittag
Jan 26 at 15:39
2
The comment about the alpha doing binary translation is not strictly true, unusually for a CPU, the alpha allowed the OS to load different microcode, and, at least some, of the x86 emulation was done in the CPU itself using this technique. The contemporaneous linux kernels have the gory details, if you're interested. Better still the Alpha boot rom (like the BIOS) could also use this feature so regular x86 option roms (like SCSI controllers, and video bioses) worked on an Alpha systems.
– james
Jan 26 at 20:24
1
@james are you referring to PALcode by any chance? As I understand it (and the last time I talked to an Alpha designer about this was twenty-odd years ago, so I might be wrong), PALcode is used to handle system initialisation, context switching, interrupt dispatching, cache management etc.; while it can take care of some instruction emulation, that’s intended for the optional instructions in the Alpha architecture, not for emulating a different architecture altogether.
– Stephen Kitt
Jan 27 at 15:45
1
@StephenKitt - I spun up an old tape cartridge looking for the source of em86 and libem486.a but didn't find it (that was the linux helper binary that was syscall compatible with ia32) - I dimly remember a paper about how they'd cunningly added palcode instructions to do some of the x86 emulation, there are some alpha greybeards around here - I'll ask them.
– james
Jan 27 at 15:53
|
show 4 more comments
There was x86 emulation on Windows NT, on MIPS, Alpha, and PowerPC — in fact, more than x86 emulation, PC emulation.
The Alpha release of Windows NT was quite famous at the time for using a binary translator rather than a “plain” emulator, FX!32; it would run x86 programs, keeping track of which parts of the binaries were actually used, and then translate them to Alpha instructions and store them in DLLs which were used the next time the programs were run. FX!32 was described in a fair amount of detail in various publications at the time, see this USENIX paper and this Digital Technical Journal article.
On MIPS and PowerPC (and Alpha for DOS x86 programs), NTVDM.EXE
could emulate a PC as well, using a version of Insignia’s SoftPC (which was common on workstations at the time). This post on Virtually Fun looks at the MIPS version specifically.
The scope of these tools is different: FX!32 translates Win32-on-x86 to Win32-on-Alpha, whereas SoftPC emulates a complete 486-level PC.
Thank you for the links. Lesefutter :)) It's maybe worth to add that these emulations where more intended for copatibility reasons with existing applications, as applications could be (and would) compiled to native code.
– Raffzahn
Jan 26 at 12:09
2
After Intel bought the Alpha technology, FX!32 became the basis for the x86 emulation for IA-64, I believe. Interestingly, around the same time, Alpha technology showed up in both major vendors's products: AMD's new frontside bus at that time was based on the FSB of the canceled EV8.
– Jörg W Mittag
Jan 26 at 15:39
2
The comment about the alpha doing binary translation is not strictly true, unusually for a CPU, the alpha allowed the OS to load different microcode, and, at least some, of the x86 emulation was done in the CPU itself using this technique. The contemporaneous linux kernels have the gory details, if you're interested. Better still the Alpha boot rom (like the BIOS) could also use this feature so regular x86 option roms (like SCSI controllers, and video bioses) worked on an Alpha systems.
– james
Jan 26 at 20:24
1
@james are you referring to PALcode by any chance? As I understand it (and the last time I talked to an Alpha designer about this was twenty-odd years ago, so I might be wrong), PALcode is used to handle system initialisation, context switching, interrupt dispatching, cache management etc.; while it can take care of some instruction emulation, that’s intended for the optional instructions in the Alpha architecture, not for emulating a different architecture altogether.
– Stephen Kitt
Jan 27 at 15:45
1
@StephenKitt - I spun up an old tape cartridge looking for the source of em86 and libem486.a but didn't find it (that was the linux helper binary that was syscall compatible with ia32) - I dimly remember a paper about how they'd cunningly added palcode instructions to do some of the x86 emulation, there are some alpha greybeards around here - I'll ask them.
– james
Jan 27 at 15:53
|
show 4 more comments
There was x86 emulation on Windows NT, on MIPS, Alpha, and PowerPC — in fact, more than x86 emulation, PC emulation.
The Alpha release of Windows NT was quite famous at the time for using a binary translator rather than a “plain” emulator, FX!32; it would run x86 programs, keeping track of which parts of the binaries were actually used, and then translate them to Alpha instructions and store them in DLLs which were used the next time the programs were run. FX!32 was described in a fair amount of detail in various publications at the time, see this USENIX paper and this Digital Technical Journal article.
On MIPS and PowerPC (and Alpha for DOS x86 programs), NTVDM.EXE
could emulate a PC as well, using a version of Insignia’s SoftPC (which was common on workstations at the time). This post on Virtually Fun looks at the MIPS version specifically.
The scope of these tools is different: FX!32 translates Win32-on-x86 to Win32-on-Alpha, whereas SoftPC emulates a complete 486-level PC.
There was x86 emulation on Windows NT, on MIPS, Alpha, and PowerPC — in fact, more than x86 emulation, PC emulation.
The Alpha release of Windows NT was quite famous at the time for using a binary translator rather than a “plain” emulator, FX!32; it would run x86 programs, keeping track of which parts of the binaries were actually used, and then translate them to Alpha instructions and store them in DLLs which were used the next time the programs were run. FX!32 was described in a fair amount of detail in various publications at the time, see this USENIX paper and this Digital Technical Journal article.
On MIPS and PowerPC (and Alpha for DOS x86 programs), NTVDM.EXE
could emulate a PC as well, using a version of Insignia’s SoftPC (which was common on workstations at the time). This post on Virtually Fun looks at the MIPS version specifically.
The scope of these tools is different: FX!32 translates Win32-on-x86 to Win32-on-Alpha, whereas SoftPC emulates a complete 486-level PC.
edited Jan 26 at 11:02
answered Jan 26 at 10:29
Stephen KittStephen Kitt
38.3k8155167
38.3k8155167
Thank you for the links. Lesefutter :)) It's maybe worth to add that these emulations where more intended for copatibility reasons with existing applications, as applications could be (and would) compiled to native code.
– Raffzahn
Jan 26 at 12:09
2
After Intel bought the Alpha technology, FX!32 became the basis for the x86 emulation for IA-64, I believe. Interestingly, around the same time, Alpha technology showed up in both major vendors's products: AMD's new frontside bus at that time was based on the FSB of the canceled EV8.
– Jörg W Mittag
Jan 26 at 15:39
2
The comment about the alpha doing binary translation is not strictly true, unusually for a CPU, the alpha allowed the OS to load different microcode, and, at least some, of the x86 emulation was done in the CPU itself using this technique. The contemporaneous linux kernels have the gory details, if you're interested. Better still the Alpha boot rom (like the BIOS) could also use this feature so regular x86 option roms (like SCSI controllers, and video bioses) worked on an Alpha systems.
– james
Jan 26 at 20:24
1
@james are you referring to PALcode by any chance? As I understand it (and the last time I talked to an Alpha designer about this was twenty-odd years ago, so I might be wrong), PALcode is used to handle system initialisation, context switching, interrupt dispatching, cache management etc.; while it can take care of some instruction emulation, that’s intended for the optional instructions in the Alpha architecture, not for emulating a different architecture altogether.
– Stephen Kitt
Jan 27 at 15:45
1
@StephenKitt - I spun up an old tape cartridge looking for the source of em86 and libem486.a but didn't find it (that was the linux helper binary that was syscall compatible with ia32) - I dimly remember a paper about how they'd cunningly added palcode instructions to do some of the x86 emulation, there are some alpha greybeards around here - I'll ask them.
– james
Jan 27 at 15:53
|
show 4 more comments
Thank you for the links. Lesefutter :)) It's maybe worth to add that these emulations where more intended for copatibility reasons with existing applications, as applications could be (and would) compiled to native code.
– Raffzahn
Jan 26 at 12:09
2
After Intel bought the Alpha technology, FX!32 became the basis for the x86 emulation for IA-64, I believe. Interestingly, around the same time, Alpha technology showed up in both major vendors's products: AMD's new frontside bus at that time was based on the FSB of the canceled EV8.
– Jörg W Mittag
Jan 26 at 15:39
2
The comment about the alpha doing binary translation is not strictly true, unusually for a CPU, the alpha allowed the OS to load different microcode, and, at least some, of the x86 emulation was done in the CPU itself using this technique. The contemporaneous linux kernels have the gory details, if you're interested. Better still the Alpha boot rom (like the BIOS) could also use this feature so regular x86 option roms (like SCSI controllers, and video bioses) worked on an Alpha systems.
– james
Jan 26 at 20:24
1
@james are you referring to PALcode by any chance? As I understand it (and the last time I talked to an Alpha designer about this was twenty-odd years ago, so I might be wrong), PALcode is used to handle system initialisation, context switching, interrupt dispatching, cache management etc.; while it can take care of some instruction emulation, that’s intended for the optional instructions in the Alpha architecture, not for emulating a different architecture altogether.
– Stephen Kitt
Jan 27 at 15:45
1
@StephenKitt - I spun up an old tape cartridge looking for the source of em86 and libem486.a but didn't find it (that was the linux helper binary that was syscall compatible with ia32) - I dimly remember a paper about how they'd cunningly added palcode instructions to do some of the x86 emulation, there are some alpha greybeards around here - I'll ask them.
– james
Jan 27 at 15:53
Thank you for the links. Lesefutter :)) It's maybe worth to add that these emulations where more intended for copatibility reasons with existing applications, as applications could be (and would) compiled to native code.
– Raffzahn
Jan 26 at 12:09
Thank you for the links. Lesefutter :)) It's maybe worth to add that these emulations where more intended for copatibility reasons with existing applications, as applications could be (and would) compiled to native code.
– Raffzahn
Jan 26 at 12:09
2
2
After Intel bought the Alpha technology, FX!32 became the basis for the x86 emulation for IA-64, I believe. Interestingly, around the same time, Alpha technology showed up in both major vendors's products: AMD's new frontside bus at that time was based on the FSB of the canceled EV8.
– Jörg W Mittag
Jan 26 at 15:39
After Intel bought the Alpha technology, FX!32 became the basis for the x86 emulation for IA-64, I believe. Interestingly, around the same time, Alpha technology showed up in both major vendors's products: AMD's new frontside bus at that time was based on the FSB of the canceled EV8.
– Jörg W Mittag
Jan 26 at 15:39
2
2
The comment about the alpha doing binary translation is not strictly true, unusually for a CPU, the alpha allowed the OS to load different microcode, and, at least some, of the x86 emulation was done in the CPU itself using this technique. The contemporaneous linux kernels have the gory details, if you're interested. Better still the Alpha boot rom (like the BIOS) could also use this feature so regular x86 option roms (like SCSI controllers, and video bioses) worked on an Alpha systems.
– james
Jan 26 at 20:24
The comment about the alpha doing binary translation is not strictly true, unusually for a CPU, the alpha allowed the OS to load different microcode, and, at least some, of the x86 emulation was done in the CPU itself using this technique. The contemporaneous linux kernels have the gory details, if you're interested. Better still the Alpha boot rom (like the BIOS) could also use this feature so regular x86 option roms (like SCSI controllers, and video bioses) worked on an Alpha systems.
– james
Jan 26 at 20:24
1
1
@james are you referring to PALcode by any chance? As I understand it (and the last time I talked to an Alpha designer about this was twenty-odd years ago, so I might be wrong), PALcode is used to handle system initialisation, context switching, interrupt dispatching, cache management etc.; while it can take care of some instruction emulation, that’s intended for the optional instructions in the Alpha architecture, not for emulating a different architecture altogether.
– Stephen Kitt
Jan 27 at 15:45
@james are you referring to PALcode by any chance? As I understand it (and the last time I talked to an Alpha designer about this was twenty-odd years ago, so I might be wrong), PALcode is used to handle system initialisation, context switching, interrupt dispatching, cache management etc.; while it can take care of some instruction emulation, that’s intended for the optional instructions in the Alpha architecture, not for emulating a different architecture altogether.
– Stephen Kitt
Jan 27 at 15:45
1
1
@StephenKitt - I spun up an old tape cartridge looking for the source of em86 and libem486.a but didn't find it (that was the linux helper binary that was syscall compatible with ia32) - I dimly remember a paper about how they'd cunningly added palcode instructions to do some of the x86 emulation, there are some alpha greybeards around here - I'll ask them.
– james
Jan 27 at 15:53
@StephenKitt - I spun up an old tape cartridge looking for the source of em86 and libem486.a but didn't find it (that was the linux helper binary that was syscall compatible with ia32) - I dimly remember a paper about how they'd cunningly added palcode instructions to do some of the x86 emulation, there are some alpha greybeards around here - I'll ask them.
– james
Jan 27 at 15:53
|
show 4 more comments
Thanks for contributing an answer to Retrocomputing Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f8971%2fdid-windows-nt-4-emulate-x86-on-non-intel-platforms%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown