Unix目錄結構的來歷
Unix(包含 Linux)的初學者,常常會很困惑,不明白目錄結構的含義何在。
舉例來說,根目錄下面有一個子目錄/bin,用于存放二進制程序。但是,/usr 子目錄下面還有/usr/bin,以及/usr/local/bin,也用于存放二進制程序;某些系統甚至還有/opt/bin。它們有何區別?
長久以來,我也感到很費解,不明白為什么這樣設計。像大多數人一樣,我只是根據《Unix 文件系統結構標準》(Filesystem Hierarchy Standard),死記硬背不同目錄的區別。
昨天,我讀到了 Rob Landley 的簡短解釋,這才恍然大悟,原來 Unix 目錄結構是歷史造成的。
話說 1969 年,Ken Thompson 和 Dennis 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,意為"選裝"。
來自: 阮一峰的網絡日志