Где хранится загрузчик - в ПЗУ, ОЗУ или в другом месте?

Согласно записи wikipedia, загрузчик представляет собой небольшую программу, хранящуюся в ПЗУ (часть основной памяти (ОЗУ), не так ли?), которую можно читать и не удалять. Я немного озадачен здесь. Означает ли это, что в каждой RAM, которую мы покупаем, установлен по умолчанию загрузчик? Кроме того, я прочитал из книги, в которой говорится, что на жестком диске обычно называется область MBR (Master Boot Record), которая включает в себя загрузчик ...

Итак, где именно находится этот загрузчик? Различные операционные системы хранят свой загрузчик в разных местах?

1
задан 10 August 2012 в 10:48

6 ответов

Rom не находится в основной памяти:

ПЗУ не является частью основной памяти. Это отдельный чип, который в большинстве случаев встроен в большую ИС. Например, ваш ПК может состоять из нескольких ПЗУ. Они созданы на материнской плате.

Как правило:

ПЗУ очень малы по размеру памяти. Эта память является энергонезависимой, в том смысле, что программа, хранящаяся в ПЗУ, не стирается при отключении питания. ROM используются для хранения постоянных программ, которые очень важны для правильного выполнения вашего оборудования. Типичным примером ПЗУ является чип BIOS. Где хранится программа загрузки и инициализации с очень низким уровнем загрузки

Вы упомянули, что вы прочитали статью, в которой автор сказал: «ПЗУ является частью основной памяти». Это сбивает с толку, потому что обычно основная память относится к памяти видов, которые нестабильны, например, ОЗУ. Но да, если вы используете термин «Основная память» для всего пространства памяти ПК, то ПЗУ является частью этого пространства памяти. Следует отметить, что обычно основная память исключает память видов как ПЗУ.

Rom не находится в основной памяти:

Современная система использует двухступенчатую загрузку , На первом этапе крошечная программа загружается из сектора (чаще всего называемого загрузочным сектором) жесткого диска. Эта крошечная программа, в свою очередь, загружает программу из некоторых, где на диске, который называется загрузочным загрузчиком. И, наконец, загрузочный загрузчик загружает ОС

. В терминах системы Ubuntu процесс выглядит следующим образом:

После включения компьютера BIOS (который хранится в ПЗУ) автоматически запускает и инициализирует различные части аппаратного обеспечения ПК. Затем он проверяет конкретный сектор в определенном первом загрузочном устройстве (обычно на жестком диске). Этот сектор является загрузочным сектором размером 512 байт. Программа в загрузочном секторе загружается в память (1-й этап). Эта крошечная программа содержит информацию о том, какие программы следует загрузить в память далее и где эта программа находится на диске или загрузочном устройстве. Он загружает эту программу. В Ubuntu это /boot/grub/core.img. На втором этапе OS-Loader GRUB загружает Ubuntu, загружая ядро ​​и исходный диск в память и передавая управление ядру. Затем ядро ​​запускает и загружает все необходимые программы, такие как диспетчер дисплеев, Gui и т. Д.

Итак, мы можем четко сказать: загрузочный загрузчик ни хранится в ПЗУ, ни в ОЗУ, он фактически хранится на жестком диске диск (или другое загрузочное устройство, например загрузочный CDROM, USB-накопители и т. д.), точно говоря первый сектор жесткого диска размером 512 байт и часто называемый Main Memory . И этот загрузчик загружает ОС-загрузчик (в Ubuntu, это grub), который также находится на жестком диске (т.е. папке /boot/grub/), и его задача - загрузить ОС (скажем, Ubuntu).

В качестве теста удалите жесткий диск (и все другое загрузочное устройство) и попробуйте загрузить. Вы можете перейти к шагу BIOS, но после этого вы ничего не сможете загрузить. Скорее всего, BIOS скажет: «Нет загрузочного устройства найдено» или « Следует отметить, что, как правило, основная память исключает память видов как ПЗУ » или что-то подобное.

Надеюсь, что этот ответ

Для получения дополнительной информации вы можете посетить эти ссылки:

