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,如需轉載請自行聯系原作者