unix(包含linux)的初學者,常常會很困惑,不明白目錄結構的含義何在。
舉例來說,根目錄下面有乙個子目錄/bin,用於存放二進位制程式。但是,/usr子目錄下面還有/usr/bin,以及/usr/local/bin,也用於存放二進位制程式;某些系統甚至還有/opt/bin。它們有何區別?
長久以來,我也感到很費解,不明白為什麼這樣設計。像大多數人一樣,我只是根據《unix檔案系統結構標準》(filesystem hierarchy standard),死記硬背不同目錄的區別。
昨天,我讀到了rob landley的簡短解釋,這才恍然大悟,原來unix目錄結構是歷史造成的。
話說2023年,ken thompson和dennis ritchie在小型機pdp-7上發明了unix。2023年,他們將主機公升級到了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,意為"選裝"。
Unix目錄結構的來歷
unix 包含linux 的初學者,常常會很困惑,不明白目錄結構的含義何在。舉例來說,根目錄下面有乙個子目錄 bin,用於存放二進位制程式。但是,usr子目錄下面還有 usr bin,以及 usr local bin,也用於存放二進位制程式 某些系統甚至還有 opt bin。它們有何區別?長久以來,...
Unix 目錄結構的來歷
unix 包含linux 的初學者,常常會很困惑,不明白目錄結構的含義何在。舉例來說,根目錄下面有乙個子目錄 bin,用於存放二進位制程式。但是,usr子目錄下面還有 usr bin,以及 usr local bin,也用於存放二進位制程式 某些系統甚至還有 opt bin。它們有何區別?長久以來,...
Unix目錄結構的來歷
unix 包含linux 的初學者,常常會很困惑,不明白目錄結構的含義何在。舉例來說,根目錄下面有乙個子目錄 bin,用於存放二進位制程式。但是,usr子目錄下面還有 usr bin,以及 usr local bin,也用於存放二進位制程式 某些系統甚至還有 opt bin。它們有何區別?長久以來,...