1. 程式人生 > >Linux基礎——檔案系統和記憶體管理

Linux基礎——檔案系統和記憶體管理

Linux 中有句話是“一切都是檔案”,非常經典。

Linux檔案的概念參考於此文章
—————————————————————————————————————————————————

檔案系統的基本知識

  1. 檔名最多可以有256個字元,可以包含數字,點號“.”,下劃線“_”,橫杆“-“

  2. 檔名前面帶”.”的檔案在輸入”ls”或者”dir” 命令時一般不顯示。可以把這些檔案看作是隱含檔案,當然你也可以使用命令”ls –a”來顯示這些檔案。

  3. 在Linux系統下,所有的目錄顯示在單一目錄樹下(有別於DOS系統的驅動器標識)。這意味著所有的物理裝置上的所有檔案和目錄都合併在單一的目錄樹下。

  4. 整個系統級別的設定

    一般放在目錄/etc下,這個目錄在LINUX裡很重要,裡面裝的都是些雜七雜八的配置檔案。

  5. Linux系統把所有可執行的檔案命令在/usr/bin目錄裡都作了啟動連線,你可以去那個目錄尋找你安裝的檔案的啟動命令,雙擊啟動。

whereis xxx 找到軟體安裝目錄,rm -rf 把這些目錄都刪除,應該能刪除乾淨。

記憶體管理

  • Linux程式段

Linux採用虛擬段頁式儲存方式來管理記憶體,程式的基本邏輯儲存單元,也可以說是程式段。

Linux中有四個段,程式碼段,資料段,BSS段,堆疊段。虛擬地址從低到高依次是:程式碼段,資料段,BSS段,堆疊段。

其中程式碼段為程式本身(二進位制指令),資料段為程式碼中初始化了的全域性變數和靜態變數,BSS段為為初始化的全域性變數和靜態變數,堆為程式設計師申請的記憶體空間,棧是編譯器用來存放函式區域性變數,引數等資料的位置。

  • 虛擬地址和實體地址

將程式的邏輯儲存單元分配好後,每個段在記憶體中以頁為基本單元進行儲存。我們在程式中,用取地址符取的地址,叫做邏輯地址,也叫做虛擬地址。

虛擬地址由段號和段內偏移量組成。MMU通過段機制檢視段表來尋找該段號對應的頁號,該頁號和段偏移量組成的地址是線性地址;

通過頁機制檢視頁表,找到該頁號對應的物理號,物理號和偏移量組成的地址,即為實體地址。

  • 核心態和使用者態

BSD 的基本系統由KERNEL和USERLAND組成,KERNEL就是核心,其實就是/BOOT/底下的KERNEL,基本系統除了KERNEL外所有的東西都可以稱為USERLAND,如/BIN底下的一些程式。

有的程式必須有要有KERNEL和USERLAND才能執行,不像LINUX只要一個KERNEL就可以運行了,所以稱為基本系統。/USR/PORTS下安裝的程式不屬於基本系統,可以稱為PACKAGE 。

交換分割槽swap

swap分割槽的作用是充當虛擬記憶體,其大小通常是實體記憶體的兩倍左右。

我們如果沒有足夠的記憶體,也許就不能執行某些大型的軟體,解決的辦法是在硬碟上劃出一個區域來當作臨時的記憶體,好像記憶體變大了。Windows作業系統把這個區域叫做虛擬記憶體,Linux把它叫做交換分割槽swap。