Давайте рассмотрим пример современной системы Linux с современными жесткими дисками типичных дисков SATA3. Когда ОС решает записать файл на жесткий диск:

Кто разбивает файл на блоки? Виртуальная файловая система в ядре?

И кто переводит эти программные конструкции в адреса цилиндров / головок, чтобы жесткий диск знал, как указывать головку и вращать пластины? Виртуальная файловая система для драйвера жесткого диска? Или жесткий диск уже выставлен только как абстрактные "блоки" для "Виртуальной файловой системы", а контроллер на физическом жестком диске выполняет перевод?

1 ответ1

1

Остерегайтесь, этот "блок" имеет много применений и значений в компьютерных технологиях.

Когда ОС решает записать файл на жесткий диск:

Кто разбивает файл на блоки? Виртуальная файловая система в ядре?

Вам нужно немного подкрепиться.
Ранее файловая система была смонтирована, а до этого файловая система была создана на блочном устройстве (то есть устройстве, которое выполняет ввод-вывод в единицах данных фиксированного размера).
Таким образом, этот записываемый файл связан с файловой системой известных атрибутов и блочным устройством известных атрибутов.

Файловая система будет иметь концепцию логического блока. Размер этого логического блока может быть кратным размеру блока ввода-вывода.
Файловая система буферизует пользовательские данные в размерах своего логического блока и выполняет ввод-вывод в соответствии с размером блочного устройства.

И кто переводит эти программные конструкции в адреса цилиндров / головок, чтобы жесткий диск знал, как указывать головку и вращать пластины?

Адресация цилиндров / головок / секторов устарела в пользу логической адресации блоков (также известной как LBA) несколько ревизий назад ATAPI.
Независимо от этого, файловые системы обычно используют адреса логических блоков или секторов для простоты вычислений.

Файловая система отвечает за сопоставление своих логических блоков с "физическими" блоками блочного устройства. Обратите внимание, что блочное устройство обычно является абстракцией, то есть томом или разделом на физическом устройстве. Это означает, что адреса физических блоков, о которых знает файловая система, на самом деле относятся только к тому, и уровень диспетчера томов должен преобразовывать эти адреса относительных блоков в адреса блоков устройств, то есть в LBA диска.

Или жесткий диск уже выставлен только как абстрактные "блоки" для "Виртуальной файловой системы", а контроллер на физическом жестком диске выполняет перевод?

Современный ATA-накопитель представляет собой набор блоков, адресованных LBA (адресация логических блоков). Устаревшие диски используют 512-байтовый блочный (сектор), а жесткие диски Advanced Format (также известный как 512E) имеют сектора по 4 КБ, но эмулируют размер сектора по 512 байт. Современные накопители большой емкости будут использовать сектор 4 КБ для хранения и ввода-вывода.

Интегрированный контроллер современного привода выполняет преобразование LBA в физический сектор. Фактический цилиндр, головка и сектор, которые отображаются на конкретный LBA, известны только накопителю, так что дисководом может быть реализован любой тип записи и перемещения битов зоны для поврежденных секторов.


ДОПОЛНЕНИЕ

Обычно размер логического блока файловой системы также является единицей выделения. См. Недостатки небольшого размера единицы размещения.
Относительно секторов диска, см. Для чего нужны сектора диска?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .