Я-то, конечно, могу, с чего вы взяли, что я этого не знаю? В ранних версиях DOS были жесткие ограничения - эти самые системные файлы должны были располагаться в последовательных секторах в первых файлах в начале диска, то есть сами эти файлы должны были быть первыми и непрервными. Потому что загрузчик был как раз тупой и только так их умел читать. Я не помню, когда эти ограничения сняли. В CP/M тоже было примерно так.
Видимо, надо рассказать Вам, как оно устроено и работает на писюках (упрощённо).
При включении компьютера происходит аппаратная инииализация микросхем. Грубо говоря - напряжение на разные элементы должно подаваться в определённой последовательности. Поэтому при коротком сбое питания, когда остаточное напряжение не успевает стечь, техзника часто зависает.
После аппаратной инициализации процессор начинает выполнение программы, находящейся по адресу FFFF:0000. Там находится ПЗУ. Программы тестируют память, устанавливают векторы прерываний и делают всякую другую инийиализацию.
Наконец, программа, записананя в ПЗУ, загружает самый первый скутор диска на адрес 0000:7C00 и передаёт туда управление. Тут возникает вопрос о том, как именно присходит загрузка сектора. Очевидно, в этот момент в памяти уже д.б. драйвер HDC+HDD - и этот драйвер находится в ПЗУ (в системном ПЗУ на мат.плате или на плате HDC.
Если в первом секторе диска находится "стандартный MBR", то он копирует себя на адрес 0000:0600 (хотя тут возможны варианты) и передаёт управление в копию на этом адресе. Затем он сканирует таблицу разделов и ищет там запись об активном разделе. если такой найден - то он загружает BR (самый первый сектор) этого раздела на адрес 0000:7C00 и передаёт туда управление.
Что делает BR - зависит от операционки. Но в целом его поведение достаточно стандартно - он загружает и конкретных секторов диска или операционку (в DOS это как раз два непрерывных файла), или загрузчик ядра, или "первую ступень" загрузчика.
Загрузчик ядра уже имеет в себе драйвер файловой системы - но не имеет драйвера HDC+HDD; поэтому он пользуется драйвером, который зашит в ПЗУ (в BIOS). В загрузчике также прописано, какие файлы надо загружать дальше (или приописано, в каком файле прочитать список того, что надо загружать).
В современных операционках загрузчик загружает ядро и драйверы, в т.ч. драйверы HDC+HDD. И после этого можно обойтись без использования BIOS.
Вот Вам короткое, чёткое, достаточно полное, логичное и непротиворечивое описание процесса загрузки без отсылки к непонятным словам типа "первые файлы". Заодно видно, какой маразм вся эта писюковая архитектура с её загрузкой операционки с диска - операционка в ПЗУ была бы намного проще и логичнее, а также надёжнее.
no subject
Date: 2017-02-27 01:52 pm (UTC)no subject
Date: 2017-02-27 03:09 pm (UTC)Видимо, надо рассказать Вам, как оно устроено и работает на писюках (упрощённо).
- При включении компьютера происходит аппаратная инииализация микросхем. Грубо говоря - напряжение на разные элементы должно подаваться в определённой последовательности. Поэтому при коротком сбое питания, когда остаточное напряжение не успевает стечь, техзника часто зависает.
- После аппаратной инициализации процессор начинает выполнение программы, находящейся по адресу FFFF:0000. Там находится ПЗУ. Программы тестируют память, устанавливают векторы прерываний и делают всякую другую инийиализацию.
- Наконец, программа, записананя в ПЗУ, загружает самый первый скутор диска на адрес 0000:7C00 и передаёт туда управление.
- Если в первом секторе диска находится "стандартный MBR", то он копирует себя на адрес 0000:0600 (хотя тут возможны варианты) и передаёт управление в копию на этом адресе.
- Что делает BR - зависит от операционки. Но в целом его поведение достаточно стандартно - он загружает и конкретных секторов диска или операционку (в DOS это как раз два непрерывных файла), или загрузчик ядра, или "первую ступень" загрузчика.
- Загрузчик ядра уже имеет в себе драйвер файловой системы - но не имеет драйвера HDC+HDD; поэтому он пользуется драйвером, который зашит в ПЗУ (в BIOS). В загрузчике также прописано, какие файлы надо загружать дальше (или приописано, в каком файле прочитать список того, что надо загружать).
- В современных операционках загрузчик загружает ядро и драйверы, в т.ч. драйверы HDC+HDD. И после этого можно обойтись без использования BIOS.
Вот Вам короткое, чёткое, достаточно полное, логичное и непротиворечивое описание процесса загрузки без отсылки к непонятным словам типа "первые файлы". Заодно видно, какой маразм вся эта писюковая архитектура с её загрузкой операционки с диска - операционка в ПЗУ была бы намного проще и логичнее, а также надёжнее.Тут возникает вопрос о том, как именно присходит загрузка сектора. Очевидно, в этот момент в памяти уже д.б. драйвер HDC+HDD - и этот драйвер находится в ПЗУ (в системном ПЗУ на мат.плате или на плате HDC.
Затем он сканирует таблицу разделов и ищет там запись об активном разделе. если такой найден - то он загружает BR (самый первый сектор) этого раздела на адрес 0000:7C00 и передаёт туда управление.