为什么U盘可以格式化为NTFS或FAT32?U盘和硬盘难道只能看作是“字节的海洋”吗?
我已经很习惯听到将硬盘格式化为 FAT32 或 NTFS,但是我们也可以将 USB 闪存驱动器格式化为 NTFS 或 FAT32 吗?
是不是因为硬盘或闪存驱动器都可以被认为是“比特的海洋”或“字节的海洋”?我记得 RAM 是:它以 16 位或 32 位作为地址信号(电路板上的 16 或 32 个铜脚),并给出 8 位数据(电路板上的另外 8 个铜脚)。那么硬盘也可以被认为是这样工作的吗?所以这就是为什么闪存驱动器也可以是相同的?只是“字节的海洋”。
但是是不是硬盘的硬件使得它是个扇区的海洋还是别的什么,也就是说读写的较小单位不是字节而是别的什么呢?
因此,对于这个“字节海洋”,NTFS 具有这样的格式:“如果第一个字节是 ________,那么它就意味着 ____(它是一个文件或文件夹,并链接到哪个扇区,由字节 2 和 3 表示,等等)”
答案1
你可以,但操作系统不能。闪存驱动器和硬盘驱动器都是按扇区读取(和写入)的,而且只能按扇区读取。设备驱动程序通常会将此限制应用于更高级别,并且使用 NTFS 超级块等读取整个扇区比读取相同扇区要快得多多次暗示因为驱动程序将“字节范围”请求转换为“扇区”请求,所以文件系统驱动程序也按扇区(或任何扇区倍数:存在一种称为 DMA —— 直接内存访问 —— 的技术,它允许在不使用 CPU 时间的情况下读取和写入大量扇区,从而使磁盘访问非常快)执行读写操作。
闪光芯片(不是驱动器)在技术上被划分在其他数据块上,原因有二:
- 闪存芯片可以从任意位置读取到任意位置,但只能按固定大小和位置的块进行写入。
- 闪存芯片包含的数据和可用空间比您想象的要多,因为它普通的芯片在工作过程中会产生一些故障扇区。这些扇区会被重新映射到其他扇区存储控制器在 USB 驱动器上,不可见对于操作系统来说,坏扇区是无法识别的;实际上没有软件方法可以检查它们是否存在。同样,闪存控制器始终配备有算法,允许无缝替换故障扇区而无需通知上层。
您正在阅读的 NTFS 文档没有建议阅读这些变量按字节排序。您需要按它们所在的整个扇区读取它们,然后寻址内存中的特定字节。
还有最近的内存(几乎任何 386 兼容机器上的内存)不按字节寻址。相反,它由 32 位(很少)、64 位甚至 128 位字寻址。当您在中间读取字节时,此类字处理器实际上会请求整个字,然后选择您需要的字节。某些 64 位处理器上甚至存在硬件异常,当您尝试访问未对齐(按 64 位字边界)指针时会引发该异常。