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. Etc. I recommend you "Understanding the Linux Virtual Memory Manager" - it's an enlightening read. With kind regards, Oliver Korpilla -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/