From: Rajendra <rpm@solidcore.com>
Cc: kernelnewbies <kernelnewbies@nl.linux.org>,
Linux Newbie <linux-newbie@vger.kernel.org>
Subject: Re: Why "high memory" in x86?
Date: Wed, 02 Aug 2006 09:55:16 +0530 [thread overview]
Message-ID: <44D0292C.8000602@solidcore.com> (raw)
In-Reply-To: <20060801135147.84843.qmail@web34609.mail.mud.yahoo.com>
When protection and paging is switched on the processor, it requires valid
page tables entry for every page that is accessed. Now there are only 4 GB
addresses that are available, so we have to divide it in such a way that the
kernel as well as the user can access it. So what we do is we say that first
three GB address will always be user space address. The page table entries
of these will keep on changing as the process loads, allocates and
deallocates
memory. While the last 1 GB i.e. from 3 GB to 4 GB is given to kernel and
it's page table entries are always present in the processor page tables.
The kernel
address are hence identity mapped i.e. phy_addr = (virt_addr << 4) >>
4. Since
the kernel is the program that manages all the resources including
memory, so it needs
access to all the memory that is there in the system, so for regions of
memory
above 1 GB (physical), we use special mechanism and call it as high memory.
~rpm
Dave B. Sharp wrote:
>Yes, but why is only 1GB of memory "available"? The
>whole address space is available to other kernels.
>
> Dave Sharp
>
>--- Rajendra <rpm@solidcore.com> wrote:
>
>
>
>>The reason for the high memory is this.
>>
>> o Linux divides the address space into two parts,
>>user and kernel.
>> o Kernel gets 1 GB of address space while user
>>gets 3GB virtual
>>address space.
>> o Kernel needs to access all of the memory so
>>ideally it needs 4 GB
>>of virtual addresses.
>> o But since only 1 GB (i.e. beyond 0xc000 0000)
>>is available, so we
>>call the rest as
>> high memory (approx 3 GB)
>> o The high memory is accessed using temp. page
>>table entries that map
>>the high memory
>> areas in kernel address space.
>> o The high memory region is mostly allocated to
>>the user space programs.
>>
>>hope it answers the question !
>>
>>regd,
>>~rpm
>>Rajat Jain wrote:
>>
>>
>>
>>>Hi list,
>>>
>>>I recently read that the concept of "High Memory"
>>>
>>>
>>was introduced
>>
>>
>>>because certain architectures are capable of
>>>
>>>
>>physically addressing
>>
>>
>>>larger amounts of memory than they can virtually
>>>
>>>
>>address (physical
>>
>>
>>>address space > virtual address space). I also
>>>
>>>
>>read that nowadays
>>
>>
>>>"high Memory" exists only in x86.
>>>
>>>1) Why is virtual memory > 896 MB on x86
>>>
>>>
>>designated as high memory?
>>
>>
>>>AFAIK x86 has 4 GB of virtual address space
>>>
>>>
>>(=physical address space?)
>>
>>
>>>2) Has the "high Memory" concept got anything to
>>>
>>>
>>do with PAE (Page
>>
>>
>>>Address Extention) feature of x86?
>>>
>>>3) Do any other architectures than x86 have the
>>>
>>>
>>concept of high memory?
>>
>>
>>>TIA,
>>>
>>>Rajat
>>>-
>>>To unsubscribe from this list: send the line
>>>
>>>
>>"unsubscribe
>>
>>
>>>linux-newbie" in
>>>the body of a message to majordomo@vger.kernel.org
>>>More majordomo info at
>>>
>>>
>>http://vger.kernel.org/majordomo-info.html
>>
>>
>>>Please read the FAQ at
>>>
>>>
>>http://www.linux-learn.org/faqs
>>
>>
>>-
>>To unsubscribe from this list: send the line
>>"unsubscribe linux-newbie" in
>>the body of a message to majordomo@vger.kernel.org
>>More majordomo info at
>>http://vger.kernel.org/majordomo-info.html
>>Please read the FAQ at
>>http://www.linux-learn.org/faqs
>>
>>
>>
>
>
>__________________________________________________
>Do You Yahoo!?
>Tired of spam? Yahoo! Mail has the best spam protection around
>http://mail.yahoo.com
>-
>To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at http://vger.kernel.org/majordomo-info.html
>Please read the FAQ at http://www.linux-learn.org/faqs
>
>
>
-
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs
next prev parent reply other threads:[~2006-08-02 4:25 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-01 5:48 Why "high memory" in x86? Rajat Jain
2006-08-01 9:18 ` Rajendra
2006-08-01 13:51 ` Dave B. Sharp
2006-08-02 4:25 ` Rajendra [this message]
2006-08-02 16:37 ` Ritesh Kumar
2006-08-03 5:20 ` Rajendra
2006-08-03 5:59 ` Rajat Jain
2006-08-03 10:52 ` Rajendra
2006-08-03 11:55 ` Daniel Rodrick
2006-08-03 18:44 ` Rahul Iyer
2006-08-03 6:35 ` Ritesh Kumar
[not found] ` <20060801090248.4aad8a39@thomas.toulouse>
2006-08-01 9:53 ` Rajat Jain
2006-08-01 12:09 ` Rajat Jain
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=44D0292C.8000602@solidcore.com \
--to=rpm@solidcore.com \
--cc=kernelnewbies@nl.linux.org \
--cc=linux-newbie@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.