From some book I have, I have in my notes that the Linux kernel resides at 0xc00000000 on 32-bit systems, and is mapped into user space for performance reasons.

Is this accurate ? How can I verify this ?

Also, where does the kernel reside on 64-bit systems? Is it still at 0xc00000000, or somewhere else ?

  • This might help: users.nccs.gov/~fwang2/linux/lk_addressing.txt – Nykakin Jan 10 '13 at 12:36
  • I read somewhere that OS:s in general are placed low in memory, and this has to do with the placement of the interrupt vector. – Emanuel Berg Jan 11 '13 at 22:11
  • @EmanuelBerg, Where the interrupt vector is doesn't really matter. – vonbrand Jan 22 '13 at 0:38
  • @vonbrand: No, I agree... I'll find the source for that and be back at you, would be interesting to know. Perhaps for historical reasons, when memory access wasn't "random"? – Emanuel Berg Jan 22 '13 at 1:15

Right now it resides at a semi random location thanks to aslr (assuming you have that compiled in and with a 64 bit system there's no reason not to and since it's 2016 you should be running a 64 bit system.... if you are low on memory just run a 64 bit kernel + 32 bit userland)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.