系統調用軟中斷處理程序system_call分析
阿新 • • 發佈:2018-06-28
entry eight TE 總結 一個 tpi 更換 分享 進程
最近學習了系統調用的整個流程,這裏總結並記錄。同時作為學習孟寧老師的linux內核課程的作業。
唐建,《Linux內核分析》MOOC課程http://mooc.study.163.com/course/USTC-1000029000
1、概述
系統調用整個過程為:API——封裝例程——system_call——系統調用程序。
上一篇博客分析了用戶空間部分:API——封裝例程。本文主要分析system_call 的主要邏輯。
2、系統調用例子
上一篇文件我們測試了read和open 系統調用。本節我更換了一個簡單的系統調用getpid(sys_getpid)。
‘
可以看到,我們將系統調用處理函數斷住後,當使用系統調用,就會斷住。
3、system_call分析:D:\學習資料\linux\linux-3.18.6\linux-3.18.6\arch\x86\kernel\entry_32.S
system_call 是系統內核中的一段匯編代碼,我們無法打斷點跟蹤,所以這裏直接上代碼:
‘
4、總結
system_call主要流程:save_all——系統調用應用程序——restore_all
系統調用會引起進程上下文切換
系統調用軟中斷處理程序system_call分析