После включения компьютера BIOS (который хранится в ПЗУ) автоматически запускается и инициализирует различные части аппаратного обеспечения ПК. Затем он проверяет конкретный сектор в определенном первом загрузочном устройстве (обычно на жестком диске). Этот сектор является загрузочным сектором размером 512 байт. http://en.wikipedia.org/wiki/Random-access_memory
20
ответ дан 25 May 2018 в 07:48
  • 1
    ПЗУ не было быстрее, чем ОЗУ уже около десяти лет. Фактически, одна из первых вещей, которую делает современный BIOS, - это сама копия в оперативную память, поскольку оперативная память намного быстрее. – David Schwartz 8 August 2012 в 17:38
  • 2
    @DavidSchwartz, Прошло уже больше десятилетия. Каждый компьютерный BIOS, который я использовал в середине 90-х годов, имел возможность затенять биос в ОЗУ для скорости. – psusi 8 August 2012 в 19:43

Процессор, совместимый с x86, всегда запускается в так называемом «реальном» режиме, который представляет собой 16-разрядный режим с 1 мегабайтом доступной доступной памяти. Из этого адресного пространства доступно 640K для программ и адресов выше, которые отображаются на разные устройства.

Например, адреса, начинающиеся с 0xA000: 0x0000, отображаются в видеопамять, поэтому запись данных там будет на самом деле записывают данные в память видеоадаптера, отображая пиксели на экране.

Аналогично, BIOS ROM начинается с 0xF000: 0000, поэтому процессор при включении просто начинает выполнение инструкций один за другим, начиная с того, определенный адрес. В BIOS-ROM содержится исходная программа, которая начинается с выполнения самотестирования при включении питания или POST. Из Википедии:

Программное обеспечение BIOS встроено в ПК и является первым кодом, выполняемым ПК при включении («загрузочная прошивка»). Когда компьютер запускается, первым заданием для BIOS является самотестирование при включении питания, которое инициализирует и идентифицирует системные устройства, такие как процессор, оперативная память, видеокарта, клавиатура и мышь, жесткий диск, привод на оптических дисках и другое оборудование. Затем BIOS обнаруживает программное обеспечение загрузчика, хранящееся на периферийном устройстве (обозначенное как «загрузочное устройство»), например жесткий диск или CD / DVD, и загружает и выполняет это программное обеспечение, предоставляя ему управление ПК.2 Этот процесс называется загрузкой или загрузкой, что является коротким для начальной загрузки.

Прошивка BIOS отвечает за чтение первого сектора с диска в память и передачу элемента управления небольшой программе, которая, опять же, расположена по определенному адресу. Загрузочный загрузчик BIOS может начать загрузку ОС напрямую (как в случае с MS-DOS) или загрузить «второй этап», который не ограничивается ограничениями одного сектора диска.

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

Итак, если, как Uri предлагает, вас интересует, могут ли загрузчик Windows и GRUB совместно сосуществовать, ответ таков: фактический MBR может содержать только один начальный загрузчик (давайте, весь сектор составляет всего 512 байт), но второй этап загрузчика может иметь возможность «загружать» операционные системы из разных разделов. Загрузочный загрузчик Windows способен распознавать и загружать Windows, тогда как GRUB может загружать Linux или передавать управление другому загрузчику, хранящемуся в загрузочной записи тома одного из разделов, что позволяет загружать Windows или другую ОС. Последний процесс называется цепной загрузкой.

Когда вы устанавливаете Ubuntu на компьютер с Windows, GRUB будет установлен в MBR, и вы сможете загружать Ubuntu и Windows.

Однако, если Windows установлена ​​после Ubuntu, GRUB будет заменен загрузчиком Windows, и вам нужно будет переустановить GRUB, чтобы снова загрузить Ubuntu.

