专题8-Linux系统调用
1.從用戶空間到內(nèi)核空間的時候需要進行系統(tǒng)調(diào)用
2.系統(tǒng)調(diào)用通過swi指令實現(xiàn),這個時候會有一個參數(shù),存放到r7寄存器,用來指定要調(diào)用的內(nèi)核態(tài)函數(shù)。
3.一般內(nèi)核態(tài)的實際函數(shù)可以再任意的.c文件實現(xiàn),但是必須在call.S里面加上相應(yīng)的函數(shù)指針(添加表項)
4.而且要在unistd.h里面對參數(shù)進行聲明。這個參數(shù)是要存放到r7里面的。
5.在用戶態(tài)進行接口函數(shù)實現(xiàn)的時候,要先將上述參數(shù)存放到r7,然后再執(zhí)行swi指令。最后在需要使用這個接口函數(shù)的地方調(diào)用該函數(shù),這個函數(shù)就會自動跳轉(zhuǎn)到內(nèi)核空間尋找相應(yīng)的內(nèi)核態(tài)函數(shù)。
?
1.打開內(nèi)核代碼的/kernel/printk.c文件,在文件中實現(xiàn)函數(shù)sys_pk()
2./arch/arm/kernel/calls文件中加入新的系統(tǒng)調(diào)用
3.arch/arm/include/unistd.h文件中系統(tǒng)調(diào)用編號
4. 編寫用戶函數(shù),調(diào)用pk函數(shù)
轉(zhuǎn)載于:https://www.cnblogs.com/YanfeiHao/p/4164213.html
總結(jié)
以上是生活随笔為你收集整理的专题8-Linux系统调用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 逆风笑的封面是谁画的呢?
- 下一篇: 原生js自动完成 [转]