1. 程式人生 > >Linux檔案系統分析之二(超級塊,i節點點陣圖和邏輯塊點陣圖)

Linux檔案系統分析之二(超級塊,i節點點陣圖和邏輯塊點陣圖)

第二個扇區和第一個扇區一樣屬於引導塊,這裡就不列舉出其內容了,這裡的一塊是兩個扇區即1024B。接下來的一塊就是大名鼎鼎的超級塊了。其內容如下:
00000400h: E0 01 A0 05 01 00 01 00 13 00 00 00 00 1C 08 10 ; ??............
00000410h: 7F 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ...............
00000420h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000430h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000440h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000450h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................

00000460h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
後面一直到該磁碟塊結束的地方全部都是0:
000007f0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
    下面列出這個超級塊的結構:
struct super_block{
 unsigned short s_ninodes; i節點數(1E0=480)
 unsigned short s_nzones; 邏輯塊數(5A0=1440剛好是軟盤的容量)
 unsigned short s_imap_blocks; i節點點陣圖所佔用的資料塊數(1塊)
 unsigned short s_zmap_blocks; 邏輯塊點陣圖所佔用的資料塊數(1塊)

 unsigned short s_firstdatazone; 第一個資料邏輯塊號(13H=19塊)
 unsigned short s_log_zone_size; log(資料塊數/邏輯塊)
 unsigned long  s_max_size; 檔案最大長度
 unsigned short s_magic;  檔案系統魔數(137F)
...//後面的成員僅出現在記憶體中,不列舉出來。
    這個superblock的資訊就這麼多,它表示該檔案系統有480個i節點,邏輯塊數是1440,每塊是1024B,所以總容量就是軟盤容量了。i節點點陣圖和邏輯塊點陣圖都只佔用一個數據塊。第一個資料塊塊號是19號,這裡存放的是"/"根檔案了,等會兒就可以看到了。

