Re: address spaces in kernel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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/



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux