Hi
I had this doubt about high and low mem. I have read that for a 32 bit processor, generally the way linux divides virtual mem of 2^32=4GB, is that it simply keeps the higher 3GB as high mem and the lowest 1GB as low mem. Low mem generally being kept for the kernel and high mem for the user space. Now, there are kernel logical addresses, that have a one to one mapping to physical addresses .... also the kernel code and data structures like page tables also need to be kept in this 1GB, hence max mem that linux can deal with is <1GB.
Kernel cannot deal with any address not mapped to its virtual address space(that is the lowest 1 GB on the system). So any address from high mem that needs to be handled by the kernel needs to be first mapped to kernel's virtual address space using kmap.
1) Does this mean that linux cannot wrk with system with a physical mem greater than 1 GB ?
2) what amount of this 1 GB is dedicated to logical addresses and what amount to kernel virtual addresses ?
3) Since the user space mem is always high mem, what happens when I do a int i; int *p=&i; *p++; in a user space program.
thanks
Yahoo! India Matrimony: Find your life partner online.