天天看點

《深入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系統。都是相通的!!!由表及裡的研究!!!

本文轉自TBHacker部落格園部落格,原文連結:http://www.cnblogs.com/jiqing9006/p/3182814.html,如需轉載請自行聯系原作者

繼續閱讀