內(nèi)存管理.gif
2.1) Architecture Specific Managers,體系結(jié)構(gòu)相關(guān)部分。提供用于訪問(wèn)硬件Memory的虛擬接口。
2.2) Architecture Independent Manager,體系結(jié)構(gòu)無(wú)關(guān)部分。提供所有的內(nèi)存管理機(jī)制,包括:以進(jìn)程為單位的memory mapping;虛擬內(nèi)存的Swapping。
2.3) System Call Interface,系統(tǒng)調(diào)用接口。通過(guò)該接口,向用戶空間程序應(yīng)用程序提供內(nèi)存的分配、釋放,文件的map等功能。
VFS(Virtual File System),虛擬文件系統(tǒng)。Linux內(nèi)核將不同功能的外部設(shè)備,例如Disk設(shè)備(硬盤(pán)、磁盤(pán)、NAND Flash、Nor Flash等)、輸入輸出設(shè)備、顯示設(shè)備等等,抽象為可以通過(guò)統(tǒng)一的文件操作接口(open、close、read、write等)來(lái)訪問(wèn)。這就是Linux系統(tǒng)“一切皆是文件”的體現(xiàn) 。
文件系統(tǒng)的實(shí)質(zhì),就是“存儲(chǔ)和組織數(shù)據(jù)的方法”,文件系統(tǒng)的表現(xiàn)形式,就是“從某個(gè)設(shè)備中讀取數(shù)據(jù)和向某個(gè)設(shè)備寫(xiě)入數(shù)據(jù)”。常見(jiàn)文件系統(tǒng)的類型 :FAT、FAT32、NTFS、EXT2、EXT3,EXT4 。而為了兼容,操作系統(tǒng)或者內(nèi)核,要以相同的表現(xiàn)形式,同時(shí)支持多種類型的文件系統(tǒng),這就延伸出了虛擬文件系統(tǒng)(VFS)的概念。VFS的功能就是管理各種各樣的文件系統(tǒng),屏蔽它們的差異,以統(tǒng)一的方式,為用戶程序提供訪問(wèn)文件的接口。
我們可以從磁盤(pán)、硬盤(pán)、NAND Flash等設(shè)備中讀取或?qū)懭霐?shù)據(jù),因而最初的文件系統(tǒng)都是構(gòu)建在這些設(shè)備之上的。這個(gè)概念也可以推廣到其它的硬件設(shè)備,例如內(nèi)存、顯示器(LCD)、鍵盤(pán)、串口等等。我們對(duì)硬件設(shè)備的訪問(wèn)控制,也可以歸納為讀取或者寫(xiě)入數(shù)據(jù),因而可以用統(tǒng)一的文件操作接口訪問(wèn)。Linux內(nèi)核就是這樣做的,除了傳統(tǒng)的磁盤(pán)文件系統(tǒng)之外,它還抽象出了設(shè)備文件系統(tǒng)、內(nèi)存文件系統(tǒng)等等。這些邏輯,都是由VFS子系統(tǒng)實(shí)現(xiàn)。
VFS子系統(tǒng)包括6個(gè)子模塊(見(jiàn)下圖),它們的功能如下: