關於學習-Linux-系統結構的一些總結
如果大夥看到這個標題就覺得這篇文章會給出多麼有深刻意義的見解,那我個人覺得您可以移步啦!首先我先澄清下:我寫這篇文章目的,純粹出於對Linux 檔案系統結構的一知半解,所以在深入瞭解學習後出現的一篇文章。
作為一名IT 運維人員的我,在實際工作當中遇到Linux 故障的情形還挺多的,可以經常接觸到linux 系統實際生產環境,由於工作的原因接觸到Linux ,然後,理所當然開始學習Linux (自學),靜下心來慢慢的就進入那種忘我的狀態,而且會激發你的求知慾的。現在回想起來整體感覺挺好的,學習一段時間後就會進入瓶頸期,那麼就要尋求更快捷、更深入的解決思路— 書籍、前輩及培訓等。
一、歷史背景
言歸正傳,在分享關於Linux 系統結構的一些總結前,我想問下正在讀這篇文章的你一個問題:你是不是對Linux 的那麼多的目錄很費解,不明白為什麼這樣設計?是不是也在死記硬背Linux 中不同目錄的區別呢?舉例來說:根目錄下有一個子目錄/bin ,用於存放二進位制程式,但是,/usr 子目錄下面有個/usr/bin ,也用於存放二進位制程式,那它們有什麼區別呢?
其實,大家都知道,任何一個事情都有它背後的原因,Linux 目錄結構是由歷史造成的,簡單描述下透過故事形式加深理解。
話說當年它們用的盤只有可憐的1.5M ,隨著時間的延續,作業系統(也就是根目錄)也會變得越來越大,直到第一塊盤已經裝不下了。於是,他們這時候只好增加第二塊盤,並且指定第一塊盤只能用於存放系統程式,而第二塊盤只能用於存放使用者自己的程式,目錄名稱/usr 就是這麼來的。也就是說,根目錄--"/" 掛載在第一塊盤,使用者程式---"/usr" 目錄掛載在第二塊盤。除此之外,兩塊盤的目錄結構完全相同,第一塊盤的目錄(/bin, /sbin, /lib, /tmp... )都在/usr 目錄下重新出現一次。漸漸地,第二塊盤也滿了,他們只好又加了第三塊盤,掛載的目錄點指定為/home ,同時指定/usr 目錄用於存放使用者的程式,/home 目錄用於存放使用者的資料。
隨著歷史的車輪不斷的進步,Linux 目錄結構就這麼建立起來了。
二、虛擬檔案系統(VFS )
Linux 作業系統是由Unix 進化而來,所以它和 UNIX 作業系統一樣,是將新的檔案系統透過一個稱為“掛載”的操作將其掛裝到某個目錄上,從而能夠讓不同的檔案系統組合成為一個整體。
Linux 作業系統的一個重要特點就是它能夠支援許多不同型別的檔案系統。Linux 能夠支援Ext2 、FAT 、VFAT 、FAT32 、MINIX 等不同型別的檔案系統,從而可以方便地和其它作業系統交換資料。Linux 支援不同的檔案系統的特性引出一個新的概念--- 虛擬檔案系統. (VirtualFileSystem,VFS ):
虛擬檔案系統(VFS )是 Linux 核心中非常有用的一個層面,因為它在使用者和檔案系統之間提供了一個交換層:
三、檔案結構目錄
我們先了解檔案結構和目錄的概念:
檔案結構是檔案存放在磁碟等儲存裝置上的一種織方法,主要體現在對檔案和目錄的組織上。而目錄則是提供了管理檔案的一個方便而有效的途徑。
目前我們接觸到的Linux 目錄結構,在安裝的時候,就已經為使用者建立了檔案系統和完整、固定的目錄組成結構,並指定了每個目錄的用途及檔案型別。
完整的目錄樹的有 root 、/usr 、/var 、/home 等。目前的佈局大大便於在Linux 計算機之間共享檔案系統。
從上圖中就可以看出Linux 採用的結構是樹型的。最上層是根目錄---“/” ,其他的所有目錄(比如/usr/var/bin/home 等)都是從根目錄-“/” 出發而生成的。
/ :存放系統程式,也就是開發的Unix 或Linux 程式。
/usr :存放Unix 或Linux 系統商(比如IBM 和HP )開發的程式。
/usr/local :存放使用者自己安裝的程式。
/opt :在一些系統中,用於存放第三方廠商開發的程式,所以取名為option ,翻譯過來的意思為" 選裝" 。
四、總結
瞭解以上三點非常有助於理解Linux 的檔案結構目錄的,不過第二點--- 虛擬檔案系統(VFS )確實比較抽象,不好理解,不過沒關係沒有人可以一口吃成胖子,慢慢來等到一定階段時你會發現有些問題根本不用糾結,自然而然就會了。
在學習Linux 檔案系統結構過程中,經常泡在網上搜尋相關資料,不經間發現有一本關於Linux 的書籍叫 著實不錯,內容循序漸進,通俗易懂,貼近實戰,有財力的同仁們還可以跟隨書籍作者培訓課程拿下紅帽Redhat 認證這塊敲門磚,有助於職業發展的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2739147/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於學習 Linux 系統結構的一些總結Linux
- Vue學習筆記 - 關於過渡效果的一些總結Vue筆記
- 跟阿銘學Linux-相關學習連結Linux
- 關於結構體型別的學習結構體型別
- 關於資料結構的學習心得資料結構
- 關於Mysql使用的一些總結MySql
- MySql關於鎖的一些總結MySql
- 學習 CodeWhisperer 的一些總結
- 關於Code Review的一些思考總結View
- 對於api管理系統的一些總結和思考API
- Bootstrap柵格系統學習總結boot
- 資料結構學習總結--圖資料結構
- 【Linux】關於Linux的系統程式設計總結Linux程式設計
- 關於Html+css階段學習總結HTMLCSS
- 總結關於CPU的一些基本知識
- 爬蟲學習中的一些總結爬蟲
- 關於DDD和COLA的一些總結和思考
- 關於查詢最佳化的一些總結
- 關於 變址影像(indexed image) 的一些總結Index
- Elasticsearch 一些命令彙總 以及學習總結Elasticsearch
- JS/JSP學習的一些問題總結JS
- 關於近期的總結
- 關於結構體中指標的一些探討結構體指標
- Linux學習(三)之系統目錄結構Linux
- android 關於記憶體優化的一些總結Android記憶體優化
- 關於程式和執行緒 自我的一些總結執行緒
- 這一次,終於系統的學習了 JVM 記憶體結構JVM記憶體
- mysql關於variable的總結MySql
- sqlserver關於always on的總結SQLServer
- 學習總結
- 網路、HTTP相關學習總結HTTP
- tensorflow相關函式學習總結函式
- 關於集合中一些常考的知識點總結
- 關於程式碼質量度量和分析的一些總結
- 關於前端工程化(基建)的一些總結和思考前端
- docker的學習總結Docker
- MongoDB的學習總結MongoDB
- 繼續學習webpack4的一些配置總結Web