閱讀1021 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Unix目錄結構的來曆

Unix(包含Linux)的初學者,常常會很困惑,不明白目錄結構的含義何在。

舉例來說,根目錄下麵有一個子目錄/bin,用於存放二進製程序。但是,/usr子目錄下麵還有/usr/bin,以及/usr/local/bin,也用於存放二進製程序;某些係統甚至還有/opt/bin。它們有何區別?

長久以來,我也感到很費解,不明白為什麼這樣設計。像大多數人一樣,我隻是根據《Unix文件係統結構標準》(Filesystem Hierarchy Standard),死記硬背不同目錄的區別。

昨天,我讀到了Rob Landley的簡短解釋,這才恍然大悟,原來Unix目錄結構是曆史造成的。

話說1969年,Ken ThompsonDennis Ritchie在小型機PDP-7上發明了Unix。1971年,他們將主機升級到了PDP-11。

當時,他們使用一種叫做RK05的儲存盤,一盤的容量大約是1.5MB。

沒過多久,操作係統(根目錄)變得越來越大,一塊盤已經裝不下了。於是,他們加上了第二盤RK05,並且規定第一塊盤專門放係統程序,第二塊盤專門放用戶自己的程序,因此掛載的目錄點取名為/usr。也就是說,根目錄"/"掛載在第一塊盤,"/usr"目錄掛載在第二塊盤。除此之外,兩塊盤的目錄結構完全相同,第一塊盤的目錄(/bin, /sbin, /lib, /tmp...)都在/usr目錄下重新出現一次。

後來,第二塊盤也滿了,他們隻好又加了第三盤RK05,掛載的目錄點取名為/home,並且規定/usr用於存放用戶的程序,/home用於存放用戶的數據。

從此,這種目錄結構就延續了下來。隨著硬盤容量越來越大,各個目錄的含義進一步得到明確。

/:存放係統程序,也就是At&t開發的Unix程序。

/usr:存放Unix係統商(比如IBM和HP)開發的程序。

/usr/local:存放用戶自己安裝的程序。

/opt:在某些係統,用於存放第三方廠商開發的程序,所以取名為option,意為"選裝"。

最後更新:2017-04-02 15:15:11

  上一篇:go Unix服務器是否已經過時了?
  下一篇:go 李宗瑞豔照引發黑客攻擊潮 16種病毒蜂擁而至