login
Header Space

 
 

on process space

October 2, 2008 - 3:27pm
Submitted by oliver on October 2, 2008 - 3:27pm.
Linux

hi,

I have a few questions I couldn't quite get a handle on it ...

- what is it exactly when people talk about kernel address space? is it physical or virtual, does it refer to the 1G (low memory)?

- I read that user process's virtual address space (32 bit arch) was split 1G/3G, where kernel takes the 1G, and user process takes the 3G. why the 1G/3G split? why can't user process think the whole 4G is its own?

TIA,

oliver

answers

November 10, 2008 - 1:34pm
Kernel Eggspert (not verified)

Kernel address space is the portion of the virtual address space marked supervisor-mode-only. In many systems, it includes the first 700+ MB of RAM, mapped to virtual address 0xC0000000.

The split is usually referred to as 3G/1G. There have been experiments with the organization you suggest, 4G/4G. The problem with it is that switching between the user-mode and supervisor-mode address maps takes a lot of time because the poorly-designed Intel MMU requires that the TLBs be flushed. The PowerPC MMU, by contrast, includes the supervisor/user attribute in each TLB entry and so does not require this flush.

By dedicating the first 3G of a 32-bit virtual address space to user mode and the last 1G to kernel mode, the Intel MMU can describe both user and kernel spaces simultaneously.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
speck-geostationary