扇区

操作系统操作内存是以页为基本单位、文件系统操作磁盘是以块为基本单位,而磁盘自身读写是以扇区为基本单位。

  • 文件系统就是操作系统的一部分,所以文件系统操作文件的最小单位是块

块(簇)

操作系统->块/簇—-磁盘控制器—->扇区->磁盘

  • 块是操作系统中最小的逻辑存储单位,虚拟存储单位
  • 在Windows下如NTFS等文件系统中叫做簇;在Linux下如Ext4等文件系统中叫做块(block)
  • 每个簇或者块可以包括2、4、8、16、32、64…2的n次方个扇区
  • 数据存储在硬盘的时候都是以簇为单位,所以无论文件大小是多少,除非正好是簇大小的倍数,否则文件所占用的最后一个簇或多或少都会产生一些剩余的空间
  • 操作系统规定,一个簇中只能放置一个文件的内容,因此文件所占用的空间只能是簇的整数倍,而如果文件实际大小小于一簇,它也要占一簇的空间

img


扇区

磁盘组合 -> 单个磁盘 -> 某一盘面 -> 某一磁道 -> 某一扇区

  • 扇区是磁盘中最小的物理存储单位

img


页(Page)

  • 操作系统与内存打交道时才有了页的概念,因为如果采用内存的分页机制,内存被分为大小为4K的页面。也是一种虚拟单位。
  • 概念来源于内核,是内核内存映射的基本单位,linux内核的页式内存映射名称来源于此

段(Section)(段大小<=页大小)

  • 段(Section):概念来自于内核,在内核的内存管理中的由一个页或部分页,由若干相邻块组成。

4k对齐
随着时代发展,硬盘容量不断扩展,使得之前定义的每个扇区512字节不再是那么的合理,于是将每个扇区512字节改为每个扇区4096 个字节,也就是现在常说的“4K扇区”。随着NTFS成为了标准的硬盘文件系统,其文件系统的默认分配单元大小(簇)也是4096字节,为了使簇与扇区相对应,即使物理硬盘分区与计算机使用的逻辑分区对齐,保证硬盘读写效率,所以就有了“4K对齐”的概念。

    新标准的”4K扇区”的硬盘在厂商为了保证与操作系统兼容的前提下,也将扇区模拟成512B,会默认定义为4096字节大小为一个簇,但因为其引导区占用了一个磁道共63个扇区,真正的文件系统在63号扇区之后。

我们通过计算得出前63个扇区大小为:512Bx63=32256B
并按照默认簇大小得出63扇区为:32256B÷4096B=7.875簇
即从第63个扇区结束,往后的每一个簇都会跨越两个物理单元,占据前一个单元的一小部分和后一个单元的一大部分。

而“4K对齐”主要是将硬盘的模拟扇区(512B)对齐到8的整数倍个“实际”4K扇区,即4096B*8=32768B,其正好跨过了63扇区的特性,从第64个扇区对齐。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!