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 zeroallowing 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 BIOSThayumanavar# 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.