[Info-vax] Virtual memory 101 (was Re: Android development...)

Stephen Hoffman seaohveh at hoffmanlabs.invalid
Wed Sep 24 10:11:26 EDT 2014


On 2014-09-24 11:43:41 +0000,   VAXman-  @SendSpamHere.ORG said:

> In article <54222358$0$24420$c3e8da3$f6268168 at news.astraweb.com>, JF 
> Mezei <jfmezei.spamnot at vaxination.ca> writes:
>> On 14-09-23 21:30, Stephen Hoffman wrote:
>> 
>>> On VAX and Alpha, the change-mode operation — an instruction on VAX, a
>>> PALcode call on Alpha — triggers what is called an exception, and the
>>> exception is then received and processed by the system service
>>> dispatcher, which looks at how it was called, and (it's a dispatcher,
>>> after all) dispatches to the system service.
>> 
>> So basically, the mode switches from user to either exec or kernel only 
>> when the process executes a particular opcode that triggers that 
>> exception, and the exception is granted or rejected based on where the 
>> instruction is located in memory ?
>> 
>> Is this grant or reject decision  properties given to the page of 
>> memory containing that code ? Or is there a page range that defines 
>> system space, and that range is specified in hardware specific physical 
>> memory location ?
> 
> On VAX and Alpha, no.
> On VAX, the CHMx instruction creates a trap which causes the change of 
> access mode to that of 'x' (User, Super, Exec, Kernel)
> On Alpha, CHMx is a PAL code providing, essentially, the same thing.
> It does not matter where in the address space the CHMx or CALL PAL_CHMx 
> are located.

All of which was included in the architecture documentation previously 
referenced.

That same architecture documentation will help you (JF) to a better and 
more general understanding of the implementation of both VAX and Alpha, 
as well; of details well beyond those that you are requesting now.

If you're inclined and want to experiment, you can implement your own 
CHMU-related software on VMS, too.  See the architecture documentation 
and the SYS$DCLCMH system service.

Reading the manuals to somebody is pretty boring.  And slow.

> Hoff's URL containing Ruth's discussion of SSI also contains details of
> the system service dispatch mechanism of each of the architectures.  I'd
> highly suggest you read that article and then, if you still have problems
> comprehending the vehicle which gets one to inner access mode, read the
> associated Internals and Data Structures manuals.

And if you (JF) do decide to read the IDSM and the architecture 
manuals, you'll be asking better questions, and you won't need to ask 
obvious questions.

Better questions are far more interesting to most folks, too.

Carrying this forward to something that's slightly more relevant to VMS 
going forward, there are reference manuals for Intel x86-64 
architecture available for download, as well as small operating systems 
that can demonstrate how the various architectural features can be 
used.  Neither VAX, Alpha nor Itanium being major foci for new 
open-source OS development, after all.  The ARM materials are a little 
more effort to acquire but AFAIK are available, once you sign up over 
there.  The ARMv8 64-bit materials would probably be the most 
interesting in the context of potential future VMS, as back-porting to 
32-bits is more effort than it'd be worth, if (when?) VSI might decide 
to port VMS to that architecture.  If you want to practice with how 
call gates might or would work with VMS, these (architecture manuals, 
IDSM, source listings) are your reference materials.


-- 
Pure Personal Opinion | HoffmanLabs LLC




More information about the Info-vax mailing list