Re: Doubt regarding memory

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

 



On 2/26/07, Rajat Jain <rajat.noida.india@xxxxxxxxx> wrote:
On 2/26/07, Mansha Linux <mansha.linux@xxxxxxxxx> wrote:
>
>
> On 2/25/07, Jarod Wang <mailtojarod@xxxxxxxxx> wrote:
> > 2007/2/25, Mansha Linux <mansha.linux@xxxxxxxxx>:
> > > hi all,
> > >
> > >  For a 32-bit machine, there is total 4GB of memory(Physiacl addresses).
> So
> > > in that 1 GB for Kernel and 3GB for User Space.
> > The kernel (on the x86 architecture, in the default configuration)
> > splits the 4-GB *virtual address space* between user-space and the
> > kernel; the same set of mappings is used in both contexts. A typical
> > split dedicates 3 GB to user space, and 1 GB for kernel space.
> >
> > >  So, kernel won't access that 3GB of memory, right?
> > >  All the kernel code is exist in 1 GB of memory.... CMIIW
> > All the kernel code is linked using 0xC0000000(3GB, also virtual
> > address) as the base address.
> >
> > >  So, my doubt is  the
> > > DMA(0-16MB),NORMAL(16-896MB),HIGH(896MB-) memory
> divided
> > > within this 4GB of memory ,right?
> > Within 4GB physical addresses space.
> >
> > >  if we allocate the pages using alloc_pages, from which region the pages
> are
> > > allocated for the kernel modules. is it from Physical RAM memory or from
> 1GB
> > > of kernel space ??
> > From physical memory.
> >
> >
> >
> > --
> > Best regards,
> >
> > Jarod Wang
> > ----
> > Wuhan University of Technology, Wuhan, P. R. China
> >
>
> Jarod thanks for ur reply
>
> >The kernel (on the x86 architecture, in the default configuration)
> >splits the 4-GB *virtual address space* between user-space and the
> >kernel; the same set of mappings is used in both contexts. A typical
> >split dedicates 3 GB to user space, and 1 GB for kernel space.
>
> Q->it means  for a 32-bit machine all 4GB space is Virtual Addresses not
> Physical addresses ?
When you are referring to a 32-bit machine, this means its _Data Path_
is 32-bit wide not address bus.......hence you cannot say that on a
32-bit machine you can connect 4G RAM only, its the _Address Bus_
width which decides the bytes of memory you can connect to your CPU.
4G virtual memory limitation has come from the design of memory
management unit on CPU.

On some intel like CPUs there is a option of selectively increasing
the width of address bus using PAE bit with Rajat has pointed out.
>

You CAN connect physical memory upto the maximum size your
architecture allows (For 32 bit CPU, this is generally 4GB memory - It
can be more with mechanisms like PAE). The virtual address space will
always be 4 GB though.

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ



--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at 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