On 11/18/08, ruby <[EMAIL PROTECTED]> wrote: > hi, all > > One line I often read is each process is given a unique 32-bit or 64-bit > flat address space, known as process address space. > > So it sounds like a process have the whole space to itself and read or write > as it wants, but it is not entirely true since before it can read or write, > it must ask kernel for it, to get a so-called memory area (represented by > vm_area_struct), is this understanding correct?
There is a memory management subsystem of the kernel which checks if a read/write to memory is legitimate, allocates and deallocates memory for the user-space processes. ' vm_area_struct ' is a data-structure of the mm subsystem. > Another related question is when people talks about 1G/3G split, 1G is for > kernel, 3G is for process, are they referring to the same process address > space? Yes. > For each process's address space, in addition to its own code, data, shared > library code and data etc. are there any kernel code in it? that doesn't make > much sense. There is a clear cut seperation of the memory space between kernel and user space. -- Smart data structures and dumb code works a lot better than the other way around. -Eric S Raymond -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to [EMAIL PROTECTED] Please read the FAQ at http://kernelnewbies.org/FAQ
