Соответствует ли дисковый ввод-вывод его физическому сектору?
Я играл с дисковым вводом-выводом на флэш-накопителях, жестких дисках и SSD, открыв /dev/sd*
пути в Linux, как и любой другой файл.
Я понимаю, что контроллер памяти на диске может скрывать истинный порядок блоков (через сопоставление) от ОС.
Это сводится к этим вопросам:
Блоки в
/dev/sd*
в порядке, воспринимаемом ОС, или в порядке, воспринимаемом контроллером памяти диска?Это порядок блоков в
/dev/sd*
субъективно между ОС POSIX?Могут ли эти свойства измениться, если они выполнены в системе NT или Cygwin?
Отличается ли это свойство между Flash, HDD и SSD?
Может ли произойти запись в определенный индекс в открытом
/dev/sd*
путь, или это определяется контроллером памяти?
Заранее спасибо!
1 ответ
Если вы используете узлы устройства для целых дисков (/dev/sda
, /dev/sdb
и т. д.), тогда смещения файлов для блочного устройства соответствуют адресам логических блоков и будут переносимы между системами (при условии, что поддерживается размер сектора диска). Это не зависит от технологии хранения.
Тем не менее, имена узлов устройства отличаются от системы к системе.
Если вы используете подустройства (разделы), это не обязательно так, потому что интерпретация и поддержка таблиц разделов значительно различаются.