Соответствует ли дисковый ввод-вывод его физическому сектору?

Я играл с дисковым вводом-выводом на флэш-накопителях, жестких дисках и SSD, открыв /dev/sd* пути в Linux, как и любой другой файл.

Я понимаю, что контроллер памяти на диске может скрывать истинный порядок блоков (через сопоставление) от ОС.

Это сводится к этим вопросам:

  1. Блоки в /dev/sd* в порядке, воспринимаемом ОС, или в порядке, воспринимаемом контроллером памяти диска?

  2. Это порядок блоков в /dev/sd* субъективно между ОС POSIX?

  3. Могут ли эти свойства измениться, если они выполнены в системе NT или Cygwin?

  4. Отличается ли это свойство между Flash, HDD и SSD?

  5. Может ли произойти запись в определенный индекс в открытом /dev/sd* путь, или это определяется контроллером памяти?

Заранее спасибо!

1 ответ

Решение

Если вы используете узлы устройства для целых дисков (/dev/sda, /dev/sdbи т. д.), тогда смещения файлов для блочного устройства соответствуют адресам логических блоков и будут переносимы между системами (при условии, что поддерживается размер сектора диска). Это не зависит от технологии хранения.

Тем не менее, имена узлов устройства отличаются от системы к системе.

Если вы используете подустройства (разделы), это не обязательно так, потому что интерпретация и поддержка таблиц разделов значительно различаются.

Другие вопросы по тегам