It was thus said that the Great Bill Pechter once stated:
The actual idea was to create or assist with the
creation of a completely
"free" (GNU?) implementation of VMS that "looks and feels" just like
the
original.
The next step was to port this version of FreeVMS to i386, VAX, and AXP.
I've seen a few projects that have started or have stopped that attempt to
achieve similar goals.
The problem is VMS uses 4 separate CPU modes, besides the Unix kernel
and user modes which makes it difficult if not impossible to get
it right on x86.
What do you mean by that? The 286 and above have four levels of
protection, from ring 0 (all instructions available, all resources visible)
to ring 3 (only common registers and instructions available, no (or very
limited) resources visible). Most Unix systems for the 386 and above use 0
for kernel, 3 for user and don't bother to use the other two levels. OS/2
may have used the other rings though (it's been over 10 years since I've
used OS/2).
Then there are the operating modes supported on the 286 and above: real
mode (which looks like a very fast 8086) and protected mode. The 386 and
above also have a virtual 8086 mode, which allows you to run real mode code
under a protected OS---the real mode is virtualized (to an extent, I don't
think it's pure vitualizasion like you can get on the IBM 360 line). There
is an undocumented mode---real-32 bit (where the CPU is in 32-bit mode, but
not running protected) but that's a hack and is probably not recomended.
The 386 also has a paging system (in addition to a segmentation system but
I'm not going into the details of that) so I don't see why VMS couldn't run
on the 386. I do know that the VAX architecture had four address spaces
(P0, P1, System, unused) and that can be simulated.
-spc (I think you are talking about kernel, executive, supervisor and
user, which map quite well to rings 0 to 3 on the 386)