系统调用软中断处理程序system_call分析
最近學(xué)習(xí)了系統(tǒng)調(diào)用的整個(gè)流程,這里總結(jié)并記錄。同時(shí)作為學(xué)習(xí)孟寧老師的linux內(nèi)核課程的作業(yè)。
唐建,《Linux內(nèi)核分析》MOOC課程http://mooc.study.163.com/course/USTC-1000029000?
1、概述
系統(tǒng)調(diào)用整個(gè)過(guò)程為:API——封裝例程——system_call——系統(tǒng)調(diào)用程序。
? ? ? ?上一篇博客分析了用戶(hù)空間部分:API——封裝例程。本文主要分析system_call 的主要邏輯。
?2、系統(tǒng)調(diào)用例子
上一篇文件我們測(cè)試了read和open 系統(tǒng)調(diào)用。本節(jié)我更換了一個(gè)簡(jiǎn)單的系統(tǒng)調(diào)用getpid(sys_getpid)。
'
可以看到,我們將系統(tǒng)調(diào)用處理函數(shù)斷住后,當(dāng)使用系統(tǒng)調(diào)用,就會(huì)斷住。
3、system_call分析:D:\學(xué)習(xí)資料\linux\linux-3.18.6\linux-3.18.6\arch\x86\kernel\entry_32.S
? ?system_call 是系統(tǒng)內(nèi)核中的一段匯編代碼,我們無(wú)法打斷點(diǎn)跟蹤,所以這里直接上代碼:
?
'
?
4、總結(jié)
system_call主要流程:save_all——系統(tǒng)調(diào)用應(yīng)用程序——restore_all
? ? ? 系統(tǒng)調(diào)用會(huì)引起進(jìn)程上下文切換
轉(zhuǎn)載于:https://www.cnblogs.com/tjyuanxi/p/9231599.html
總結(jié)
以上是生活随笔為你收集整理的系统调用软中断处理程序system_call分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 卖给腾讯不到一年 搜狗遭大清洗:地图、搜
- 下一篇: 【C语言及程序设计】项目2-15:模块化