[TUHS] history of virtual address space

John R Levine via TUHS tuhs at tuhs.org
Wed Jan 21 04:24:35 AEST 2026


> On Mon, Jan 19, 2026 at 9:22 PM John Levine via TUHS <tuhs at tuhs.org> wrote:
>
>>
>>> Later we got the "kernel is high virtual with bit 31 set" -- when did that
>>> first happen?
>>
>> That's how VAX addressing worked.  User programs were in the low half
>> of the address space, the kernel in the high half.
>>
>
> It has nothing to do with how the VAX implements virtual addressing per
> se.  ...

The 1981 VAX Architecture Handbook that I have in my hand disagrees with 
you.  The Memory Management chapter says that the top half of the address 
space is the System (S) while the bottom half is Process.  Process is 
further divided into P0 which grows up from 0 and P1 which grows down from 
the middle.  There is one S page table which is in real memory.  The P0 
and P1 page tables are in S address space, giving the effect of two-level 
page tables.  Each page table is logically contiguous, with a base and 
length register for each.

The a.out program layout is the only one that makes sense on a Vax, code 
starts at zero, stack grows down from 2GB.

R's,
John


More information about the TUHS mailing list