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核心》 UNIX的一些故事
unix檔案的型別 1.普通檔案 2.目錄 3.符號鏈結 4.面向塊的裝置檔案 5.面向字元的裝置檔案 6.管道和命名管道 7.套接字 點評 不明覺厲 開啟檔案 程序只能訪問 開啟的 檔案。為了開啟乙個檔案,程序呼叫 fd open path,flag,mode path表示被開啟的檔案的路徑。fl...
深入Linux核心 一 程序排程
1.交換式程序interactive processes 互動式程序是經常與使用者進行互動,因此需要花很多的時間等待鍵盤和滑鼠操作,當接受輸入後,程序必須被很快喚醒,不然就會出現系統反應遲鈍。典型的互動式程式是shell命令 文字編輯和影象應用程式 2.批處理程序batch process 不必與使...
深入理解Linux核心 核心同步
核心基本的同步機制 搶占核心的主要特點 乙個在核心態執行的程序,可能在執行核心函式期間被另外乙個程序取代。核心搶占 linux 2.6允許使用者在編譯核心的時候配置十分啟用 程序臨界區 每個程序中訪問臨界資源 一次僅允許乙個程序使用的共享資源 的那段 稱為臨界區。優化屏障 保證編譯程式不會混淆放在原...