Начальный (логический) сектор для любого диска - # 0. Следующий - № 1, затем № 2, и так далее, и так далее. Это обо всем, что точно. Все остальное зависит либо от программного обеспечения (содержимое этого первого сектора зависит от схемы разбиения диска и назначения диска и не имеет ничего общего с базовой технологией диска), либо от аппаратного обеспечения ( физические сектора, которые отображаются логическими секторами). может быть на вращающемся блюде, может быть в микросхеме NAND (SSD) или даже может существовать в сети или в Интернете, но это не имеет отношения к программному обеспечению, пытающемуся использовать диск, кроме, возможно, задержки доступа к диску).
Когда вы говорите о секторах и SSD / HDD, понятия «файл» вообще не существует (оно создается программным обеспечением, которое устанавливается поверх диска. Сам диск не знает, что такое файл где начинается или где заканчивается).
Чтобы дать чрезвычайно упрощенный обзор:
Современный «драйв» просто должен сделать три вещи:
- Поместите данные в данный логический сектор
- Чтение данных из данного логического сектора
- Подсчитайте общее количество логических секторов, которые поддерживает накопитель
Теоретически, все, что может ответить на эти две команды, может быть преобразовано в дисковод. Остальная часть компьютера вовсе не заботится, как хранятся данные, только что он будет сохранен. Я мог бы записать данные в строки бумаги и ввести их обратно, когда система запросит их, для всех системных забот.
Диск состоит из двух частей: контроллера диска и носителя
- Носитель данных - это место, где физически хранятся данные. Это магнитные биты на вращающемся жестком диске, ямы или ожоги на CD или DVD-диске или флеш-чипы NAND на SSD.
- Контроллер диска представляет собой микросхему на диске, которая отвечает за организацию данных на носителе данных, размещение данных на носителе и извлечение их с носителя хранения - остальная часть компьютера вообще не связана с этим.
Типичная система * X86 запросит на загрузочном диске содержимое первого логического сектора и попытается выполнить его как код, чтобы начать загрузку системы. Неважно, будет ли это первый сектор на 4-й головке 3-го цилиндра, или это 3-й трек на DVD, или 15-й флеш-чип NAND на SSD.
(* Я говорю типично, потому что вполне возможно иметь систему, которая загружается из другого логического сектора, для этого просто требуется собственный загрузчик)
Когда ОС пытается прочитать файл, она ищет местоположение в метаданных файловой системы (которая обычно не является таблицей FAT / таблица, а скорее деревом ), а затем запрашивает логические сектора с диска. которые соответствуют этому файлу («Мне нужны сектора 200-400!»). Это полностью зависит от контроллера диска, чтобы преобразовать эти логические сектора в физические сектора на носителе данных и извлечь данные.