歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux基本概念(二)

Linux基本概念(二)

日期:2017/3/1 13:38:33   编辑:關於Linux

在學習Linux的過程中,總有一些基本的概念困擾著我,比如,什麼是文件系統,根文件系統?掛裝到底是個什麼概念?文件系統和內核到底是什麼關系啊?這次主要通過度娘和Google把這些不太清楚的概念歸納了一下,具體如下:

在Linux基本概念(一)中,簡單的解惑了什麼是Linux內核。這裡我相信肯定有不少人和我一樣,對什麼是文件系統可能有所了解,但是往往會非常困惑於Linux操作系統,Linux內核和文件系統到底是個什麼關系?所以這裡我們將首先介紹這三者之間的關系,三者的關系可以用下圖簡單的表示:

\

內核、shell和文件系統一起形成了基本的操作系統結構,它們使得用戶可以運行程序、管理文件並使用系統。文件系統和內核是彼此依賴的,可以把內核簡單的理解成執行單元,文件系統是存儲單元。Linux內核中,跟文件系統相關的組件如下圖所示:

\

什麼是文件系統?文件系統是對一個存儲設備上的數據和元數據進行組織的機制。Linux可以支持的文件系統類型很多,可以預料到 Linux 文件系統接口實現為分層的體系結構,從而將用戶接口層、文件系統實現和操作存儲設備的驅動程序分隔開。

Linux 以一組通用對象的角度看待所有文件系統。這些對象是超級塊(superblock)、inode、dentry 和文件。超級塊在每個文件系統的根上,超級塊描述和維護文件系統的狀態。文件系統中管理的每個對象(文件或目錄)在 Linux 中表示為一個 inode。inode 包含管理文件系統中的對象所需的所有元數據(包括可以在對象上執行的操作)。另一組結構稱為 dentry,它們用來實現名稱和 inode 之間的映射,有一個目錄緩存用來保存最近使用的 dentry。dentry 還維護目錄和文件之間的關系,從而支持在文件系統中移動。

什麼是根文件系統?根文件系統是安裝Linux時,安裝程序為用戶創建的文件系統,它的目錄組織形式是固定的,在根文件系統下可以掛載其他的文件系統。Linux根文件系統就是我們輸入cd / 顯示出來的一系列文件夾,Linux下一些主要目錄如下:
  /bin 二進制可執行命令
  /dev 設備特殊文件
  /etc 系統管理和配置文件
  /etc/rc.d 啟動的配置文件和腳本
  /home 用戶主目錄的基點,比如用戶user的主目錄就是/home/user,可以用~user表示
  /lib 標准程序設計庫,又叫動態鏈接共享庫,作用類似windows裡的.dll文件
  /sbin 系統管理命令,這裡存放的是系統管理員使用的管理程序
  /tmp 公用的臨時文件存儲點
  /root 系統管理員的主目錄(呵呵,特權階級)
  /mnt 系統提供這個目錄是讓用戶臨時掛載其他的文件系統。
  /lost+found 這個目錄平時是空的,系統非正常關機而留下“無家可歸”的文件(windows下叫什麼.chk)就在這裡
  /proc 虛擬的目錄,是系統內存的映射。可直接訪問這個目錄來獲取系統信  息。
  /var 某些大文件的溢出區,比方說各種服務的日志文件
  /usr 最龐大的目錄,要用到的應用程序和文件幾乎都在這個目錄。其中包  含:
  /usr/X11R6 存放X window的目錄
  /usr/bin 眾多的應用程序
  /usr/sbin 超級用戶的一些管理程序
  /usr/doc linux文檔
  /usr/include linux下開發和編譯應用程序所需要的頭文件
  /usr/lib 常用的動態鏈接庫和軟件包的配置文件
  /usr/man 幫助文檔
  /usr/src 源代碼,linux內核的源代碼就放在/usr/src/linux裡
  /usr/local/bin 本地增加的命令
  /usr/local/lib 本地增加的庫

什麼是掛裝(掛載)呢?在 Linux 中將一個文件系統與一個存儲設備關聯起來的過程稱為掛裝(mount)。使用 mount 命令將一個文件系統附著到當前文件系統層次結構中(根)。在執行掛裝時,要提供文件系統類型、文件系統和一個掛裝點。

為了說明 Linux 文件系統層的功能(以及掛裝的方法),我們在當前文件系統的一個文件中創建一個文件系統。實現步驟如下:

Step1. 創建一個經過初始化的文件, 用 dd 命令創建一個指定大小的文件(使用 /dev/zero 作為源進行文件復制

$ dd if=/dev/zero of=file.img bs=1kcount=10000

Step 2. 用 losetup 命令將一個循環設備與這個文件關聯起來,讓它看起來像一個塊設備,而不是文件系統中的常規文件

$ losetup /dev/loop0 file.img

Step3. 用 mke2fs 在這個設備上創建一個文件系統。這個命令創建一個指定大小的新的 ext2 文件系統

$ mke2fs -c /dev/loop0 10000

Step 4.用 mount 命令將循環設備(/dev/loop0)所表示的file.img 文件掛裝到掛裝點 /mnt/point1。注意,文件系統類型指定為 ext2。掛裝之後,就可以將這個掛裝點當作一個新的文件系統,比如使用 ls 命令

$ mkdir /mnt/point1

$ mount -t ext2 /dev/loop0 /mnt/point1

$ ls /mnt/point1

lost+found

參考如下:

http://www.ibm.com/developerworks/cn/linux/l-linux-filesystem/

http://linux.chinaunix.net/techdoc/beginner/2007/03/30/953684.shtml

http://blog.csdn.net/hguisu/article/details/6122513

Copyright © Linux教程網 All Rights Reserved