|  | |
| 什么是Linux系統調用,包括哪些內容 | |
| 所(suo)謂系(xi)統(tong)(tong)調(diao)用(yong)(yong)(yong)是指操(cao)作(zuo)系(xi)統(tong)(tong)提供給(gei)用(yong)(yong)(yong)戶(hu)程(cheng)(cheng)序調(diao)用(yong)(yong)(yong)的(de)一組(zu)“特(te)殊(shu)”接(jie)口,用(yong)(yong)(yong)戶(hu)程(cheng)(cheng)序可(ke)以(yi)通過(guo)這組(zu)“特(te)殊(shu)”接(jie)口獲得操(cao)作(zuo)系(xi)統(tong)(tong)內核提供的(de)服務(wu)。例如,用(yong)(yong)(yong)戶(hu)可(ke)以(yi)通過(guo)進程(cheng)(cheng)控制相(xiang)關的(de)系(xi)統(tong)(tong)調(diao)用(yong)(yong)(yong)來(lai)創建(jian)進程(cheng)(cheng)、實現進程(cheng)(cheng)之間的(de)通信等。 在(zai)這里,為什么用戶(hu)(hu)程(cheng)序不能(neng)直接(jie)訪問系(xi)統(tong)內(nei)核提供的(de)服(fu)務(wu)呢(ni)?這是由(you)于(yu)在(zai)Linux中(zhong),為了更(geng)好地保(bao)護內(nei)核空(kong)(kong)間(jian)(jian),將(jiang)程(cheng)序的(de)運行空(kong)(kong)間(jian)(jian)分為內(nei)核空(kong)(kong)間(jian)(jian)和(he)用戶(hu)(hu)空(kong)(kong)間(jian)(jian)(也(ye)就是常稱(cheng)的(de)內(nei)核態(tai)和(he)用戶(hu)(hu)態(tai)),它們分別(bie)運行在(zai)不同的(de)級別(bie)上,邏輯(ji)上是相互(hu)隔離的(de)。因此(ci),用戶(hu)(hu)進程(cheng)在(zai)通常情況下不允(yun)許訪問內(nei)核數(shu)據(ju),也(ye)無(wu)法使用內(nei)核函數(shu),它們只(zhi)能(neng)在(zai)用戶(hu)(hu)空(kong)(kong)間(jian)(jian)操作用戶(hu)(hu)數(shu)據(ju),調(diao)用用戶(hu)(hu)空(kong)(kong)間(jian)(jian)的(de)函數(shu)。 但(dan)是,在有些情況下,用(yong)(yong)戶(hu)空間的(de)(de)進(jin)程(cheng)需(xu)要獲(huo)得一定的(de)(de)系統服務(調用(yong)(yong)內核空間程(cheng)序),這時操(cao)作(zuo)系統就(jiu)必須利用(yong)(yong)系統提供給用(yong)(yong)戶(hu)的(de)(de)“特殊接口(kou)”——系統調用(yong)(yong)規定用(yong)(yong)戶(hu)進(jin)程(cheng)進(jin)入(ru)內核空間的(de)(de)具體位置(zhi)。在進(jin)行系統調用(yong)(yong)時,程(cheng)序運行空間需(xu)要從用(yong)(yong)戶(hu)空間進(jin)入(ru)內核空間,處理完成后再(zai)返(fan)回用(yong)(yong)戶(hu)空間。 Linux系(xi)(xi)統(tong)(tong)(tong)調用(yong)(yong)非常精簡(jian)(只有250個左右),它繼承了UNIX系(xi)(xi)統(tong)(tong)(tong)調用(yong)(yong)中基本和(he)有用(yong)(yong)的部(bu)分(fen)。這些系(xi)(xi)統(tong)(tong)(tong)調用(yong)(yong)按(an)照功能邏輯(ji)大致可分(fen)為進(jin)程控制、進(jin)程間通信、文件系(xi)(xi)統(tong)(tong)(tong)控制、存儲管理(li)、網(wang)絡管理(li)、套接字控制、用(yong)(yong)戶管理(li)等幾類。 本文選自華清遠見嵌入式培訓教材《從實踐中學嵌入式Linux應用程序開發》 熱點鏈接:      
         1、典型嵌入式Linux系統設置 |