操作系統---文件系統(文件別名中的硬鏈接和軟鏈接區別)

一、文件系統流程簡介

文件系統是操作系統一個重要的子系統,方便讀寫磁盤上的數據。主要講述三方面內容,第一方面是從用戶角度介紹如何進行文件讀寫操作,第二方面是介紹文件讀寫操作系統如何實現,最後一部分是介紹多磁盤管理。

二、文件系統與文件

2、文件系統和文件聯繫

文件系統是一種用於持久性存儲的系統抽象,也就是斷電後數據不會丟失,比如說磁盤。

  • 要讓用戶組織、控制、導航、訪問和檢索數據
  • 大多數的計算機系統包含文件系統,以及個人電腦、服務器、筆記本電腦、ipod,機頂盒等都有文件系統
  • Google也是由一個文件系統構成的(GFS)

文件是具有符號名,由字節序列構成的數據項集合。

  • 文件是文件系統的基本數據單位

  • 文件名是文件的表示符號

3、文件系統的功能

在這裏插入圖片描述

4、文件系統種類

在這裏插入圖片描述

5、文件頭的用途

文件屬性是用來表徵文件的一些基本信息,儲存在文件頭裏面。
在這裏插入圖片描述

6、文件描述符

在這裏插入圖片描述 從編程者的角度來看,通過字符串的名字打開文件,返回一個小整數的文件描述符f,read(f)把f文件的內容讀出來,最後close(f),大致就是這樣一個模式。這裏面最重要的就是這個整數形式的文件描述符,它代表文件給我們應用程序做各種各樣的訪問和控制,那整數如何代表呢?
在這裏插入圖片描述
文件描述符其實就是一個index索引,進程每打開一個文件,就會在打開文件表相應index存入對應文件的位置。我們都知道數組、列表它們都有索引,這裏的文件描述符就是這個索引,索引中存的就是文件的位置。

7、文件描述符中有哪些信息?

在這裏插入圖片描述

8、訪問文件的方法

在這裏插入圖片描述

9、文件結構

在這裏插入圖片描述

10、多用戶系統中文件的ACL

在這裏插入圖片描述

三、目錄

爲什麼要有目錄?因爲要組織文件,如果把所有文件堆在一個一維面上的話,用戶很難找到想要的文件。所以通過分層的方式,通過目錄,便於查找和組織文件。
在這裏插入圖片描述

1、目錄的基操

在這裏插入圖片描述

2、路徑遍歷查找文件的流程

在這裏插入圖片描述

3、文件系統掛載

在我們的操作系統中,有不同的文件系統,不同的文件系統要掛在不同的目錄下,來形成一個分層次的跨文件系統的訪問,把不同系統根目錄的位置稱爲掛載點。

在這裏插入圖片描述

4、文件別名

文件別名有兩種方式,一個是硬鏈接,一個軟鏈接。

  • 硬鏈接:不能跨目錄建立硬鏈接,硬鏈接其實就是兩個文件了,硬鏈接得到的文件名和原文件名指向的磁盤的inode節點是同一個,同時該inode中的引用計數會加1。刪除原文件,也只是該inode節點的引用計數減1而已。

inode不懂可以看下面這片博客:https://blog.csdn.net/weixin_44571270/article/details/105833450

  • 軟鏈接:可以跨目錄建立軟鏈接,軟鏈接得到的文件名存的是原文件的絕對路徑,也即是原文件如果被刪除,那麼就會出現懸空指針,也即是此軟鏈接得到的文件名失去了存在的意義。軟鏈接相當於win中的快捷方式。

5、循環檢測

在這裏插入圖片描述
inode的引用計數和軟鏈接的循環檢測,在python的垃圾回收機制中也有一個引用計數和循環引用的概念,但對象不一樣,避免混淆可以對比着看一下。
https://blog.csdn.net/weixin_44571270/article/details/105775608

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章