FFS:分區中的邏輯和物理塊
我正在閱讀適用於 UNIX 的快速文件系統,它在第 3 頁上說以下內容:
這裡的“分區”是指磁碟驅動器上物理空間的細分。在傳統文件系統中,與在新文件系統中一樣,文件系統實際上位於可能重疊的邏輯磁碟分區中。例如,這種重疊可用於允許程序複製包含多個文件系統的整個磁碟驅動器
我不太明白這裡的“重疊”是什麼意思。這是我對磁碟組織的理解:
磁碟被劃分為必須連續的扇區(物理塊)。分區是磁碟的邏輯分區,塊大小為扇區大小的整數倍,其中安裝了文件系統。
分區本身必然位於磁碟的連續塊中(儘管分區內的文件可能在分區內隨機分佈)。
- 我對磁碟組織的理解是否正確?
- 論文中的分區重疊是什麼意思?
請記住,您正在閱讀的文本來自大約 35 年前,雖然“快速文件系統”的許多特徵在 ext2 中仍然存在,但我假設您這樣做是為了研究歷史。
磁碟被劃分為必須連續的扇區(物理塊)。
有點。在物理上,硬碟被分成碟片,每個碟片都有一個讀/寫頭。一個碟片上的同心圓形成一個軌道,每個碟片相同位置的一組軌道形成一個圓柱體。磁軌分為扇區。
這是一個 3D 結構,不是線性結構,所以它不能是連續的。但是,每個扇區(每個柱面上,每個磁頭上)都被賦予了一個塊號,這些塊號是連續的,連續的物理塊之間的位置非常接近。
所以從作業系統的角度來看,一個硬碟由許多物理塊組成,具有連續的物理塊地址(或扇區地址,因為每個塊都是一個物理扇區)。
在 PC 上(而不是文件中的 PDP-11/VAX),硬碟定址從柱面/磁頭/扇區方案 (CHS) 變為塊地址方案 (LBA)。
分區是磁碟的邏輯分區,塊大小為扇區大小的整數倍,…
是的。塊是一個危險的詞,因為它在不同的上下文中可能意味著不同的東西。文件系統使用“文件系統塊”或“分配塊”,它們是物理塊大小的倍數。分區,至少是 PC 和 BSD 風格的分區,通常使用物理塊作為“分區塊大小”。
…安裝了文件系統。
不必要。它也可以是交換空間,或 PC 擴展分區(允許四個以上分區的佔位符),或 BSD 原始分區(見下文)。
分區本身必然位於磁碟的連續塊中(儘管分區內的文件可能在分區內隨機分佈)。
是的。分區只是物理塊的連續範圍(由開始和結束塊,或開始塊和此分區中的塊數給出)。
所以沒有什麼能阻止我們定義一個包含其他幾個分區的分區。實際上,如果您查看bsdlabel中的 BDS 分區範例,
8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 81920 16 4.2BSD 1024 8192 16 b: 160000 81936 swap c: 1173930 0 unused 0 0 # "raw" part, don't edit
分區 a 由塊 16-81935 組成,分區 b 由塊 81936-1681936 組成,分區 c 由塊 0-1173929 組成。所以分區 c “包含”分區 a 和 b(以及一些額外的塊)。
跨越整個磁碟的最後一個“原始”分區是為了方便:它允許作業系統訪問整個磁碟,例如完全複製它。在 Linux 上,這不是必需的,因為作業系統可以訪問代表整個磁碟的塊設備。
請注意,“容器”分區不可能有文件系統,因為這會與文件系統或包含的分區中的其他數據發生衝突。