国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

linux 系統調用與標準庫調用的區別詳細解析

2020-10-28 18:49:21
字體:
來源:轉載
供稿:網友

1、系統調用和庫函數的關系
系統調用通過軟中斷int 0x80從用戶態進入內核態。 函數庫中的某些函數調用了系統調用。
函數庫中的函數可以沒有調用系統調用,也可以調用多個系統調用。 編程人員可以通過函數庫調用系統調用。

高級編程也可以直接采用int 0x80進入系統調用,而不必通過函數庫作為中介。 如果是在核心編程,也可以通過int 0x80進入系統調用,此時不能使用函數庫。因為函數庫中的函數是內核訪問不到的。 

2、從用戶調用庫函數到系統調用執行的流程。
1) 假設用戶調用ssize_t write (int fields, cont void *buff, size_t nbytes);庫函數。
2) 庫函數會執行int 0x80中斷。因為中斷使得進程從用戶態進入內核態,所以參數通過寄存器傳送。
3) 0x80中斷對應的中斷例程被稱為system call handler。

其工作是:
i.  存儲大多數寄存器到內核堆棧中。這是匯編代碼寫的。
ii.  執行真正的系統調用函數

主站蜘蛛池模板: 正宁县| 邢台县| 历史| 桦川县| 永昌县| 鸡西市| 灵寿县| 蕲春县| 金秀| 吴旗县| 阜新市| 沽源县| 阜宁县| 金溪县| 桂东县| 桐庐县| 漯河市| 尉犁县| 岗巴县| 桦南县| 固始县| 天台县| 崇阳县| 日照市| 休宁县| 张家界市| 济宁市| 车险| 沛县| 西华县| 昌平区| 固镇县| 凤庆县| 三明市| 南皮县| 山阴县| 鄂温| 盱眙县| 正镶白旗| 诸暨市| 皋兰县|