用户栈和内核栈

2016-4-22 chenhui 其他

current 是一个宏,这是一个很神奇的宏,无论你现在在什么时候,只要调用这个宏,就能得到当前进程的进程描述符。


关于 current 的一些知识,可阅读:Linux 的启动过程详解(汇编部分) 这篇文章对 current 的获取进程描述符的原理进行了大概的讲解,但只有这些是不够的,但如果把所以的东西都写在那里,又觉得啰嗦,所以我们需要通过本文来写完剩余的部分。


一个进程的栈分为用户栈和内核栈,用户栈就是在 程序的加载和运行 提到的那个栈,而内核栈就是上文提到的  thread_union 结构体的栈数组。他们的区别就是进程在用户空间时,sp 指向用户栈,否则就指向内核栈。


算了,不写了,太监

发表评论:

Copyright ©2015-2016 freehui All rights reserved