磁盘IO是否直接对应于它的物理扇区位置?
Does disk IO correspond directly to its physical sector location?
我一直在玩弄闪存驱动器、HDD 和 SSD 上的磁盘 IO,方法是打开 Linux 中的 /dev/sd*
路径,就像打开任何其他文件一样。
我知道磁盘上的内存控制器可以从 OS.
中隐藏真正的块 order(通过映射)
这归结为这些问题:
/dev/sd*
中的块是按照 OS 感知的顺序还是磁盘内存控制器感知的顺序?
POSIX OSes之间/dev/sd*
中块的顺序是主观的吗?
如果在 NT 或 Cygwin 系统上完成,这些属性可以改变吗?
这属性Flash、HDD、SSD有什么不同吗?
是否可以对打开的/dev/sd*
路径中的特定索引进行写入,还是由内存控制器决定?
提前致谢!
如果您对整个磁盘使用设备节点(/dev/sda
、/dev/sdb
,等等),那么块设备的文件偏移量对应于逻辑块地址,并且可以跨磁盘移植系统(假设支持磁盘扇区大小)。这与存储技术无关。
但是,设备节点的名称因系统而异。
如果您使用子设备(分区),则不一定是这种情况,因为对分区表的解释和支持差异很大。
我一直在玩弄闪存驱动器、HDD 和 SSD 上的磁盘 IO,方法是打开 Linux 中的 /dev/sd*
路径,就像打开任何其他文件一样。
我知道磁盘上的内存控制器可以从 OS.
中隐藏真正的块 order(通过映射)这归结为这些问题:
/dev/sd*
中的块是按照 OS 感知的顺序还是磁盘内存控制器感知的顺序?POSIX OSes之间
/dev/sd*
中块的顺序是主观的吗?如果在 NT 或 Cygwin 系统上完成,这些属性可以改变吗?
这属性Flash、HDD、SSD有什么不同吗?
是否可以对打开的
/dev/sd*
路径中的特定索引进行写入,还是由内存控制器决定?
提前致谢!
如果您对整个磁盘使用设备节点(/dev/sda
、/dev/sdb
,等等),那么块设备的文件偏移量对应于逻辑块地址,并且可以跨磁盘移植系统(假设支持磁盘扇区大小)。这与存储技术无关。
但是,设备节点的名称因系统而异。
如果您使用子设备(分区),则不一定是这种情况,因为对分区表的解释和支持差异很大。