Few comments below. Of course, if I'm wrong someone will correct me :) > 1. The memory in linux is maintained as pages of 4k. Page size is architecture dependent. It is normally 4k on i386. I say 'normally' because i386 supports larger (4M/2M) pages also. Linux kernel already uses this feature, and there is some code in the new 2.5.x mm that lets users allocate large pages. > 5. The vmalloc alloctor (ok no such thing as a vmalloc > allocator but it helps to understand) allocates > non-contiguoues kernel memory. vmalloc maps one or more physical pages to a virtually contiguous address range. The pages may or may not be physically contiguous, it doesn't matter. > 6. user-space memory is allocated usong the sys_brk() > which in-turn uses the slab allocator. > > iam a bit confused about the user space memory and > sys_brk. can some one please make me clear? sys_brk doesn't allocate memory as such. It just changes the end of data segment. In Linux mm data structure terms, this means either a new vma is added to the mm's vma list, or the start/end of an existing vma is altered. Slab allocator is not used to allocate user-space memory. User-space pages are faulted in as and when they are required. The page fault handling code verifies that the address that caused the page fault is valid (falls within start and end address of some vma) and calls the appropriate function to map in the page. Hope this helps, Ravi. __________________________________________________ Do You Yahoo!? Yahoo! Finance - Get real-time stock quotes http://finance.yahoo.com -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/