virtualization - Why do we have memory zones in linux? -


i reading on page that:

because of hardware limitations, kernel cannot treat pages identical. pages, because of physical address in memory, cannot used tasks. because of limitation, kernel divides pages different zones.

i wondering hardware limitation. can please explain me hardware limitation , give example. well, there software guide intel explaining this?

also, read virtual memory divided 2 parts 1gb kernel space , 3gb user space. why give 1gb space in virtual space of processes kernel? how mapped actual physical pages? can please point me clean text explaining this?

thanks in advance.

the hardware limitations concern old devies. example, have zone_dma, 0 - 16mb. e.g. needed older isa devices, not capable of adressing above 16mb limit. have zone_normal, of kernel operations take place , adressed permanently kernels adress space.

the 1gb , 3gb split simple. have virtual adresses here, application, memory adress starts @ 0x00000000, reserved 1st gb of kernel stuff. why done pretty simple: have kernel mode , user mode. in kernel mode allowed use system calls. if not have kernel memory mapped virtual adress space, have context switch trap kernel mode (context switch: save current context memory, load context memory -> time consuming). kernel-mode operations can take place in same virtual adress space, dont need switch context to, example, allocate new memory or other system call.


Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -