Sujet : OS emulation [was Re: Bootcamp]
De : news (at) *nospam* alderson.users.panix.com (Rich Alderson)
Groupes : comp.os.vmsDate : 03. Jul 2025, 20:14:11
Autres entêtes
Organisation : PANIX Public Access Internet and UNIX, NYC
Message-ID : <mddv7o9ccjg.fsf_-_@panix5.panix.com>
References : 1 2 3 4 5
User-Agent : Gnus v5.7/Emacs 22.3
cross@spitfire.i.gajendra.net (Dan Cross) writes:
Too many levels to be certain who actually wrote the following quoted by Dan:
5) The idea of emulating one OS on another OS is questionable
in itself.
This really needs to be qualified, as it is common and has been
done for decades. Evaluation criteria must include a) the
complexity of the emulation target, and b) its alignment with
the existing system design.
Agreed.
Consider PA1050 on TOPS-20, for example: this was a type-2 hypervisor that
allowed the DECSYSTEM-20 to provide very faithful emulation of TOPS-10. But
TOPS-20 is argably closer to TOPS-10 than, say, VMS is to Linux.
Boggle.
Tops-10 and TENEX/TOPS-20 run on the same base hardware (the PDP-10), and
TOPS-20 shares part of its name with Tops-10, but other than that they are
entirely unrelated.
PA1050 (which was written by the BBN folks who created TENEX, the ancestor of
TOPS-20), emulates a subset of the system calls of Tops-10, in order to allow
utilities like the FORTRAN and COBOL compilers to run on an OS for which they
were not engineered. It does this by mapping a set of routines into the user
program which then make TOPS-20 system calls invisibly. These routines are
mapped in when the first Tops-10 system call (which is in essence an illegal
instruction that thereby triggers a trap to the monitor) is encountered in the
user program instruction stream.
PA1050 is, in this sense, not a hypervisor but something equivalent to the Wine
emulator on Linux ("Wine Is Not an Emulator", indeed).
And since TOPS-20 used a different mechanism for trapping into the executive
for system requests than TOPS-10, it was easy to distinguish between the two.
At the base level, no, it does not. It simply uses a different "illegal"
instruction to trigger the context switch from user mode to monitor mode than
does Tops-10.
On the other hand, things like gVisor, which emulates the Linux
kernel interface, are very complex and difficult to get right.
And of course the PDP-10 was a much simpler machine than x86_64.
Agreed.
-- Rich Alderson news@alderson.users.panix.com Audendum est, et veritas investiganda; quam etiamsi non assequamur, omnino tamen proprius, quam nunc sumus, ad eam perveniemus. --Galen