[FreeVMS] Is this on the FreeVMS roadmap?

Graham Toal gtoal at gtoal.com
Dim 19 Aou 17:34:15 CEST 2007


Hi guys - I just dropped in to float an idea or at least see if it is
something that the FreeVMS team are already looking at...

One of my interests is in static binary translation - it started out
for me as a way of writing really fast video game emulations,
but it developed into something bigger and I'm interested now
in preserving legacy software as well; also restricting binary
translation to programs originally written in high level languages
does simplify some of the problems of translation that you would
otherwise get with hand-coded assembly programs.

I know that DEC wrote a binary translator for Vax -> Alpha
code, but as far as I know, that's the only one ever done for
Vax code.  I was wondering if y'all were considering a binary
translator for Vax code to generate binaries that would run
on FreeVMS?

Since you have the command line interpreter/program loader
under your control, you could easily intercept commands to
detect Vax binaries and hand them off to some other module
which would run them under some sort of emulation.

Because FreeVMS would be system call compatible with
OpenVMS, this ought to be a relatively easy hack...  start with
a Vax emulator core such as that from "simh" (tried and proven)
and intercept any calls out of the emulated binary so that
you call library routines in native mode.

Once a basic traditional emulator is working, you can then
either:

1) do dynamic binary translation (aka recompilation) on the fly

or

2) checksum the binary as you load it, and if it is a
recognised program (ie one that you have previously
translated into native code) throw it out of memory and
run the translated version instead.

A scheme like this would allow you to run old compiled third-party
Vax/VMS apps without requiring a VMS licence.  It might also be
helpful during FreeVMS development by allowing you to run a
complete system, replacing Vax executables with native ones
as you port more and more of the system.

For good measure, you could do the same scheme with
Alpha code.   Probably easier if anything.

I'm not volunteering to write a binary translator (at this time) but
I might be interested some time in the future.  Anyway, for
the first iteration, you need someone with VMS linker/loader
expertise, and a copy of simh, not someone with static binary
translation experience.  If you guys ever get that working, I'm
up for the next stage...

regards,


Graham Toal
PS this is a repost, as I didn't see it turn up in my mail or in the
archives the first time I tried to submit to the mailing list.


Plus d'informations sur la liste de diffusion FreeVMS