执⾏⼀个系统调用时, OS 发⽣的过程,越详细越好
1. 执⾏⽤户程序(如:fork)
2. 根据glibc中的函数实现,取得系统调⽤号并执⾏int $0x80产⽣中断。
3. 进⾏地址空间的转换和堆栈的切换,执⾏SAVE_ALL。(进⾏内核模式)
4. 进⾏中断处理,根据系统调⽤表调⽤内核函数。
5. 执⾏内核函数。
6. 执⾏ RESTORE_ALL 并返回⽤户模式
Last updated
1. 执⾏⽤户程序(如:fork)
2. 根据glibc中的函数实现,取得系统调⽤号并执⾏int $0x80产⽣中断。
3. 进⾏地址空间的转换和堆栈的切换,执⾏SAVE_ALL。(进⾏内核模式)
4. 进⾏中断处理,根据系统调⽤表调⽤内核函数。
5. 执⾏内核函数。
6. 执⾏ RESTORE_ALL 并返回⽤户模式
Last updated