JAVA File類 分析(二)

來源:互聯網
上載者:User

標籤:作業系統   內容   三級   過程   file   儲存   uid   style   windows   

本章開始介紹UNIX檔案系統。

檔案系統是怎樣管理檔案的呢?那咱們要先檔案的儲存介質開始--磁碟

磁碟是電腦系統的一個硬體裝置,檔案系統為了可以管理磁碟。對其進行了三層抽象(本文全部內容均指UNIX檔案系統,windows檔案系統有興趣的同學自行研究!~)

第一層抽象:將一整塊磁碟分割

第二層抽象:將磁碟切割為block

第三層抽象:將block 邏輯上劃分為四個地區

第三個層次也就是咱們要研究的部分

Unix系統的分區例如以下:

引導塊 超級塊 i節點表 檔案儲存體區
(1)引導塊:0號塊。是每一個檔案系統的第一塊,儲存的是用於系統啟動時引導運行作業系統的核心程式,當整個檔案系統由多個檔案系統構成時。僅僅有根檔案系統的引導塊才有效。

(2)超級塊:1號塊,通常也成為管理塊。是檔案系統的第二塊,也是檔案系統的頭。存放安裝和管理檔案系統的所有管理資訊。包含檔案系統大小、檔案系統所在的裝置區、i節點表大小、空暇空間大小、空暇鏈表頭等。

(3)i節點表:由若干塊構成的一片磁碟地區,i節點表在超級塊中指明,一個i節點號相應一個檔案,i節點相關內容例如以下:

mode
type
uid
gid
link.no
size
addr.pt
time
佔用標誌。0:空,1:佔用
檔案類型
屬主
屬組
連結數
大小
指向檔案實際資料區塊的指標
近期訪問/改動日期時間

每一個檔案系統的屬性,如大小,檔案的全部者,近期改動時間等,都記錄在I-節點的結構中。全部的I-節點都有同樣的大小

(4)檔案儲存體區:除了前三部分外。其餘空間都是檔案儲存體區,該區佔了整個儲存空間的絕大部分。

生命短暫,咱們還是通過執行個體來看

一、建立檔案:檔案系統是怎樣分配這三個地區的

執行一個cat spwd.c > test


那麼這個過程檔案系統做了什麼呢?(至於裡面的管道,有時間會有專門一篇來分析)
建立的步驟例如以


建立一個檔案主要有四個操作

1、找到一個空i-節點隱藏檔屬性

2、核心從free的資料block中找出可以隱藏檔大小的幾個block。儲存資料圖中是找出A,B,C三塊

3、將A,B,Cblock記錄到第40個block i節點上(i-節點,一共能儲存13個block。只能儲存10個資料block。後3個空間在存在大檔案使用,11塊叫二級間接塊,12塊叫三級間接塊,13呢?那就說明檔案太大了,須要又一次定義block的大小,block大了,自然i-節點就能夠放下了)

4、將i-節點 加入到目中。映射關係是40:test,檔案夾下邊將討論

二、什麼是檔案夾

檔案夾是一種包括檔案名稱字列表的特殊檔案,不同的系統實現方式不同,可是,其抽象模型基本一致-------i-節點和檔案名稱列表。

知道這些 就差點兒相同了。

三、檔案是怎樣被讀取出來的呢?

能夠看做是建立檔案的逆操作。

1、去檔案夾 尋找與test檔案名稱同樣的i-節點號

2、去順序為40i-節點的記錄中 尋找blockA,B,C

3、讀取A,B,C

4、拷貝到使用者空間

須要注意是1,2,3 過程都是在核心空間中。第4步 才到使用者堆棧空間,這裡有涉及到了核心態和使用者態。依舊不會再這裡討論,內容太多了。

以上不過粗略的介紹,檔案系統涉及內容還有非常多,比方大檔案的儲存。多個檔案系統的整合,虛擬檔案系統等

在結束本篇之前。再說兩句,一個block 是5 1 2位元組,我們常常使用的find 命令中size選項 的大小就是blcok為計算。find 命令的使用請自行查閱man find 手冊

至於是不是5 1 2位元組,那麼咱們就實踐一下。spwd是9368個位元組


執行一下 find   .  -type f -size +19

意思尋找當前檔案夾下type為檔案類型,大於19個block的檔案。

沒有找到,那麼咱們執行 find   .  -type f -size +18      (18*512=9126)


OK 找到了。

今天就到這裡,接下來將討論檔案屬性和檔案夾




JAVA File類 分析(二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.