15
ответ дан 25 May 2018 в 07:48
  • 1
    Полагаю, он хочет знать, могут ли совместное существование загрузчика Windows и GRUB вместе или нет. UEFI, GPT-диски не используют MBR, как это влияет на них ?. – Uri Herrera 8 August 2012 в 08:51
  • 2
    BIOS ROM находится в сегменте F000: чуть ниже 1 МБ. 640k - из сегментов ниже A000 :, которые доступны для ОС реального режима и программ для использования. – psusi 8 August 2012 в 09:00
  • 3
    @psusi: вы правы, я переформулировал эту часть – Sergey 8 August 2012 в 09:42
  • 4
    Спасибо за ответ. Вы имеете в виду, что для загрузки операционной системы задействованы несколько загрузчиков (один в BIOS и другой в MBR?)? Это ново для меня ... :) – xczzhh 8 August 2012 в 10:22
  • 5
    @xczzhh Ну, хорошо, код в BIOS не называется «загрузчик», тот, который хранится на диске. Я обновил свой ответ, чтобы понять это. – Sergey 8 August 2012 в 11:10

конфликт между тем, что вы говорите об бутлоадер в ROM и его в MBR возможно, из-за загрузчика используется для любого кода, который работает, как сделать самый минимум для загрузки в код, чтобы заставить компьютер делать что-то полезное, в том числе и каждого государства в многоступенчатой загрузки.

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

исторически, было несколько разных решений этой проблемы, но в эти дни мы начинаем с какой-то код в ПЗУ (скорее всего, строго ЭСППЗУ), чего вполне достаточно, чтобы заставить его выглядеть на различных устройствах и попробовать их по очереди, пока не найдет тот, который загрузочный.

(именно поэтому многие системы будут загружаться с CD или DVD, если вы поставите ОС, установщик диск и с жесткого диска в противном случае, в BIOS [код на диске, в том числе кода мы говорим о и некоторые другие низкоуровневые вещи, которые получают все начало] в посмотреть на CD/DVD-привод, потом в жесткий диск, если он не найдет ничего, твикерами часто ставлю его в игнор на CD/DVD-диска, если не требуется вручную, чтобы не тратить время на запуск номера-загрузочный диск, который остался в приводе).

этот код в ПЗУ иногда называют потяните себя вверх от его руки.

, когда он знает, что диск посмотреть, он тогда посмотрите на загрузочную запись, которая содержит информацию о первичной partions - как можно позже посмотреть на / или /Boot или C:/ (в системе Windows) если вы даже не знаете, что часть диска была, в каком разделе, не беда, как каждой секции был установлен? - и какой-то код с дальнейшими инструкциями для выполнения. (Кстати, это объясняет, почему некоторые ОС - например, Windows - могут быть установлены только на первичный раздел, подробности эти разделы в MBR и это только раздел информации их загрузчик уже читал, и он не загружает ЭБР чтобы узнать о логических разделов, насколько это касается тех разделов, даже не существовало).

, что исполняемый код, иногда называться бутлоадера. Когда мы заботимся, чтобы провести различие между этим и что будет дальше, это называется первичный загрузчик (потому что, если мы делаем наши собственные БИОС мы игнорируем диска как вне нашего контроля).

, что код будет очень мало, так как там только около 400 байт Для того, чтобы вписаться в, так что делай, она будет загружать некоторые больше кода, которые могут быть больше, как это не иметь дело с этим ограничением.

настоящего Кодекса, также известен как загрузчик. Когда мы заботимся, чтобы различать между этим и тем, что было раньше, это называется вторичный загрузчик.

, что код может быть завершающим этапом в процессе. Если бы у вас только одна ОС, или если все ОСС в системе использовать совместимые загрузки-загрузчиков (например, два Linux устанавливает, что оба используете grub, поэтому какой бы жратва была обновлена последний может предложить загрузиться в любой из них), то она представляет меню (При желании) загружает ядро и передает контроль над операционной системой.

в случае если у вас Операционная система, не совместимая с загрузчиком, он может chainload. Е. г. если у вас есть Windows и Linux на одном компьютере, параметр grub для загрузки Windows в загрузки того, еще один загрузчик, который знает только про установку Windows(ов), и передать его. В то время как это было в третьей стадии в процессе, это еще называется вторичный загрузчик, потому что он не знает и не интересуется, что там был другой вторичный загрузчик работает, прежде чем он. Это также было бы в случае с установить Linux, который используется другой тип вторичный загрузчик.