    接下來的一個磁碟塊就是所謂的i節點點陣圖塊了,這已經是第3個磁碟塊了。
00000800h: FF FF FF FF FF FF DD FF 7F 01 00 00 00 00 00 00 ; ???????.......
00000810h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000820h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000830h: 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF ; ............????
00000840h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????
00000850h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????
00000860h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????
後面一直到該磁碟塊結束的地方全部都是1:
00000bf0h: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; ????????????????
    這裡到00000830h行0結束的地方,總共有60個位元組,即480位,與超級塊中的i節點數480吻合。這480個位中,為1的表示i節點在用,為0的表示空閒。
    邏輯塊點陣圖的原理和i節點點陣圖一模一樣,這裡省略其分析。到此已經分析完了4個磁碟塊。

相關推薦

Linux檔案系統分析(超級i節點點陣邏輯點陣)

第二個扇區和第一個扇區一樣屬於引導塊,這裡就不列舉出其內容了,這裡的一塊是兩個扇區即1024B。接下來的一塊就是大名鼎鼎的超級塊了。其內容如下:00000400h: E0 01 A0 05 01 00 01 00 13 00 00 00 00 1C 08 10 ; ??..

Linux系統"皮毛系列"(Linux檔案系統的簡介

一、Linux檔案系統 1、檔案系統簡介 Linux系統的理念是:一切都是檔案。 其實這個是Unix系統的哲學思想,而Linux是由Unix系統而來,所以也繼承了這個思想: Unix系統把一切資源都看作是檔案,包括硬體裝置。硬體所形成的檔案,通常稱為裝置檔案。這樣使用者

Linux 檔案系統(一)---虛擬檔案系統VFS----超級、inode、dentry、file

一: 什麼是檔案系統,詳見:http://zh.wikipedia.org/zh/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F 其實一句話就是管理這塊檔案的機制(組織方式,資料結構之類...) Linux系統中存在很多的檔案系統,例如常見的ex

linux檔案系統mount流程分析

本質上,Ext3 mount的過程實際上是inode被替代的過程。例如,/dev/sdb塊裝置被mount到/mnt/alan目錄。那麼mount這個過程所需要解決的問題就是將/mnt/alan的dentry目錄項所指向的inode遮蔽掉,然後重新定位到/dev/sdb所

linux檔案系統系統分析--(十)vfs層的三個hashtable

在vfs_caches_init中有三個重要的hashtable:mount_hashtabledentry_hashtable inode_hashtable Hashtable有什麼作用?主要的查詢的效率很高,vfs層用這三個就是為了提高查詢效率。另外一個,inode

Linux檔案系統(五)---三大緩衝區buffer緩衝區

在檔案系統中,有三大緩衝為了提升效率:inode緩衝區、dentry緩衝區、塊緩衝。 (核心:2.4.37) 二、塊buffer緩衝區 0、整體來說,Linux 檔案緩衝區分為page cache和buffer cache,每一個 page cache 包含若

Linux 虛擬檔案系統四大物件:超級、inode、dentry、file之間關係

更多嵌入式原創文章,請關注公眾號:一口Linux # 一:檔案系統 ## 1. 什麼是檔案系統? 作業系統中負責管理和儲存檔案資訊的軟體機構稱為檔案管理系統,簡稱檔案系統。 通常檔案系統是用於儲存和組織檔案的一種機制,便於對檔案進行方便的查詢與訪問。 檔案系統是對檔案儲存裝置的空間進行組織和分配,負責

linux音頻alsa-uda134x驅動分析(時鐘)

lin pen play 個數 inter and 文本 ted word Audio Clocking音頻時鐘==============This text describes the audio clocking terms in ASoC and digital au

第二章(連續時間系統的時域分析

image 狀態 技術分享 得出 滿足 激勵 方程 alt 學習   零輸入響應和零狀態響應   這名字取得有點怪,其實零輸入響應即是狀態響應,而零狀態響應就是輸入響應。   零狀態響應:不考慮起始時刻系統儲能的作用(起始組狀態為0),由系統的外加激勵信號所產生的響應   

Linux高階程式設計基礎——檔案系統程式設計遞迴遍歷/home目錄

檔案系統程式設計之遞迴遍歷/home目錄 /編寫程式完成以下功能: 1.遞迴遍歷/home目錄,打印出所有檔案和子目錄名稱及節點號。 2.判斷檔案型別,如果是子目錄,繼續進行遞迴遍歷,直到遍歷完所有子目錄為止。/ #include <stdio.h> #include &

Linux高階程式設計基礎——檔案系統程式設計目錄檔案

檔案系統程式設計之目錄檔案 //1.新建/home/user目錄; //2.把當前工作路徑移至/home/user目錄; //3.列印當前工作路徑; #include <stdio.h> #include <stdlib.h> #include <sys

Linux高階程式設計基礎——檔案系統程式設計操作檔案屬性

檔案系統程式設計之操作檔案屬性 /編寫程式實現以下功能: 1.新建檔案,設定檔案許可權遮蔽字為0; 2.建立該檔案的硬連結檔案,列印硬連結檔案的inode節點號和檔案大小; 3.建立該檔案的軟連結檔案,列印軟連結檔案的inode節點號和檔案大小; 列印軟連結檔案中的內容; 4.列印原始檔

Linux高階程式設計基礎——檔案系統程式設計檔案型別資訊

/*檔案系統程式設計之檔案型別資訊——實驗題/ //編寫程式實現以下功能: //1.輸入檔名稱,能夠判斷檔案型別,判斷實際使用者對該檔案具有哪些存取許可權; //2.要求打印出檔案型別資訊,inode節點編號,連結數目,使用者id,組id,檔案大小資訊; //3.修改檔案的許可權為當前使

Linux高階程式設計基礎——檔案系統程式設計檔案寫入操作

檔案系統程式設計之檔案寫入操作——實驗題 //編寫程式碼,完成以下功能: //1.建立檔案file1,寫入字串“abcdefghijklmn”; //2.建立檔案file2,寫入字串“ABCDEFGHIJKLMN”; //3.讀取file1中的內容,寫入file2,使file2中的字串內容為“a

Linux高階程式設計基礎——檔案系統程式設計檔案描述符

檔案系統程式設計之檔案描述符——實驗題 /*編寫程式碼,完成以下功能: 1.建立新檔案,該檔案具有使用者讀寫許可權。 2.採用dup/dup2/fcntl複製一個新的檔案描述符,通過新檔案描述符向檔案寫入“class_name”字串; 3.通過原有的檔案描述符讀取檔案中的內容,並且列印顯示;*/

linux 檔案系統superblock

為了實際測試這個pagecache和對裸盤操作的區別,我一不小心敲錯命令,將一個磁碟的super_block給抹掉了,全是0, dd if =/dev/zero of=/dev/sda2 bs=4096 count=1 seek=2234789 2234789是我的某個測試檔案的

Android編譯系統分析幾個關鍵點(

已開通新的部落格,後續文字都會發到新部落格 http://www.0xfree.top Android 編譯系統解析系列文件 解析lunch的執行過程以及make執行過程中include檔案的順序 Android編譯系統分析之lunch分析 Android

Linux檔案系統許可權體系

目錄 ①檔案屬性mode 什麼是檔案的許可權: >>>Linux一切皆檔案,多個使用者登入作業系統,系統有預設檔案,root檔案,每個使用者也有自己的檔案,此時需要對檔案系統進行       

Linux檔案系統使用者與組管理

目錄 ①使用者與組管理之重要檔案 (1)/etc/passwd (2)/etc/shadow (3)/etc/login.defs (4)/etc/skel (目錄) (5)/etc/de

Linux檔案系統壓縮資料&歸檔資料(打包)

目錄 ①Linux檔案壓縮工具 工具 檔案拓展名 gzip .gz bzip2 .bz2 zip