我知道内核空间是操作系统执行和提供服务的内存部分,用户空间是用户程序运行的地方。此外我知道进程在其地址空间中有自己的堆栈、堆、数据和文本段。但是我对用户堆栈和内核堆栈的概念感到困惑。我的问题是:
(我的问题可能很幼稚,但我会不断更新它们,以便更加专业)
- 我之前提到的进程堆栈是否由用户堆栈和内核堆栈组成?
- 内核堆栈是否是内核空间的一部分?
- 这两个堆栈在进程的虚拟内存地址中是否分开?
- 在代码段:
void main(){user_mode_call(); system_call()}
中,这两个调用的堆栈帧是否分别驻留在用户堆栈和内核堆栈中?
(我的问题可能很幼稚,但我会不断更新它们,以便更加专业)
cat / proc / $$ / maps
,参见[proc(5)](http://man7.org/linux/man-pages/man5/proc.5.html)。 - Basile Starynkevitch