1、磁盤分區及文件訪問入口linux
在前文中介紹過,Linux的整個文件系統像一棵倒置的數,最頂層的是根文件系統,其下有不少一級子目錄,一級子目錄下面是二級子目錄,依此類推:緩存
/:根目錄ide
/bin,/sbin:二進制程序,操做系統自身啓動運行就須要用到的程序。工具
/bin下爲普通用戶使用的程序;/sbin下爲管理員用戶使用的程序性能
/usr/bin,/usr/sbin:二進制程序,基本的系統管理工具。spa
/usr/bin下的程序普通用戶都能用;操作系統
/usr/sbin爲管理命令。翻譯
/usr/local/bin, /usr/local/sbin:第三方程序,和操做系統的基本啓 動運行無關,是管理員安裝的用於 管理操做系統的特定工具。3d
事實上,/,/bin,/sbin,/usr/bin,/usr/sbin, /usr/local/bin, /usr/local/sbin 能夠徹底存在於不一樣的磁盤分區上,儘管他們看起來都像是存在於/目錄之中的。日誌
假設磁盤上一共有四個分區,其中根目錄位於1號分區,那麼全部對操做系統的訪問都必須以1號分區爲入口,由於全部的文件都是根/目錄下的文件,都以根目錄爲訪問入口,根/目錄有且僅有一個,因此訪問另外3個分區,就必須以根所在的1號分區爲入口,1號分區即根分區。
若是咱們但願另外3個分區中的某個分區,例如3號分區,也能派上用場,那麼就須要讓此分區下的文件和根目錄創建關聯關係。好比/usr這個目錄位於根/目錄之下,若是想把文件存入/usr這個目錄下,徹底能夠不存放在分區1下而存放在3號分區下,只須要讓文件和/usr目錄創建關聯關係。要注意的是,/usr目錄位於1號分區,/usr裏的文件位於3號分區。
根目錄下的目錄能夠關聯其餘的文件,而這些文件也能夠進一步關聯其餘的分區:若是/usr目錄下有一個名爲local的目錄,即/usr/local,存放在3號分區上,而local目錄又關聯了一個新的分區,4號分區,在4號分區上存放有bin目錄,即/usr/local/bin,這樣一來,/,/usr,/usr/local,/usr/local/bin分別關聯了1號、3號和4號分區。
事實上,文件所關聯的位置(或目錄),就是文件的入口。上述例子中,若是將4號分區拆卸下來,掛載到另外一個系統裏的某個目錄下,如/test目錄,那麼要訪問bin中的文件,就會以/test爲入口,即/test/bin,而看不到/usr/local了。
以上就是linux 的分區形式,在邏輯上會給人以層次感,但在物理上各文件和目錄能夠是存在於不一樣的分區上的平行結構。
2、各目錄的功能
1. 庫目錄lib
所謂的庫,便是指的公共的功能模塊,全部的二進制文件都須要依賴於共享的庫賴運行。Linux的經過系統調用來操做內核,而系統調用過於複雜,爲了使程序可以順利運行,系統調用上存封裝了不少接口幫助程序進行系統調用,這些接口就是庫文件。
庫文件存放在lib目錄下,lib目錄服務於/bin和/sbin下的程序。/usr/lib也是庫目錄,能夠爲/usr/bin 和 /usr/sbin 提供庫,不過/usr/bin 和 /usr/sbin的庫不少也直接由/lib提供了;/usr/local/bin 和 /usr/local/sbin下的程序所依賴的特殊庫,一般由/usr/local/lib提供。
2. 配置文件
Linux中程序運行除了依賴於庫文件外,還依賴配置文件。/etc這個目錄一般爲/bin、/sbin、/usr/bin、/usr/sbin提供配置文件;而/usr/local/bin和/usr/local/sbin的配置文件,一般放在/usr/local/etc下,但也有可能直接存放在/etc下。
3. 臨時文件
一般程序在運行時會產生不少臨時文件,這些臨時文件多存放在/tmp目錄下。
4. /var目錄
/var目錄下存放的文件多爲內容常常變化的文件,主要有log,mail,cache等
A)日誌文件
若是要知道系統的運行情況,或者是文件被訪問的狀況,能夠查看日誌文件,Linux中的日誌文件多存放在/var/log中;
B)郵件緩存
/var/mail目錄多用來爲用戶提供郵件緩存;
C)緩存文件
/var/cache目錄主要用來存放緩存文件;
5. 僞文件系統/proc 和 /sys
A)內核映像 /proc
Linux的內核沒有配置文件,若是用戶想要自行定製內核的特性,只能在內核啓動時給內核傳遞參數,通常參數的傳遞經過grub(後文中會詳解)來實現。可是當系統啓動以後,想要查看或改變內核的特性,就須要用到/proc這個目錄,此目錄用來存放內核的輸出參數,每個參數在/proc目錄中都表現爲一個文件,故能夠經過修改/proc下的文件來模擬修改內核的運行參數,但要注意的是隻有有寫權限的參數才能修改,其餘的可能只能用來查看內核的參數。
B)硬件信息 /sys
和/proc相似,/sys也是僞文件系統。若是想要修改硬件的工做屬性,而非內核的運行參數,就須要經過修改/sys中的文件來實現。
6. 掛載目錄/media 和 /mnt
A)關聯便攜性設備:/media
B)關聯第二塊硬盤上的分區/mnt
上述兩個掛載目錄是一種約定俗成的掛載方式,若是不掛載在這兩個目錄下也是能夠的。
7.引導目錄/boot
/boot目錄時引導目錄,主要用來存放內核,操做系統的啓動和進程的管理都必須由內核來完成
8. 家目錄 /home
目前的操做系統基本上都是多任務多用戶的,每個用戶登錄到系統中,其每個操做都必然會處於一個目錄中,這個目錄就是用戶的工做目錄;而該用戶最初登錄到操做系統中,必然也會處於某個目錄中,且這個目錄一般用來存放和管理工做,該目錄即稱爲家目錄/home。在/home目錄下的/home/USERNAME 和 /root 都是用戶的家目錄。
9. 設備文件/dev
Linux所識別的任何一個硬件設備都存放在/dev目錄下,且每個硬件設備都有一個與之對應的文件,這個文件被做爲往該設備上存儲或讀取數據的入口。
Linux支持的設備類型主要有兩種,即:
b:塊設備,支持隨機訪問。鍵盤不屬於隨機設備,由於若是輸入的是ABC,則不會顯示爲BCA。
c:字符設備,也稱爲線性設備,即有必定的前後順序。
不一樣種類的設備在/dev上表現爲不一樣的文件,如:
IDE, ATA類的設備:顯示爲 /dev/hd[a-z]
常見的PC機上一般有兩個IDE插槽,每個槽上能夠接兩個IDE設備,一個主設備(master),一個從設備(slave),故一個PC機最多能接4塊IDE類的設備,即/dev/hda,/dev/hdb,/dev/hdc,/dev/hdd。一般狀況下第一個IDE控制器接兩塊硬盤,即/dev/hda,/dev/hdb;第二個IDE控制器接光驅設備,故光驅設備一般表現爲 /dev/hdc,因此虛擬機模擬光驅設備時,也使用的是hdc。
SCSI,SAS,SATA,USB 類的設備:被識別爲 /dev/sd[a-z]
因爲上述四種設備都表現爲sd,不管是光驅設備,仍是硬盤設備,都以/dev/sda, /dev/sdb...的形式表現,這樣必然會致使混淆的現象。爲了有效控制這種狀況,Linux引入了一個機制:udev。用戶能夠藉助udev來自行定義設備的名稱,如/dev/sata1,/dev/usb1等。
3、硬件設備簡介
1. 硬盤設備:既支持隨機訪問,也支持線性訪問,但一般把它當作隨機存取訪問的塊設備。
2. I/O,I/O Controller:控制器
I/O Adapter:適配器
計算機的CPU在和不一樣的設備進行數據交互時,信號的傳遞機制是不同的,這就須要一個芯片來轉換或翻譯CPU的指令。好比CPU和顯卡進行數據交互時,就須要這種芯片來幫助顯卡完成指令,該芯片若是集成在主板上,就稱爲控制器(Controller),若是主板上沒有集成該芯片,那麼能夠經過主板上的擴展槽來外接芯片,這種不集成的芯片,稱爲適配器(Adapter)。
3. 硬盤
A)硬盤類型
硬盤根據其I/O控制器的不一樣,和工做屬性的不一樣會分紅不一樣的類型:
IDE, ATA:並行通訊,133MB/s
串行通訊數據按順序單向傳輸,並行通訊多個數據能夠同時傳輸;直觀上並行傳輸的速度高於串行傳輸速度,但能夠串行通訊的也能夠經過提升傳輸速度來超越並行傳輸,例如並行傳輸速率爲每秒10bit,而串行傳輸的速率爲每秒100bit,那麼傳輸50bit的數據,串行傳輸頗有可能會快於並行傳輸,這依賴於傳輸的吞吐量。吞吐量即每秒能傳輸的數據量。
SATA:串行通訊(Serial),(SATA1)300MB/s,(SATA2)600MB/s,(SATA3)6Gb/s由ATA 發展而來,由於儘管並行數據傳輸速度快,但數據傳輸過程當中干擾嚴重,故發展SATA,經過提升吞吐量來實現傳輸速度的提升。
SCSI:Small Computer System Interface,小型計算機接口,並行傳輸,它比同期的IDE傳輸速度要快,(UtraSCSI)320MB/s,轉速一般爲10000RPM~15000RPM。
一般狀況下CPU每讀取4kb的數據,那麼即便僅讀取1MB的數據,CPU都須要在硬盤和內存中頻繁切換,這樣嚴重影響讀取速度。SCSI的好處就在於它自帶一個智能控制器,能夠控制數據的讀取和存放位置,相似於一個小型的CPU,從而能夠大大下降CPU的壓力,使CPU的資源從無謂的I/O操做中解放出來。
SAS:SCSI的串行版,它的傳輸速度比SCSI要快得多。儘管SCSI硬盤性能好且很智能,但隨着時代的發展,SCSI硬盤的技術已逐步被其串行版SAS所取代
SSD:Solid-State Disk,固態磁盤。它屬於閃存系列,但SSD的優點在於多個磁盤並行傳輸,使傳輸速度大爲提高,讀寫速度能達到500MB/s,且這個值爲真實速度而非理論值。
USB:(1.1,2.0, 3.0)
B)硬盤工做原理
硬盤爲多個盤片組成,其中有一根軸將數個盤片串聯,在盤片飛速旋轉過程當中,盤片外有一根機械臂上帶有 盤片總數*2 的磁頭,這些磁頭用來讀取盤片上正反兩面的數據。
每一盤片被劃分爲數個同心圓,同心圓之間的圓環用來存放數據,此圓環稱爲磁道(Track),靠近圓心處的磁道轉過的距離小於外圍的磁道,且能存放的數據小於外圍的磁道,故越靠外的磁道存儲性能越好。不管是外圍仍是靠內的磁道,轉過的角度都是一致的,故此設備又稱爲固定角速度設備。
若是單純的使用磁道來存儲數據未免太過粗糙了,故能夠將磁道進一步劃分爲更小的單元,即扇區(Sector)。對於機械式硬盤來講,扇區是最小存儲單元。
若是一個扇區的大小是512個字節,那麼存放4kb的數據,則一共須要8個扇區,利用盤片正反兩面存取,則只用讓磁頭滑過4個扇區,可使存儲速度更快。
不一樣盤面上相同位置的磁道,組合起來造成桶狀結構,叫作柱面(Cylinder)。這種柱狀結構要求不一樣的盤片上磁道位置保持一致,故硬盤在讀取數據時不能震動,不然磁頭會劃壞硬盤。
如今假設要在10號柱面上讀取數據,而磁頭目前處於1號柱面,那麼機械臂會向內移動,使磁頭能接觸到10號柱面。當磁頭接觸到10號柱面了,但所要讀取的數據不在磁頭觸碰的扇區裏,這時磁頭就須要等待盤片轉動,直到目標數據所在的扇區下一次出現,這個等待所須要的時間,即爲等待時間,全部數據的等待時間叫作平均巡道時間。故磁盤轉動速度越快,等待時間越短,性能就越好。這種轉動速度表示爲RPM(Rotation Per Minute),即一分鐘多少轉。因爲磁盤轉速極快,會產生巨大熱量,故硬盤盒內需保持真空,以控制溫度。