执⾏⼀个系统调用时, OS 发⽣的过程,越详细越好

1. 执⾏⽤户程序(如:fork)

2. 根据glibc中的函数实现,取得系统调⽤号并执⾏int $0x80产⽣中断。

3. 进⾏地址空间的转换和堆栈的切换,执⾏SAVE_ALL。(进⾏内核模式)

4. 进⾏中断处理,根据系统调⽤表调⽤内核函数。

5. 执⾏内核函数。

6. 执⾏ RESTORE_ALL 并返回⽤户模式

Last updated