【筆記】Linux文件系統(tǒng)概念簡介

文件

Linux幾乎將所有的資源當(dāng)做文件來處理。除了常見的可以寫入字節(jié)流的普通文件,還包括設(shè)備文件(在/dev目錄下),內(nèi)存映像文件(在/proc目錄下)等等。

現(xiàn)代操作系統(tǒng)依靠特殊的硬件特性來禁止用戶進(jìn)程直接訪問底層硬件部分。通常CPU有至少有兩種執(zhí)行模式: 用戶程序的非特權(quán)模式內(nèi)核的特權(quán)模式。Linux將他們分別稱為用戶態(tài)(user mode)和內(nèi)核態(tài)(kernel mode)。所以對(duì)于大多數(shù)文件操作都需要通過系統(tǒng)調(diào)用來實(shí)現(xiàn)。

Linux文件分類

  • 目錄(directory)
  • 普通文件(regular file)
  • 軟鏈接(soft link,也叫symbolic link)
  • 面向塊的設(shè)備文件(block-oriented device file)
  • 面向字符的設(shè)備文件(character-oriented device file)
  • 套接字(socket)

硬鏈接和軟鏈接

  1. 創(chuàng)建硬鏈接的命令如下:
// 創(chuàng)建一個(gè)由p1標(biāo)識(shí)的文件的硬鏈接p2
// 索引節(jié)點(diǎn)相同
ln p1 p2

硬鏈接相當(dāng)于一個(gè)直接指向文件實(shí)體的指針。

限制:

  • 不能給目錄創(chuàng)建硬鏈接。
  • p1和p2所在分區(qū)的文件系統(tǒng)必須相同。
  1. 創(chuàng)建軟鏈接的命令如下:
// 創(chuàng)建一個(gè)由p1標(biāo)識(shí)的文件的軟鏈接p2
// p2索引節(jié)點(diǎn)指向p1
ln -s p1 p2

軟連接相當(dāng)于一個(gè)指向硬鏈接的指針。軟鏈接不存在硬鏈接的限制。

當(dāng)前工作目錄

每一個(gè)linux進(jìn)程都有一個(gè)當(dāng)前工作目錄,它屬于進(jìn)程執(zhí)行上下文(excution context)的一部分。當(dāng)程序?qū)ξ募M(jìn)行操作時(shí),如果使用的是相對(duì)路徑,則會(huì)在當(dāng)前工作目錄下查找該文件。

文件的元數(shù)據(jù)---索引節(jié)點(diǎn)

在Linux中,除了設(shè)備文件和特殊的文件系統(tǒng)外,文件由字節(jié)序列組成,不包含控制字符,比如文件長度,文件結(jié)束字符(end-of-file,EOF)等。

文件系統(tǒng)處理文件所需要的信息包含在一個(gè)稱為索引節(jié)點(diǎn)(inode)的結(jié)構(gòu)中,每個(gè)文件都有對(duì)應(yīng)一個(gè)索引節(jié)點(diǎn)(inode),文件系統(tǒng)使用索引節(jié)點(diǎn)(inode)來標(biāo)識(shí)文件。

Posix標(biāo)準(zhǔn)規(guī)定索引節(jié)點(diǎn)(inode)至少包括以下內(nèi)容:

  • 文件類型

  • 以字節(jié)為單位文件大小

  • 文件所屬設(shè)備標(biāo)識(shí)符

  • 與文件相關(guān)的硬鏈接個(gè)數(shù)(Linux中,當(dāng)文件的硬鏈接個(gè)數(shù)為0時(shí),文件將被刪除)

  • 在文件系統(tǒng)中標(biāo)識(shí)文件的索引節(jié)點(diǎn)號(hào)

  • 文件所屬用戶的uid

  • 文件所屬組的gid

  • 幾個(gè)時(shí)間戳,索引節(jié)點(diǎn)狀態(tài)改變時(shí)間,文件最后訪問時(shí)間,文件最后修改時(shí)間

  • 訪問權(quán)限和文件模式

訪問權(quán)限和文件模式

  • r:讀取權(quán)限
  • w:寫入權(quán)限
  • x:執(zhí)行權(quán)限
  • suid
  • sgid
  • sticky
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容