On 10/14/05, Oliver Korpilla <Oliver.Korpilla@xxxxxx> wrote: > Am Freitag, den 14.10.2005, 09:00 +0200 schrieb Roy Smith: > > Hi all, > > > > I understand what is the virtual memory of a process. > > every process gets 4Gb, in which its data, code, stack, etc.. resides. > > every process can access only its 4Gb via its page tables, > > which maps the virtual memory to the real physical one. > > > > but what is the KERNEL's virtual memory ? > > how come the kernel has a virtual memory, too ? like a process ? > > what does the /dev/kmem show ? > > isn't the kernel just a bunch of asynchronous functions, > > working without a memory descriptor ? > > First of all, the kernel adminstrates the devices. The device memory > needs to be accessed via the memory interface, as e.g. the PCI bus is > mapped into an address range. Remember: Virtual memory does not > necessarily mean RAM. > > Second, the kernel can access all of the computer's memory via its own > address space (and in the HIGHMEM case a window mapping), while a > process is limited due to memory protection. > > Thirdly, the kernel has data structures to maintain, most notably > buffers, caches, memory management and page tables. This requires > memory. > so does the kernel have page directory and tables of its own ? where does it keep them ? does it have any replacement for task->mm ? > > I recommend you "Understanding the Linux Virtual Memory Manager" - it's > an enlightening read. > > With kind regards, > Oliver Korpilla > > thanks ! Roy. -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/