《深入Linux核心》 UNIX的一些故事

2021-09-06 12:05:31 字數 1253 閱讀 6120

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允許使用者在編譯核心的時候配置十分啟用 程序臨界區 每個程序中訪問臨界資源 一次僅允許乙個程序使用的共享資源 的那段 稱為臨界區。優化屏障 保證編譯程式不會混淆放在原...