Linux根文件系統結構再認識

Linux根文件系統結構再認識
劉建文(http://blog.csdn.net/keminlau )

INTRO

盡管Linux的根文件系統在形式表現上是一體的(所有數據目錄均為根目錄下的子目錄),但實際它們是多個不同的【邏輯主體】(為了實現不同的邏輯功能)組合在一起的,參見下圖。這也解釋了為什么有些節點(如/var)可以掛接到不同磁盤分區上。劃分這些邏輯部分對清晰把握根文件系統結構,以及整個系統的行為都有很大的好處。在劃分之前,先看看“文件系統結構標準”。

?

文件系統結構標準

文件系統結構標準 (Filesystem Hierarchy Standard,下稱FHS)定立的目標之一是,程序可按用途性質被安裝到指定的位置,用戶也能預知程序的安裝的文件和目錄的位置。FHS通過定義文件系統各部分的涵義、用途,再加上列舉所有的特殊情況,如歷史遺留問題,達到了這個目標。

LINUX系統的數據文件可以根據【雙重標準】來對它們分類:共享的與獨享的(shareable vs. unshareable)、變化的和靜態的(variable vs. static)。如果數據文件無法按照雙重標準分類,它們必須另起目錄存放,這樣做的原因是可以把不同【使用性質】(usage characteristics)的數據文件分開不同文件系統(磁盤分區)存放。

  • “共享的” (Shareable)是指數據與平臺不相關的,如/usr;相反“獨享的”(Unshareable)指數據是平臺相關的,如配置數據/etc。
  • “靜態的”數據是相對非管理員用戶而言的,沒有更變的權限;而“變化的”則相反。分隔靜態與動態數據的目的是為了可把靜態數據安裝到一個單獨的只讀的介質(文件系統)中,不必與動態數據一起做頻繁的事務管理,比如定期備份。

與數據的【靜動態性】面向“用戶”不同,數據的【共享專用性】是面向“主機”而言,也就是說,有些數據是本機專用的,而另外一些是多個主機(可是本地的FHS兼容主機,可以是遠程主機)共享的。比如根目錄分區是本機專用的,而/usr所在分區可共享給多個FHS兼容主機。

雙重標準是發展而來的,被納入FHS,為了支持這個標準,過去默認存放在/usr 、/var、 /etc 等目錄的數據都做了相應的調整。

Linux根文件系統邏輯組成

參照FHS,Linux系統按照邏輯功能大致分為以下目錄(以具體目錄表現邏輯功能,有意思):

  • /
  • /usr
  • /var
  • /opt
  • /home

P.S. 以上目錄均可單獨安裝到一個分區上,最終掛接入根下。

/ (專用的靜態的)

根目錄的功能由其名可略知,根目錄是系統的根本所在(Essential),是系統之所以為本系統的特征表現。也可這樣理解,根目錄的內容不是可選的,是系統基本功能必備部分。

P.S.如何理解“根本所在”?

我們知道,Linux系統有內核,還會有shell,有gred,還有嗎?有vi吧,有GCC吧,有ifconfig吧,還有可能X下大量應用程序。所謂“根本所在”,在內容表現上,就是包括最基本的最通用的部分。當然這部分內容還可能有一些是可選的,這個取決你如何定義基本系統。

根目錄的邏輯功能分為兩層,第一層是應用的,第二層是管理(administration)的。應用層在上面說了,它用來組成基本系統,包括常用工具(如 ls,放置于/bin),和一些共享庫等。第二層是管理用的,對系統進行啟動、恢復、修復和配置等。由于根目錄是系統的“根本所在”,管理目的,并且是 HOST相關的,如果可以應單獨安裝在一個盡可能小的分區上。

如何定義基本系統?

由于計算系統基本上是邏輯的,基本系統的定義取決計算任務,而計算任務本身是交錯復雜和多樣的,所以只能用一個特殊的例子來說明。比如要進行啟動、恢復、修復和配置的系統需要些什么?

  • To boot a system, enough must be present on the root partition to mount other ?lesystems. This includes utilities, con?guration, boot loader information, and other essential start-up data.
  • To enable recovery and/or repair of a system, those utilities needed by an experienced maintainer to diagnose and reconstruct a damaged system must be present on the root ?lesystem.
  • To restore a system, those utilities needed to restore from system backups (on ?oppy, tape, etc.) must be present on the root ?lesystem

?

根目錄必選組成目錄

  • /bin 基本工具或命令
  • /sbin 系統管理工具或命令
  • /etc 主機相關(Host-speci?c)的配置數據
  • /lib 基本共享庫和內核模塊
  • /dev 設備文件
  • /boot 引導程序
  • /root 管理員的工作目錄
  • /mnt 系統管理員的臨時掛接點
  • /tmp 系統級臨時文件
  • /media 移動設備掛接點

/usr (共享的靜態的)

/usr 目錄是系統的一大組成部分。很難用一句說明/usr的用途。不過我們可以透過/usr 的雙重標準性質與/和/var對比來理解/usr在系統中的角色。首先,與/相同,/usr是靜態的,也就是說/usr下的數據普通用戶是不能更改的;但與/不同的是,/usr是共享的,也就可知,/usr下的數據與主機平臺不相關的。我們大概知道,/usr與/類似安裝有二進制程序、共享庫和配置數據,那么從/usr 的雙重標準性質可推理得,這些數據及代碼都是獨立于運行主機的。

而與/var對比呢?/var基本上是動態的和共享的(少量是主機相關的,如/var/log)。/var保存大部分是程序運行期的動態生成數據。

/usr必選組成目錄

  • /usr/bin Most user commands
  • /usr/include Header ?les included by C programs
  • /usr/blib Libraries
  • /usr/local Local hierarchy (empty after main installation)
  • /usr/sbin Non-vital system binaries
  • /usr/share Architecture-independent data

/var

……

/home : User home directories (optional)

……


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/254381.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/254381.shtml
英文地址,請注明出處:http://en.pswp.cn/news/254381.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C#浮點數據類型

文章目錄博主寫作不容易,孩子需要您鼓勵 萬水千山總是情 , 先點個贊行不行 數據類型含義取值范圍有效數字位數float32位浮點數1.5X10^-45 ~ 3.4X10^387double64位浮點數5.0X10^-324 ~ 1.7X10^30815 ~ 16 注意: 浮點數有一定的取值范圍和有效數字限制…

在Window10上使用Ubuntu終端

在Windows10上使用Ubuntu終端 習慣了ubuntu的開發,回到windows的command可以說是很絕望了。之前偶爾用windows時一直用git-bash來代替。但是發現windows已經添加了對ubuntu子系統的支持,那直接用不是更爽。 1.安裝 進入控制面板,開啟適用于Li…

httpClient實現微信公眾號消息群發

1、實現功能  向關注了微信公眾號的微信用戶群發消息。(可以是所有的用戶,也可以是提供了微信openid的微信用戶集合) 2、基本步驟 前提: 已經有認證的公眾號或者測試公眾賬號 發送消息步驟: 發送一個請求微信去獲取ac…

為靜態博客生成器WDTP移植了一款美美噠主題

前言 關于這個主題的移植后公布,我已經聯系了主題作者并取得同意,這個主題是一夜涕所寫的Sgreen,預覽圖見下 關于WDTP 就是一個很方便很便攜很快速的cpp編寫的帶gui跨平臺的開源的靜態博客生成器,軟件作者更新記錄在V站可以找到,軟…

TCP/IP數據包結構分析

一般來說,網絡編程我們只需要調用一些封裝好的函數或者組件就能完成大部分的工作,但是一些特殊的情況下,就需要深入的理解 網絡數據包的結構,以及協議分析。如:網絡監控,故障排查等…… IP包是不安全的&am…

C#decimal數據類型

文章目錄博主寫作不容易,孩子需要您鼓勵 萬水千山總是情 , 先點個贊行不行 為適應高精度的財務和貨幣計算的需要,C#提供了十進制decimal類型。decimal類型數據特征如下表所示: 數據類型含義取值范圍有效數字位數decimal128位高精度十進制…

世界杯快到了,看我用Python爬蟲實現(偽)球迷速成!

還有4天就世界杯了,作為一個資深(偽)球迷,必須要實時關注世界杯相關新聞,了解各個球隊動態,這樣才能在一堆球迷中如(大)魚(吹)得(特)水…

Bootstrap學習筆記(四)-----Bootstrap每天必學之表單

本文主要講解的是表單,這個其實對于做過網站的人來說,并不陌生,而且可以說是最為常用的提交數據的Form表單。本文主要來講解一下內容: 1.基本案例2.內聯表單3.水平排列的表單4.被支持的控件5.靜態控件6.控件狀態7.控件尺寸8.幫助文…

LVS--NAT模型配置

環境準備 管理IP地址角色備注192.168.11.131調度器(Director)對外提供VIP服務的地址為192.168.1.114192.168.11.132RS1 網關為192.168.11.131192.168.11.129RS2 網關為192.168.11.131將Directory開啟內核轉發 Linux系統默認是禁止數據包轉發的。所謂轉發…

STL中list的使用(理論)

STL中的list就是一雙向鏈表&#xff0c;可高效地進行插入刪除元素。現總結一下它的操作。文中所用到兩個list對象c1,c2分別有元素c1(10,20,30) c2(40,50,60)。還有一個list<int>::iterator citer用來指向c1或c2元素。list對象的聲明構造()&#xff1a;A. list<in…

C#數據類型轉換—使用Convert類轉換

文章目錄簡介用例博主寫作不容易&#xff0c;孩子需要您鼓勵 萬水千山總是情 , 先點個贊行不行 簡介 System.Covert類就是專門進行類型轉換的類&#xff0c;Convert類提供的方法可以實現各種進本數據類型之間的轉換。Convert類的常用方法如下表&#xff1a; 方法說明ToBo…

服務器租用單線、雙線、bgp 相比有哪些區別優勢?

2019獨角獸企業重金招聘Python工程師標準>>> 在IDC行業中&#xff0c;服務器的穩定性、安全性是考核服務商的主要指標&#xff0c;影響這兩個指標的因素有很多&#xff0c;其中比較重要的有三個&#xff0c;分別是服務器的配置、機房骨干網寬帶和機房的線路。我們常…

SQL Server 數據庫的維護(四)__游標(cursor)

--維護數據庫-- --游標(cursor)-- --概述&#xff1a; 注&#xff1a;使用select語句查詢結果的結果集是一個整體&#xff0c;如果想每次處理一行或一部分行數據&#xff0c;游標可以提供這種處理機制。可以將游標理解為指針。指針指向哪條記錄&#xff0c;哪條記錄即是被操作記…

關于在unity中動態獲取字符串后在InputField上進行判斷的BUG

今天想做一個簡單的密碼鎖定控制功能&#xff0c;但是出現了問題。我是在游戲開始時讀取streamingAsset中的text中的文本&#xff0c;其實就是密碼如下圖密碼是123456789 然后我在程序中輸入了該密碼出現錯誤&#xff0c;居然錯了。 然后我打印讀取的文本信息是什么、沒錯啊。然…

轉載 調用xvid 實現解碼

2011-06-01 00:26:14) 轉載view plaincopy to clipboardprint? /// intinit_decoder() { intret; xvid_gbl_init_t xvid_gbl_init; xvid_dec_create_txvid_dec_create; memset(&xvid_gbl_init, 0,sizeof(xvid_gbl_init_t)); memset(…

