In gnumach/i386/include/mach/i386/vm_param.h:
/* User address spaces are 3GB each,
   starting at virtual and linear address 0.  */
#define VM_MIN_ADDRESS          ((vm_offset_t) 0)
#define VM_MAX_ADDRESS          ((vm_offset_t) 0xc0000000)

In gnumach/i386/i386/vm_param.h:
/* The kernel address space is 1GB, starting at virtual address 0.  */
#define VM_MIN_KERNEL_ADDRESS   ((vm_offset_t) 0x00000000)
#define VM_MAX_KERNEL_ADDRESS   ((vm_offset_t) 0x40000000)

If user address space is 3 GB and kernel address space is 1 GB, then the whole vm space is 4 GB, right? However, user address space and kernel address space both start at 0x00000000. How can this happen? What exactly is 'linear space' and why are there two kinds of 'spaces'?

Thanks,
Constantine


_______________________________________________
Bug-hurd mailing list
Bug-hurd@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-hurd

Reply via email to