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,意為”選裝”。
相關文章
- PostgreSQL 目錄結構SQL
- fabric 目錄結構
- dedecms 目錄結構
- linux的目錄結構Linux
- Laravel的目錄結構分析Laravel
- Tomcat目錄結構Tomcat
- 分析Angular目錄結構Angular
- Jmeter之目錄結構JMeter
- ecos框架目錄結構框架
- linux 目錄結構Linux
- 系統目錄結構
- 程式碼目錄結構記錄
- DiscuzX2.5完整目錄結構【模板目錄template】
- 2.3 sqlmap目錄及結構SQL
- PostgreSQL:原始碼目錄結構SQL原始碼
- postgre目錄結構簡介
- ThinkPHP5.0目錄結構PHP
- Android 目錄結構分析Android
- Helm目錄結構講解
- Tomcat目錄結構解析Tomcat
- golang開發目錄結構Golang
- Apache原始碼目錄結構Apache原始碼
- linux下目錄結構Linux
- springboot 目錄結構Spring Boot
- iOS基礎:目錄結構iOS
- Goldengate_目錄結構Go
- Linux目錄結構-轉Linux
- SpringBoot中的目錄結構Spring Boot
- 8.6 規劃合理的目錄結構
- 一張圖掌握 Laravel 的目錄結構Laravel
- Tomcat的目錄結構詳解Tomcat
- (2)caffe總結之目錄結構
- (一)Linux之目錄結構Linux
- 初識Linux目錄結構Linux
- linux文件和目錄結構Linux
- Glassfish目錄結構一窺(一)
- mysql資料目錄結構(轉)MySql
- SQLServeronLinux的檔案和目錄結構SQLServerLinux