[Info-vax] OpenVMS.Org quick pool

John E. Malmberg wb8tyw at qsl.network
Fri Aug 17 22:04:00 EDT 2012


On 8/17/2012 10:31 AM, Keith Parris wrote:
>
> I'm not privy to any plans, but thinking in terms of what's technically
> possible: Consider what you would have it you took the Ski Itanium CPU
> emulator (which lacks emulation of any platform hardware) and added
> enough code from HP VM to provide a platform environment which looks
> just like HP VM to the VMS instance inside (with the HP VM code adjusted
> for endian-ness, and to run on Linux instead of HP-UX). No changes would
> be required in OpenVMS I64 code for it to run inside such an environment.

The Ski emulator would only be needed if the HP VM was not running on 
Itanium.  And the HP VM would not still not provide what was needed. 
The SKI emulator would have to be further enhanced.  Based on the 
description on the project page, the SKI emulator appears to be only 
emulating the user mode instructions, not the stuff needed for the VMS 
kernel to run.  That would be way too much work.

There is a simpler (relatively) way:

The first step for this hack would be to get the SKI Emulator running on 
Alpha/VMS so that you could have it load up and run an IA64 VMS ELF 
image, and configure it to call VMS/ALPHA library routines and system 
services instead of trying to make Linux routine calls as it does now 
according to the documentation.

Once you got that working, you could then hack the VMS image activator 
to launch that emulator when you tried to run that type of an image 
instead of running your own launcher.

While at this point, you might think it was a waste of time to do this 
because you end up with something slower than the original, read on.

After all, what is available for VMS on Itanium that is not also 
available for VMS on Alpha?

You then either do what is needed to stabilize an open source Alpha 
Emulator like the ES40 so that it can run VMS reliably if that is needed 
for it, or partner with one or more of the commercial Alpha emulators, 
because you need a way to break out of emulation and call native code.

There you make the change so that the an emulated Alpha program can call 
routines compiled in the native x86-64 instruction set.  This is 
something like a CMX86 trap.  The emulator would then run the user-mode 
code as native.  You would need to have a way for the x86-64 code to 
call VMS/Alpha library routines and system services, just like above.

But now you have binaries running at the native x86-64 speed except when 
making library calls.

Now the literature for some of the advanced emulators are caching some 
translated Alpha/VAX code with native code to get the speed up, so 
commonly used sections of VMS would be effectively running in x86 mode.

Now if you still need Itanium compatibility, you compile the previously 
ported SKI emulator to be native x86.  Now you have a x86 VMS emulator 
that can run Alpha, IA64, and native X86-64 all at the same time.

It is possible that the emulator vendors could each come up with their 
own method of running user built x86-64 code, but that would require 
software vendors that wanted that speed boost to compile on all the 
different emulator platforms.  From the ISV point of view, it would be 
better if someone worked out a common interface and building 
instructions for this.

If you do not need to support Itanium/VMS binaries, then you can skip 
that part and still have Alpha/VMS + x86-64/VMS binaries running on the 
same hardware.

And HP could use this to gradually supply parts of Alpha/VMS that also 
came with precompiled x86-64 binaries.

This gives you both backward binary compatibility and the ability to 
take advantage of newer x86-64 processors.

Another component that is needed for the emulators is paravirtualized 
drivers.  These would be custom device drivers that would use that 
"CMX86" trap to turn the actual I/O processing to the emulator host 
instead of having to have the emulator spend cycles emulating the actual 
I/O hardware.

Regards,
-John
wb8tyw at qsl.network
Personal Opinion Only



More information about the Info-vax mailing list