в основном, когда мы говорим о загрузчик с точки зрения Linux, мы, как правило, не означает, что код ПЗУ (это не часть линукса или изменена установка Linux). Когда мы делаем [Ф1] мы меняем вторичный загрузчик, который обычно в /Boot конкретной установки. Когда мы делаем [Ф2] мы меняем его, а также первичный загрузчик в MBR, так что он имеет достаточно кода, чтобы знать, где лежит /Boot (возможно, начиная с программного RAID, как она идет) и будет загружать и выполнять, что, когда оно само выполняется.

Итак, в резюме вы оказались неверными, когда ты сказал, что диск является частью основной памяти* потому что это отдельная. (Действительно, загрузчик взят антонимично к первичный загрузчик). Вы были правы как в том, что там есть и загрузчик в MBR, потому что они два шага процесса и как иногда называют этим именем. И ответ "у разных ОС загрузчик хранить их в разных местах?" - это "в основном", потому что если вы несовместимы вторичный загрузчики либо скрыть другие загрузчики (если вы устанавливаете Windows после установки Linux) или chainload в другую при необходимости (если вы исправить эту ситуацию, или установить Linux после Windows), но ОС можно разделить вторичный загрузчик, если они совместимы (если вы устанавливаете Linux за другой Линукс, который использует тот же тип вторичный загрузчик, и он видит, что другой Linux [иногда программный RAID путает вещи и делает запуск необходимо).

*в дни, когда можно было бы программно использовать как ПЗУ и ОЗУ это разные. На Спектрум например, ROM будет 16kiB и включают в себя интерпретатор Basic, так как дает вам отправную точку для погрузки что-то в его 48kiB или 128KiB (выгружаемого) или оперативной памяти (в этом случае, по существу, загрузившись в том, что интерпретатор Basic и затем используя это, чтобы загрузиться в то, что было на кассете), там была целая куча функций от основного переводчика, что программы в оперативной памяти может использовать (зачем писать функции тригонометрические, когда на компьютере уже имеется одна известном положении? особенно когда ты только 48kiB для всех собственный код для выполнения в). Этот диск также был виден точно так же, как Оперативная память, только по разным адресам. В таком случае диск был такой же частью основной памяти в качестве оперативной памяти, но не на запись. В эти дни вы почти не замечать диска, как только вы пройдете первый этап загрузки.

4
ответ дан 25 May 2018 в 07:48

Сделайте минимальный рабочий пример и запустите его на эмуляторе, чтобы понять эти понятия:

printf '\364%509s\125\252' > main.img
qemu-system-x86_64 -hda main.img

Это супер простой «загрузчик», который выполняет одну команду hlt. Дополнительная информация: https://stackoverflow.com/a/32483545/895245

Затем вы можете запустить ее на реальном оборудовании с помощью:

sudo dd if=main.img of=/dev/sdX

и подключить USB к вашему компьютер и загрузка из него.

Когда вы это сделаете, становится ясно, что загрузчик - это то, что живет на постоянном диске хранения, таком как USB или жесткие диски.

ROM - это код, который запускает загрузчик для нас, называемый https://stackoverflow.com/a/32483545/895245 (или менее точно BIOS).

0
ответ дан 25 May 2018 в 07:48

В старые дни программа загрузки находилась на перфорированной бумажной ленте, аналогичной используемой телеграфными машинами или перфокартами («больше не видишь их обоих»). этот процесс назывался IPL, сокращенный для начальной загрузки программы. Иногда, если бумажная лента или устройство чтения карт не были доступны, вам нужно будет ввести двоичный код IPL непосредственно в процессор через консоль на передней панели. whew!

В настоящее время код IPL находится в pROM, который при запуске в свою очередь загружает и выполняет любые вторичные загрузчики, адаптированные для загрузки (загрузки) требуемой операционной системы. вторичный загрузчик может быть на любом носителе в любой части настройки, известной или адресуемой кодом IPL.

0
ответ дан 25 May 2018 в 07:48

Загрузочный загрузчик обычно находится в первом секторе жесткого диска, обычно называемом главной загрузочной записью.

Cheers

-1
ответ дан 25 May 2018 в 07:48

Другие вопросы по тегам:

Похожие вопросы: