On 9/2/05, Vinay Kalkoti <kalkoti.vinay@xxxxxxxxx> wrote: > > On 9/2/05, Thayumanavar Sachithanantham <thayumker@xxxxxxxxx> wrote: > > > > If I am not wrong, kernel have its virtual address space which starts > > at 0x0 address. kernel virtual address space to mapped to linear > > pysical address space at PAGE_OFFSET > > > > > It's the other way around. In the 3G/1G virtual space split( of i386, > the virtual addresses 0-3G actually map to user space and the 3-4G is mapped > to kernel space, i. e, 1 G of virtual addresses are reserved for the kernel. > > > > > > Also initially during boot, a direct kernel virtual addresses to physical > addresses map exists. > > The 0th entry of the swapper_pg_dir which points to a page table entry > whose entries are all zero > > allowing a direct one to one mapping of the virtual and physical > addresses. > > > > 0-896 MB of the Physical RAM have mapped virtual addresses in the range 3 > to 4 G under the i386 architecture. > > The 1G of virtual addresses for kernel actually limits the maximum amount > of memory that the kernel can address. 0-3G limits the maximum address space > of a process. > > > > As far I am understanding,the output of /proc/iomem are all physical > adresses , i.e , the addresses that exist on the physical address pins of > the processor. This include the memory mapped PCI address space determined > by the BIOS > > > > Thayumanavar > > # if its a direct mapping from virtual addr to physical addr with > an offset, then we call it linear addr instead of virtual addr. I had > read it understanding linux kernel. > > > The main thing is that the ZONE_DMA which is from 0 to 16MB have direct one to one mapping of virtual and physical addresses ..... so in ZONE_DMA physical addresses exists and that was shown in the cat /proc/iomem .... this is actually for making ISA based cards/devices directly memory accessing and known as DMA memory .... And in general terms mostly Virtual and Linear addresses are same as in the 3G to 4G (Virtual memory) is directly mapped to the physical 0 - 896MB but above 896MB there isn't any direct mappings ....... and for accessing that greater than 896MB Memory (HIGHMEM) kernel creates temporary mappings with in its Virtual Addresses range .... And AFAIK specifically Linear Addresses are those which processor sees to go through the page tables to access physical memory and in kernel Linear and Virtual Addresses are same ...... (CMIIW) .... -- Fawad Lateef -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/