[Info-vax] Baremetal emulators, was: Re: Alpha emulator for OSX

Stephen Hoffman seaohveh at hoffmanlabs.invalid
Mon Feb 8 11:13:48 EST 2016


On 2016-02-08 14:21:55 +0000, lists at openmailbox.org said:

> Very well said as usual. But is this an issue for OpenVMS users? Is 
> OpenVMS used for real-time applications?

There are many applications with latent dependencies on timing; that 
will fail when calls operate too quickly or too slowly.  These 
applications are arguably poorly written, but they can and do exist.

As one classic example of one of these timing dependencies: the DEC 
Pascal compiler had a timing dependency back in the VAX era.  With a 
sufficiently-fast VAX, the compiler would sometimes tip over with a 
stackdump.  This stackdump showed up during testing of the VAX 9000, 
with (IIRC) about a third of the compiles.   It turned out not to be a 
bug in the then-new VAX 9000 (cue much relief among the hardware team), 
but rather a case where the entire compile finished within the 
resolution of the clock, and some of the compilation-reporting code 
within the Pascal compiler failed with a divide-by-zero.

One of the device drivers I worked on tipped over after a MicroVAX 
update, as well.  The forks got tangled up over shared data; the 
sequencing had been reordered.   Threading can be subtle.

For those using hardware (and this is not applicable to AVT), various 
Q-bus devices were notorious for failing and needing ECOs for newer 
processors, as well.  A down-revision VCB02 graphics controller will 
work fine on KA630 (MicroVAX II processor) but will usually lock up if 
used on the faster KA650 (MicroVAX III, 3200, 3500).

Software is always dependent on timing.  Networking is one big heap of 
hopefully-not-interfering timers, all hopefully firing in the right 
order.   What happens when the timing changes... varies.

If the system timing changes unexpectedly due to something else 
happening "underneath", application code may fail.

As for the more general issues. there's also that somebody — AVT most 
likely, for this case — now has to maintain that Linux stack underneath 
the emulation.   With the more traditional definition of "bare metal", 
the only product patches that are necessary are specific to emulator 
issues.   With the AVT distros, you're still going to need Linux 
network stack and IP stack and kernel patches, probably also patches 
related to TLS (as the network connections are or should be encrypted) 
and maybe certificate updates, and those patches associated with any of 
the active management or logging services or other ports that might be 
open within the Linux portion of the stack.

This packaging with Linux does avoid the folks at AVT having to write 
and maintain their own operating system, networking stack and TLS 
implementation.     But now AVT (and you, being that you are ultimately 
responsible for your application) need to watch for applicable Linux 
patches.  One downside is that you may have to figure out how to 
"un-bare-metal" this emulator, if patches are no longer available from 
AVT for whatever reason.

This AVT monolithic packaging provides new for the folks interested in 
running an Alpha emulation natively on OS X, of course.  That you could 
VM and boot Windows or Linux or BSD was already mentioned.


-- 
Pure Personal Opinion | HoffmanLabs LLC 




More information about the Info-vax mailing list