C# 數值和字符串之間的相互轉換

文章目錄方法用例ToString&#xff08;&#xff09;方法Parse&#xff08;&#xff09;方法博主寫作不容易&#xff0c;孩子需要您鼓勵 萬水千山總是情 , 先點個贊行不行 方法 ToString&#xff08;&#xff09;方法&#xff1a;數值類型的 ToString&#xff08;&#xff…

LeetCode Reverse Words in a String III

原題鏈接在這里&#xff1a;https://leetcode.com/problems/reverse-words-in-a-string-iii/#/description 題目&#xff1a; Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial wo…

創業感悟:技術兄弟為什么一直沒有起來(1)

相信很多做技術的朋友&#xff0c;看到“人脈”兩個字&#xff0c;就顯得有些敏感&#xff0c;有人甚至產生一種“抵觸”的心理。 因為在很多人的心中&#xff0c;會自動的把“人脈”和“關系”關聯起來&#xff0c;會把“人脈”與“走后門”&#xff0c;甚至會和“酒桌文化”&…

kali開啟ssh

修改 vi /etc/ssh/sshd_config 1.將 permitrootlogin 前面的注釋去掉,并且后面改為yes 如果沒有則添加permitrootlogin yes 2.將#PasswordAuthentication no的注釋去掉&#xff0c;并且將NO修改為YES //kali中默認是yes 3.按Esc , 同時按shift和冒號鍵 ,輸入wq &#xff0c;回…

C# 引用類型與值類型轉換-裝箱和拆箱

文章目錄簡介用例裝箱拆箱博主寫作不容易&#xff0c;孩子需要您鼓勵 萬水千山總是情 , 先點個贊行不行 簡介 拆箱就是把 “引用” 類型轉化為 “值” 類型&#xff1b; 裝箱就是把 “值” 類型轉化為 “引用” 類型&#xff1b; 裝箱與拆箱是數據類型轉換的一種特殊應用…