内核函数 系统调用 系统命令 库函数
生活随笔
收集整理的這篇文章主要介紹了
内核函数 系统调用 系统命令 库函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
內核函數
運行在內核態的,一般來說特權級較高。
系統調用
系統調用是程序進入內核函數的接口層,大量的內核函數被封裝再系統調用中。再進入不同的系統調用之后,系統調用中的內核函數被稱為該系統調用的服務例程。
系統命令
比如在cmd中的ls,ll。系統命令相比于庫函數就會更高一層,每一個系統命令都是一個可執行的程序。比如我們strace ls。就可以看出來他調用了open(),brk()等系統調用命令。
strace 是一個Linux用戶空間跟蹤器,可以通過它來監視用戶進程和內核的交互,比如系統調用,信號傳遞和進程狀態變更……
strace底層使用內核的ptrace特性來實現其功能。
庫函數
庫函數也就是我們所說的編程接口,application programming interface。比如常見的文件操作,read(),write()。而這樣的操作必定是接觸到硬件的,因此也一定會進入內核態。那為什么不直接使用系統調用呢?
這是因為在用戶態和內核態中,我們都是用了緩沖區技術。我們會等到緩沖區滿的時候,才會將所有的數據寫回去。這樣就減少了用戶態和內核態切換的次數及其成本。
所以不直接使用系統調用技術。
總結
以上是生活随笔為你收集整理的内核函数 系统调用 系统命令 库函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020 操作系统第三次习题
- 下一篇: 2020 操作系统第一天复习(习题总结)