《深刻Linux內核》 UNIX的一些故事

Unix文件的類型
1.普通文件
2.目錄
3.符號連接
4.面向塊的設備文件
5.面向字符的設備文件
6.管道和命名管道
7.套接字

點評:不明覺厲

打開文件
進程只能訪問「打開的」文件。爲了打開一個文件,進程調用
fd = open(path,flag,mode)
path表示被打開的文件的路徑。
flag表示打開的方式,它也指定是否應當建立一個不存在的文件。
mode指定新建立文件的訪問權限。

關閉文件
當進程無需再訪問文件的內容時,就調用系統調用:
res = close(fd)

改名及刪除文件
要從新命名或刪除一個文件時,進程不須要打開它。這樣的操做並無對這個文件的內容起做用,而是對一個或多個目錄的內容起做用。
res = rename(oldpath,newpath)
改變了文件連接的名字,而系統調用:
res = unlink(pathname)
減小了文件的連接數,刪除了相應的目錄項。只有當連接數爲0時,文件才被真正刪除。linux

虛擬內存的優勢
若干個進程能夠併發地執行。
應用程序所需內存大於可用物理內存時也能夠運行。
程序只有部分代碼裝入內存時進程能夠執行它。
容許每一個進程訪問可用物理內存的子集。
進程能夠共享庫函數或程序的一個單獨內存映像。
程序能夠編寫與機器無關的代碼,由於他們沒必要關心有關物理內存的組織結構。


進程虛擬地址空間處理
內核分配給進程的虛擬地址空間由如下內存區組成:
程序的可執行代碼
程序的初始化數據
程序的未初始化數據
初始程序棧
共享庫的可執行代碼和數據
堆(由程序動態請求的內存)


設備驅動程序
經過特定的接口,每一個驅動程序與內核中的其他部分相互做用
優勢以下:
能夠把特定設備的代碼封裝在特定的模塊中。
廠商能夠在不瞭解內核源碼而只知道接口規範的狀況下,就能增長新的設備。
內核以統一的方式對待全部的設備,而且經過相同的接口訪問這些設備。
能夠把設備驅動程序寫成模塊,並動態地把它們裝進內核而不須要從新啓動系統。再也不須要時,亦能夠動態地卸下模塊。windows

小結:併發

經過閱讀,感受系統內部的奧祕蠻好玩的,可以更深入的認識linux系統的原理,以及windows系統。都是相通的!!!由表及裏的研究!!!函數

相關文章
相關標籤/搜索