![]() |
|
什么是Linux系統(tǒng)調(diào)用,包括哪些內(nèi)容 |
|
所謂系統(tǒng)調(diào)用是指操作系統(tǒng)提供給用戶程序調(diào)用的一組“特殊”接口,用戶程序可以通過(guò)這組“特殊”接口獲得操作系統(tǒng)內(nèi)核提供的服務(wù)。例如,用戶可以通過(guò)進(jìn)程控制相關(guān)的系統(tǒng)調(diào)用來(lái)創(chuàng)建進(jìn)程、實(shí)現(xiàn)進(jìn)程之間的通信等。 在這里,為什么用戶程序不能直接訪問(wèn)系統(tǒng)內(nèi)核提供的服務(wù)呢?這是由于在Linux中,為了更好地保護(hù)內(nèi)核空間,將程序的運(yùn)行空間分為內(nèi)核空間和用戶空間(也就是常稱的內(nèi)核態(tài)和用戶態(tài)),它們分別運(yùn)行在不同的級(jí)別上,邏輯上是相互隔離的。因此,用戶進(jìn)程在通常情況下不允許訪問(wèn)內(nèi)核數(shù)據(jù),也無(wú)法使用內(nèi)核函數(shù),它們只能在用戶空間操作用戶數(shù)據(jù),調(diào)用用戶空間的函數(shù)。 但是,在有些情況下,用戶空間的進(jìn)程需要獲得一定的系統(tǒng)服務(wù)(調(diào)用內(nèi)核空間程序),這時(shí)操作系統(tǒng)就必須利用系統(tǒng)提供給用戶的“特殊接口”——系統(tǒng)調(diào)用規(guī)定用戶進(jìn)程進(jìn)入內(nèi)核空間的具體位置。在進(jìn)行系統(tǒng)調(diào)用時(shí),程序運(yùn)行空間需要從用戶空間進(jìn)入內(nèi)核空間,處理完成后再返回用戶空間。 Linux系統(tǒng)調(diào)用非常精簡(jiǎn)(只有250個(gè)左右),它繼承了UNIX系統(tǒng)調(diào)用中基本和有用的部分。這些系統(tǒng)調(diào)用按照功能邏輯大致可分為進(jìn)程控制、進(jìn)程間通信、文件系統(tǒng)控制、存儲(chǔ)管理、網(wǎng)絡(luò)管理、套接字控制、用戶管理等幾類。 本文選自華清遠(yuǎn)見(jiàn)嵌入式培訓(xùn)教材《從實(shí)踐中學(xué)嵌入式Linux應(yīng)用程序開(kāi)發(fā)》 熱點(diǎn)鏈接:
1、典型嵌入式Linux系統(tǒng)設(shè)置 |