Filesystems

FFS:分區中的邏輯和物理塊

  • June 22, 2017

我正在閱讀適用於 UNIX 的快速文件系統,它在第 3 頁上說以下內容:

這裡的“分區”是指磁碟驅動器上物理空間的細分。在傳統文件系統中,與在新文件系統中一樣,文件系統實際上位於可能重疊的邏輯磁碟分區中。例如,這種重疊可用於允許程序複製包含多個文件系統的整個磁碟驅動器

我不太明白這裡的“重疊”是什麼意思。這是我對磁碟組織的理解:

磁碟被劃分為必須連續的扇區(物理塊)。分區是磁碟的邏輯分區,塊大小為扇區大小的整數倍,其中安裝了文件系統。

分區本身必然位於磁碟的連續塊中(儘管分區內的文件可能在分區內隨機分佈)。

  1. 我對磁碟組織的理解是否正確?
  2. 論文中的分區重疊是什麼意思?

請記住,您正在閱讀的文本來自大約 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 上,這不是必需的,因為作業系統可以訪問代表整個磁碟的塊設備。

請注意,“容器”分區不可能有文件系統,因為這會與文件系統或包含的分區中的其他數據發生衝突。

引用自:https://unix.stackexchange.com/questions/372643