[Info-vax] OpenVMS.Org quick pool
Johnny Billquist
bqt at softjar.se
Thu Aug 23 22:49:37 EDT 2012
On 2012-08-23 22:28, Stephen Hoffman wrote:
> On 2012-08-23 18:05:57 +0000, Johnny Billquist said:
>
>> No point. You cannot address more than 64K with a PDP-11, so even if
>> you had 1 MB, you could not address it.
>
> You're referring to the 16-bit addressing design of the PDP-11, most
> likely.
Indeed.
> Later PDP-11 systems support 22-bit memory addressing.
Yes. But the PDP-11 compatibility mode/AME under VAX didn't do that.
> And shuffling mapping tables also permitted accessing more than 16-bits
> of memory (though not all at once), using windowing.
Yes. You also mapped in shared libraries and other stuff by using the
same features in RSX. I'm not 100% sure at this point, but I don't think
that VMS supported the directives that did any memory mappings under
RSX. (And you obviously can't do it from a user program without the
system directives.)
But please correct me if I'm wrong.
The MMU on the PDP-11 actually have pages. Each page can map anywhere in
the full physical memory space. But a page on a PDP-11 is 8K, compared
to the 512 bytes on a VAX. And you refer to those pages even in user
programs using the mapping directives. You basically tell the system to
remap one or more pages to a region, and an offset within that region.
Regions are in turn acquired either by asking the system for them by
name, or implicitly when you create them, in which case they can be
anonymous (without any name).
Now, how you would emulate this under VMS seems a bit tricky to me. I
guess you could basically extend the task each time a region is created,
and give a region ID back to the RSX program which you keep around in a
map, along with a pointer to where in the larger process memory space
that region is created. And then do a remapping in VMS of one part of
your memory space (matching one or more PDP-11 memory pages), to another
part of your memory space, where you have your region. I can maybe see
that as possible. Named regions seems more unlikely to ever have been
possible. However, remapping your own memory space to point at another
part of your own memory space... I guess that should be doable in VMS?
> The same basic window-mapping hackery was performed as far back as Apple
> II systems and very likely before; it was fairly typical on any system
> with memory addressing constraints, and most everybody was using
> architecture-specific variations of the same basic techniques. With
> VMS, you can use non-file-backed sections, and a closely-related
> scatter-gather mapping was also a common technique for dealing with
> memory references on VMS drivers. Or you can mess more directly with
> the page tables.
In RSX, the memory remapping directives are very closely related to the
page tables... The actual memory regions you map against can be named.
They can also be backed by a file. But it's rather different than VMS I
guess, since the hardware works quite differently, as well as the OS.
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: bqt at softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
More information about the Info-vax
mailing list