Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
High memory
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Part of physical memory in a computer}} {{distinguish|High Memory Area}} {{more citations needed|date=October 2012}} '''High memory''' is the part of [[computer memory|physical memory]] in a [[computer]] which is not directly mapped by the [[page table]]s of its [[operating system]] [[kernel (operating system)|kernel]]. The phrase is also sometimes used as shorthand for the [[High Memory Area]], which is a different concept entirely. Some operating system kernels, such as [[Linux]], divide their [[virtual address space]] into two regions, devoting the larger to [[user space]] and the smaller to the kernel. In current [[32-bit]] [[x86]] computers, this commonly (although does not have to, as this is a configurable option) takes the form of a 3GB/1GB split of the 4 GB address space, so kernel virtual addresses start at 0xC0000000 and go to 0xFFFFFFFF. The lower 896 MB, from 0xC0000000 to 0xF7FFFFFF, is directly mapped to the kernel physical address space, and the remaining 128 MB, from 0xF8000000 to 0xFFFFFFFF, is used on demand by the kernel to be mapped to high memory. When in [[user mode]], translations are only effective for the first region, thus protecting the kernel from user [[computer program|programs]], but when in [[kernel mode]], translations are effective for both regions, thus giving the kernel an easy way to refer to the [[data buffer|buffers]] of processes—it just uses the process' own mappings.<ref>[https://lwn.net/Articles/75174/ Virtual Memory I: the problem]</ref> However, if the kernel needs to refer to physical memory for which a userspace translation has not already been provided, it has only 1 GB (for example) of virtual memory to use. On computers with a lot of physical memory, this can mean that there exists memory that the kernel cannot refer to directly—this is called high memory. When the kernel wishes to address high memory, it creates a mapping on the fly and destroys the mapping when done, which incurs a performance penalty. ==See also== * [[Physical Address Extension]] (PAE) ==References== <references /> == External links == * [http://linux-mm.org/HighMemory High Memory] * [https://lwn.net/Articles/75174/ Virtual Memory I: the problem] {{DEFAULTSORT:High Memory}} [[Category:X86 architecture]] [[Category:X86 memory management]] [[Category:Linux kernel]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Distinguish
(
edit
)
Template:More citations needed
(
edit
)
Template:Short description
(
edit
)