Я только что прочитал обо всем процессе загрузки на компьютерах, и мне любопытно, почему BIOS может считывать и выполнять код и данные только с цилиндра 0, дорожки 0 и сектора 1 загружаемого диска? Почему BIOS не может считывать данные с других дисков?
3 ответа
Цилиндр 0, дорожка 0, сектор 1 в основном означает начало с логического начала жесткого диска. В процессе загрузки BIOS ПЗУ после выполнения POST ищет загрузочную запись. В таком состоянии загрузчику практически не с чем работать - все, что он делает, - это входит в заранее определенную точку и начинает загружать код ОС. Местоположение жестко закодировано 0-0-1. Так же, как если бы я дал вам книгу, ожидалось бы, что вы начнете читать с первой страницы, а не со страницы 25, поэтому загрузчик запускается с этого места запуска.
Теоретически, BIOS может читать из любого места на диске. Но с чего бы это? Он понятия не имеет, что значат эти биты. Это был бы довольно ужасный BIOS, который был полностью несовместим с полным дисковым шифрованием, потому что он пытался напрямую взаимодействовать с вещами вне загрузочного блока.
Наличие (для всех намерений и целей, жестко запрограммированных в материнской плате) BIOS взаимодействует только с загрузочным блоком, что означает, что остальная часть диска может содержать что-либо вообще, потому что вы можете просто поместить код для интерпретации этого в загрузочный блок для казнены. И если вы хотите поместить что-то другое (и несовместимое) на диск, вам просто нужно соответствующим образом обновить загрузочный блок.
Ваше чтение было документации, которая явно устарела от одного до полутора десятилетий. Только ваши старые предположения и анонимно предоставленная информация в другом ответе верны только на старых прошивках PC98 (а также на PC97 и PC/AT до него). Существует три основных класса прошивок для персональных компьютеров / рабочих станций (хотя есть и несколько других, менее известных, на которые должен также точно отвечать ответ на вопрос, помеченный как "linux"):
- Прошивка PC98 В системах PC98 прошивка не распознает разделы диска или форматы файловой системы. Он даже не знает, что такое таблица разделов (MBR) в блоке # 0, хотя загружает и запускает код в блоке # 0. Это код в блоке № 0, который знает, как искать в себе активный первичный раздел, а также загружать и запускать его загрузочную запись тома. Только на этом классе прошивок ваши предположения и информация в других ответах верны.
- ARC микропрограммного В системах АРК, встроенное программное обеспечение, понимает дисковые разделы, и по крайней мере один формат файловой системы, FAT. На таких системах прошивка не загружается и не запускается блок № 0. Вместо этого он загружает и запускает образ исполняемой программы из обычного файла на томе диска FAT. Эта исполняемая программа будет загрузчиком, который, в свою очередь, загружает и запускает ядро linux из другого обычного файла на (не обязательно FAT, если загрузчик имеет свои собственные дополнительные драйверы файловой системы) диск.
- EFI прошивки В системах EFI, встроенное программное обеспечение, понимает дисковые разделы, и по крайней мере один формат файловой системы, FAT. На таких системах прошивка не загружается и не запускается блок № 0. Вместо этого он имеет встроенный менеджер загрузки, который позволяет выбирать из меню образов исполняемых программ из обычных файлов на томах FAT-дисков. Эта исполняемая программа будет загрузчиком, который, в свою очередь, загружает и запускает ядро linux из другого обычного файла на (не обязательно FAT, если загрузчик имеет свои собственные дополнительные драйверы файловой системы) диск. Если диск разделен с таблицей разделов EFI, прошивка ( в зависимости от того, насколько строго он прилипает к спецификации EFI) необходимо даже не обязательно прочитать блок # 0 диска на всех.
Это должно дать представление о том, насколько устаревшей является часть информации, которую вы можете прочитать, и которая передается в этой области, чтобы отметить, что "98" в "PC98" действительно соответствует 1998 году. Мир изменился, и представление о том, что прошивки не понимают схемы разбиения диска, не понимают форматы файловой системы и знают только, как читать и загружать один блок с диска, давно устарело.