标签: linux stack kernel
每个用户空间进程是否存在内核堆栈和用户空间堆栈?如果两个堆栈都存在,那么每个用户空间进程应该有2个堆栈指针吗?
答案 0 :(得分:15)
在Linux中,每个任务(用户空间或内核线程)都有8kb或4kb的内核堆栈,具体取决于内核配置。确实存在单独的堆栈指针,但是在任何给定时间CPU中只有一个存在;如果用户空间代码正在运行,则用于异常或中断的内核堆栈指针由任务状态段指定,如果内核代码正在运行,则用户堆栈指针将保存在内核堆栈上的上下文结构中。 / p>