如题,有些地方不太明白。
linux中每个进程的内核栈是8 KB,但为什么说所有进程共享内核空间,每个进程的内核栈与整个内核空间有什么关系?
感谢!!
如题,有些地方不太明白。
linux中每个进程的内核栈是8 KB,但为什么说所有进程共享内核空间,每个进程的内核栈与整个内核空间有什么关系?
感谢!!
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答805 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
每个进程的内核栈是独立的,存放在每个task上,记录该进程陷入内核时的内核栈,但它们在地址空间上是共享的!
打个比方 进程A的内核栈(虚拟或物理)地址
0x4000 - 0x6000
,进程B的内核栈(虚拟或物理)0x8000 - 0x10000
它们是不重叠的!
用户栈就不一样的,它们的用户栈 虚拟地址空间完全可以是重叠的