Конфликт между тем, что вы говорите о том, что загрузчик находится в ПЗУ, и тем, что он находится в MBR, возможно, связан с тем, что загрузчик используется для любого кода, который определяет, как выполнить минимум загрузки кода, чтобы заставить компьютер делать что-то полезное, включая каждый состояние в многоступенчатой загрузке.
Итак, исходное состояние - иметь компьютер, который является программируемым устройством, но не знает, как загрузить программное обеспечение для запуска, потому что на нем нет загруженного программного обеспечения. (И, следовательно, загрузиться с подтянуть себя от его начальной загрузки ).
Исторически, было несколько разных решений этой проблемы, но в наши дни мы начинаем с некоторого кода в ПЗУ (в основном это, вероятно, строго EEPROM), которого достаточно, чтобы заставить его взглянуть на разные устройства и попробовать их по очереди, пока не найдет то, которое загрузочный.
(Именно поэтому многие системы будут загружаться с CD или DVD, если вы вставите установочный диск ОС в жесткий диск и с него, иначе BIOS (код в ПЗУ, включая код, о котором мы говорим, и некоторые другие Утилиты высокого уровня, с которых все начинается] устанавливается сначала на привод CD / DVD, а затем на жесткий диск, если ничего не находит, твикеры часто устанавливают его на игнорирование привода CD / DVD, если не запрашивается вручную, поэтому не тратит время на раскручивание не загружаемого диска, который был оставлен в накопителе).
Этот код в ПЗУ иногда называют загрузчиком .
Когда он знает, на какой диск смотреть, он будет смотреть на MBR, которая содержит информацию о первичных разделах - как вы могли бы позже посмотреть на / или / boot или C: / (в системе Windows), если вы даже не посмотрели знаете, какая часть диска была в каком разделе, не говоря уже о том, как монтировался каждый раздел? - и некоторый код с дальнейшими инструкциями для выполнения. (Между прочим, это объясняет, почему некоторые ОС - например, Windows - могут быть установлены только на основной раздел, подробности этих разделов находятся в MBR, и это единственная информация о разделах, которую прочитал их загрузчик, и он не загружает EBR для узнайте о логических разделах, поскольку эти разделы еще даже не существуют).
Этот исполняемый код также называется загрузчиком . Когда мы хотим различить это и то, что происходит дальше, это называется основным загрузчиком (потому что, если мы не создаем наш собственный BIOS, мы игнорируем бит ПЗУ как находящийся вне нашего контроля).
Этот код будет очень маленьким, поскольку для его размещения потребуется всего около 400 байт, поэтому, чтобы сделать что-то реальное, он загрузит еще немного кода, который может быть больше, поскольку он не должен иметь дело с этим ограничением.
Этот код также известен как загрузчик . Когда мы хотим различить это и то, что было раньше, это называется вторичным загрузчиком .
Этот код, возможно, мог бы стать последней стадией процесса. Было бы, если бы у вас была только одна ОС, или если все ОС в вашей системе использовали совместимые загрузчики (например, две установки Linux, которые обе использовали GRUB, поэтому, какой бы GRUB не был обновлен последним, он может предложить загрузиться в любую из них), тогда он представляет меню (при желании) загружает ядро и передает управление операционной системе.
В случае, если у вас ОС, несовместимая с этим загрузчиком, она может загружаться по цепочке. Например, если у вас Windows и Linux на одной машине, опция GRUB для загрузки Windows фактически загрузит еще один загрузчик, который знает только об установках Windows, и перейдет на него. Хотя это был третичный этап в этом процессе, он все еще называется вторичным загрузчиком , поскольку он не знает и не заботится о том, чтобы перед ним работал еще один вторичный загрузчик. Это также относится к установке Linux, в которой используется другой тип вторичного загрузчика.
В основном, когда мы говорим о загрузчике в терминах Linux, мы обычно не имеем в виду код ПЗУ (он не является частью Linux или изменен при установке Linux). Когда мы это делаем, update-grub
мы меняем дополнительный загрузчик, который обычно находится в / boot конкретной установки. Когда мы это сделаем, install-grub
мы изменим его, а также основной загрузчик в MBR, чтобы в нем было достаточно кода, чтобы знать, где находится / boot (возможно, запускает программный RAID-массив по ходу работы), и будет загружать и выполнять его при выполнении ,
Итак, в итоге вы ошиблись, когда сказали, что ROM является частью основной памяти *, потому что она отдельная. (Действительно, RAM воспринимается как анонимный для ROM). Вы были правы, когда говорили, что там и в MBR был загрузчик, потому что это два этапа процесса, и оба иногда называются по этому имени. И ответ: «Разные ОС хранят свои загрузчики в разных местах?» "главным образом", потому что если вы несовместимы с вторичными загрузчиками, то либо скрываете другие загрузчики (если вы устанавливаете Windows после установки Linux), либо загружаете цепочку в другой по запросу (если вы исправляете эту ситуацию, или устанавливаете Linux после Windows), но ОС может совместно использовать дополнительный загрузчик, если они совместимы (если вы устанавливаете Linux после другого Linux, который использует тот же тип дополнительного загрузчика, и он может видеть другой Linux [иногда программный RAID сбивает с толку и делает необходимым загрузку цепей).
* В те дни, когда можно программно использовать как ПЗУ, так и ОЗУ, это было по-другому. Например, на ZX Spectrum ПЗУ будет иметь размер 16 КБ и будет включать интерпретатор BASIC, а также даст вам отправную точку для загрузки чего-либо в его 48 КБ или 128 КБ (с постраничной загрузкой) или ОЗУ (в этом случае это, по сути, загрузка в этот интерпретатор BASIC, а затем использующий его для загрузки того, что было на ленте), в интерпретаторе BASIC можно было использовать целую кучу функций, которые могли бы использовать программы в ОЗУ (зачем писать функцию триггера, если на компьютере она уже есть в известной позиции ? особенно, когда у вас есть только 48 кБ для всего собственного кода для запуска). Этот ROM также был виден так же, как RAM, только по разным адресам. В таком случае ПЗУ было такой же частью основной памяти, как и ОЗУ, но не доступно для записи.
A small portion of a computer's main memory where the CPU expects to find its initial program is constructed from special nonvolatile memory cells. Such memory is known as read-only memory(ROM)
по его словам». Основная память состоит из двух частей, RAM и ROM. Я просто хочу знать, установлен ли так называемый загрузчик в части ПЗУ основной памяти ... @Sergey