最佳答案:int中断,这样进入内核:应用程序调用系统调用,最终都是syscall,syscall实际上是发出一个int 80的软中断,并给出系统调用号。内核响应80中断,调入syscall中断处理函数,然后调用
int中断,这样进入内核:
应用程序调用系统调用,最终都是syscall,syscall实际上是发出一个int 80的软中断,并给出系统调用号。
内核响应80中断,调入syscall中断处理函数,然后调用GET_THREAD_INFO(%ebp),获取thread_info结构体,就拿到了内核栈空间。
此时已经进入内核栈,保存应用程序栈空间,返回时恢复使用。
后续根据系统调用号进入不同的处理函数进行处理。