What's inside the kernel part of virtual memory of 64 bit linux processes? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) 2019 Community Moderator Election Results Why I closed the “Why is Kali so hard” questionWhat's the use of having a kernel part in the virtual memory space of Linux processes?Misleading explanation of Virtual Memory in TLDPHow does the CPU knows which physical address is mapped to which virtual address?How is Physical Memoy mapped in Kernal space?Linux Kernel memory management quoteDo the virtual address spaces of all the processes have the same content in their “Kernel” parts?Does Linux not use segmentation but only paging?What's the use of having a kernel part in the virtual memory space of Linux processes?What exactly happens in virtual memory when I call a function like printf in Linux?Is there a standard for the Linux user-space memory map?Can a user mode program access the kernel memory and the memory of other processes?
Why didn't this character "real die" when they blew their stack out in Altered Carbon?
Why was the term "discrete" used in discrete logarithm?
illegal generic type for instanceof when using local classes
Withdrew £2800, but only £2000 shows as withdrawn on online banking; what are my obligations?
Using audio cues to encourage good posture
Can a non-EU citizen traveling with me come with me through the EU passport line?
Apollo command module space walk?
How to find out what spells would be useless to a blind NPC spellcaster?
Single word antonym of "flightless"
What exactly is a "Meth" in Altered Carbon?
Check which numbers satisfy the condition [A*B*C = A! + B! + C!]
Extract all GPU name, model and GPU ram
Why aren't air breathing engines used as small first stages
Storing hydrofluoric acid before the invention of plastics
Can I cast Passwall to drop an enemy into a 20-foot pit?
At the end of Thor: Ragnarok why don't the Asgardians turn and head for the Bifrost as per their original plan?
How widely used is the term Treppenwitz? Is it something that most Germans know?
Fundamental Solution of the Pell Equation
Echoing a tail command produces unexpected output?
Is there a (better) way to access $wpdb results?
How to bypass password on Windows XP account?
Why do we bend a book to keep it straight?
Do I really need recursive chmod to restrict access to a folder?
Why is my conclusion inconsistent with the van't Hoff equation?
What's inside the kernel part of virtual memory of 64 bit linux processes?
Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)
2019 Community Moderator Election Results
Why I closed the “Why is Kali so hard” questionWhat's the use of having a kernel part in the virtual memory space of Linux processes?Misleading explanation of Virtual Memory in TLDPHow does the CPU knows which physical address is mapped to which virtual address?How is Physical Memoy mapped in Kernal space?Linux Kernel memory management quoteDo the virtual address spaces of all the processes have the same content in their “Kernel” parts?Does Linux not use segmentation but only paging?What's the use of having a kernel part in the virtual memory space of Linux processes?What exactly happens in virtual memory when I call a function like printf in Linux?Is there a standard for the Linux user-space memory map?Can a user mode program access the kernel memory and the memory of other processes?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
So i came upon this question :
What's the use of having a kernel part in the virtual memory space of Linux processes?
and based on the answer and the comments on the answer :
the kernel memory map includes a direct mapping of all physical memory, so everything in memory appears there; it also includes separate mappings for the kernel, modules etc., so the physical addresses containing the kernel appear in at least two different mappings
so is this true? i couldn't find any source or reference for this, and why would it include a map of the entire physical memory and then again have a separate mapping of kernel modules? isn't that redundant?
so can someone explain in a simple manner what is inside the kernel part of virtual memory of processes in 64 bit Linux? and please provide a source for the answer! because i couldn't find anything related to this in any book or paper.
thanks!
kernel process virtual-memory 64bit elf
New contributor
add a comment |
So i came upon this question :
What's the use of having a kernel part in the virtual memory space of Linux processes?
and based on the answer and the comments on the answer :
the kernel memory map includes a direct mapping of all physical memory, so everything in memory appears there; it also includes separate mappings for the kernel, modules etc., so the physical addresses containing the kernel appear in at least two different mappings
so is this true? i couldn't find any source or reference for this, and why would it include a map of the entire physical memory and then again have a separate mapping of kernel modules? isn't that redundant?
so can someone explain in a simple manner what is inside the kernel part of virtual memory of processes in 64 bit Linux? and please provide a source for the answer! because i couldn't find anything related to this in any book or paper.
thanks!
kernel process virtual-memory 64bit elf
New contributor
add a comment |
So i came upon this question :
What's the use of having a kernel part in the virtual memory space of Linux processes?
and based on the answer and the comments on the answer :
the kernel memory map includes a direct mapping of all physical memory, so everything in memory appears there; it also includes separate mappings for the kernel, modules etc., so the physical addresses containing the kernel appear in at least two different mappings
so is this true? i couldn't find any source or reference for this, and why would it include a map of the entire physical memory and then again have a separate mapping of kernel modules? isn't that redundant?
so can someone explain in a simple manner what is inside the kernel part of virtual memory of processes in 64 bit Linux? and please provide a source for the answer! because i couldn't find anything related to this in any book or paper.
thanks!
kernel process virtual-memory 64bit elf
New contributor
So i came upon this question :
What's the use of having a kernel part in the virtual memory space of Linux processes?
and based on the answer and the comments on the answer :
the kernel memory map includes a direct mapping of all physical memory, so everything in memory appears there; it also includes separate mappings for the kernel, modules etc., so the physical addresses containing the kernel appear in at least two different mappings
so is this true? i couldn't find any source or reference for this, and why would it include a map of the entire physical memory and then again have a separate mapping of kernel modules? isn't that redundant?
so can someone explain in a simple manner what is inside the kernel part of virtual memory of processes in 64 bit Linux? and please provide a source for the answer! because i couldn't find anything related to this in any book or paper.
thanks!
kernel process virtual-memory 64bit elf
kernel process virtual-memory 64bit elf
New contributor
New contributor
edited 4 hours ago
OneAndOnly
New contributor
asked 4 hours ago
OneAndOnlyOneAndOnly
62
62
New contributor
New contributor
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
The kernel’s memory map on x86-64 is documented in the kernel itself. The kernel maps
- user-space (for the current process)
- PTI data structures
- all the physical memory
- the kernel’s data structures, in various blocks, with holes for ASLR
- the kernel itself
- its modules
Having a full mapping of physical memory is convenient, but its relevance is debated compared to the security risks it creates, and its address-space burden (since physical memory is effectively limited to half the address space as a result; this prompted the recent expansion to five-level page tables with 56-bit addresses).
add a comment |
“64bit memory space is big. You just won't believe how vastly, hugely, mind-bogglingly big it is. I mean, you may think it's a long way down the road to the chemist's, but that's just peanuts to 64bit memory space.”
It is good to keep thinks simple.
Therefore it was decided to allocated half for direct mapping the hardware, just one-to-one mapping of hardware addresses. And half for virtual mapping. It will be cheaper to have something in there twice, than not. Imagine having conditional code to exclude stuff from the direct mapping if it is in the other. And imagine how complex things will become, now not everything is in the direct mapping, so we seed a lot more conditional code, to find what we want. Is is just simpler to map it twice. (this may be over simplified, and some detail may be wrong, but the general idea is correct.)
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
OneAndOnly is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f512849%2fwhats-inside-the-kernel-part-of-virtual-memory-of-64-bit-linux-processes%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
The kernel’s memory map on x86-64 is documented in the kernel itself. The kernel maps
- user-space (for the current process)
- PTI data structures
- all the physical memory
- the kernel’s data structures, in various blocks, with holes for ASLR
- the kernel itself
- its modules
Having a full mapping of physical memory is convenient, but its relevance is debated compared to the security risks it creates, and its address-space burden (since physical memory is effectively limited to half the address space as a result; this prompted the recent expansion to five-level page tables with 56-bit addresses).
add a comment |
The kernel’s memory map on x86-64 is documented in the kernel itself. The kernel maps
- user-space (for the current process)
- PTI data structures
- all the physical memory
- the kernel’s data structures, in various blocks, with holes for ASLR
- the kernel itself
- its modules
Having a full mapping of physical memory is convenient, but its relevance is debated compared to the security risks it creates, and its address-space burden (since physical memory is effectively limited to half the address space as a result; this prompted the recent expansion to five-level page tables with 56-bit addresses).
add a comment |
The kernel’s memory map on x86-64 is documented in the kernel itself. The kernel maps
- user-space (for the current process)
- PTI data structures
- all the physical memory
- the kernel’s data structures, in various blocks, with holes for ASLR
- the kernel itself
- its modules
Having a full mapping of physical memory is convenient, but its relevance is debated compared to the security risks it creates, and its address-space burden (since physical memory is effectively limited to half the address space as a result; this prompted the recent expansion to five-level page tables with 56-bit addresses).
The kernel’s memory map on x86-64 is documented in the kernel itself. The kernel maps
- user-space (for the current process)
- PTI data structures
- all the physical memory
- the kernel’s data structures, in various blocks, with holes for ASLR
- the kernel itself
- its modules
Having a full mapping of physical memory is convenient, but its relevance is debated compared to the security risks it creates, and its address-space burden (since physical memory is effectively limited to half the address space as a result; this prompted the recent expansion to five-level page tables with 56-bit addresses).
answered 4 hours ago
Stephen KittStephen Kitt
182k25415495
182k25415495
add a comment |
add a comment |
“64bit memory space is big. You just won't believe how vastly, hugely, mind-bogglingly big it is. I mean, you may think it's a long way down the road to the chemist's, but that's just peanuts to 64bit memory space.”
It is good to keep thinks simple.
Therefore it was decided to allocated half for direct mapping the hardware, just one-to-one mapping of hardware addresses. And half for virtual mapping. It will be cheaper to have something in there twice, than not. Imagine having conditional code to exclude stuff from the direct mapping if it is in the other. And imagine how complex things will become, now not everything is in the direct mapping, so we seed a lot more conditional code, to find what we want. Is is just simpler to map it twice. (this may be over simplified, and some detail may be wrong, but the general idea is correct.)
add a comment |
“64bit memory space is big. You just won't believe how vastly, hugely, mind-bogglingly big it is. I mean, you may think it's a long way down the road to the chemist's, but that's just peanuts to 64bit memory space.”
It is good to keep thinks simple.
Therefore it was decided to allocated half for direct mapping the hardware, just one-to-one mapping of hardware addresses. And half for virtual mapping. It will be cheaper to have something in there twice, than not. Imagine having conditional code to exclude stuff from the direct mapping if it is in the other. And imagine how complex things will become, now not everything is in the direct mapping, so we seed a lot more conditional code, to find what we want. Is is just simpler to map it twice. (this may be over simplified, and some detail may be wrong, but the general idea is correct.)
add a comment |
“64bit memory space is big. You just won't believe how vastly, hugely, mind-bogglingly big it is. I mean, you may think it's a long way down the road to the chemist's, but that's just peanuts to 64bit memory space.”
It is good to keep thinks simple.
Therefore it was decided to allocated half for direct mapping the hardware, just one-to-one mapping of hardware addresses. And half for virtual mapping. It will be cheaper to have something in there twice, than not. Imagine having conditional code to exclude stuff from the direct mapping if it is in the other. And imagine how complex things will become, now not everything is in the direct mapping, so we seed a lot more conditional code, to find what we want. Is is just simpler to map it twice. (this may be over simplified, and some detail may be wrong, but the general idea is correct.)
“64bit memory space is big. You just won't believe how vastly, hugely, mind-bogglingly big it is. I mean, you may think it's a long way down the road to the chemist's, but that's just peanuts to 64bit memory space.”
It is good to keep thinks simple.
Therefore it was decided to allocated half for direct mapping the hardware, just one-to-one mapping of hardware addresses. And half for virtual mapping. It will be cheaper to have something in there twice, than not. Imagine having conditional code to exclude stuff from the direct mapping if it is in the other. And imagine how complex things will become, now not everything is in the direct mapping, so we seed a lot more conditional code, to find what we want. Is is just simpler to map it twice. (this may be over simplified, and some detail may be wrong, but the general idea is correct.)
answered 4 hours ago
ctrl-alt-delorctrl-alt-delor
12.5k52662
12.5k52662
add a comment |
add a comment |
OneAndOnly is a new contributor. Be nice, and check out our Code of Conduct.
OneAndOnly is a new contributor. Be nice, and check out our Code of Conduct.
OneAndOnly is a new contributor. Be nice, and check out our Code of Conduct.
OneAndOnly is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f512849%2fwhats-inside-the-kernel-part-of-virtual-memory-of-64-bit-linux-processes%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown