Конфлікт між тим, що ви говорите про те, що завантажувач завантажений у ПЗУ, і той, що знаходиться в MBR, можливо, пов’язаний з тим, що завантажувач використовується для будь-якого коду, який розробив, як зробити мінімум для завантаження коду, щоб змусити комп'ютер зробити щось корисне, включаючи кожне стан у багатоступеневому завантаженні.
Отже, початковий стан - це мати комп'ютер, який є програмованим пристроєм, але не знає, як завантажити програмне забезпечення для запуску, оскільки на ньому не завантажено жодного програмного забезпечення. (А значить, завантаження з підтягування себе з завантажувальних пристроїв ).
Історично було кілька різних рішень цієї проблеми, але в наші дні ми починаємо з деякого коду в ПЗУ (здебільшого, мабуть, строго EEPROM), якого достатньо, щоб він міг переглянути різні пристрої та спробувати їх по черзі, поки не знайде той, який є завантажувальний.
(Ось чому багато систем завантажуються з компакт-диска чи DVD-диска, якщо ви вставите диск інсталятора ОС на жорсткий диск і з нього, інакше - BIOS [код на ROM, включаючи код, про який ми говоримо, і деякі інші низькі -урожай, який починає робити], налаштовується спочатку на диск CD / DVD, потім на жорсткий диск, якщо він нічого не знаходить, налаштування часто встановлюють його ігнорувати пристрій CD / DVD, якщо вручну не вимагають цього. не витрачає час на спінінг незавантажуваного диска, який залишився на диску).
Цей код в ПЗУ іноді називають завантажувачем .
Коли він знає, на якому дискові дивитись, то він перегляне MBR, який містить інформацію про первинні розділи - як ви могли пізніше подивитися / / / boot або C: / (у системі Windows), якщо ви навіть не зробили знаєте, якою частиною диска був який розділ, незважаючи на те, як був змонтований кожен розділ? - і деякий код з подальшими інструкціями щодо виконання. (До речі, це пояснює, чому деякі ОС, як-от Windows, можна встановлювати лише на первинному розділі. Деталі цих розділів знаходяться в MBR, і це єдина інформація про розділи, яку читав їх завантажувач, і він не завантажує EBR на дізнайтеся про логічні розділи, наскільки це стосується цих розділів ще не існує).
Цей виконуваний код також називається завантажувачем . Коли ми хочемо розрізнити це і наступне, це називається первинним завантажувачем (тому що, якщо ми не робимо власну BIOS, ми ігноруємо біт ROM як поза нашим контролем).
Цей код буде дуже малим, оскільки для його вміщення всього близько 400 байт, тому, щоб зробити щось реальне, він завантажить ще якийсь код, який може бути більшим, оскільки йому не доведеться мати справу з цим обмеженням.
Цей код також відомий як завантажувач . Коли ми хочемо розрізнити це і те, що було раніше, це називається вторинним завантажувачем .
Цей код, можливо, може бути завершальним етапом у процесі. Якщо у вас є лише одна ОС або якщо всі ОС вашої системи використовують сумісні завантажувачі (наприклад, дві встановлення Linux, які обидва використовують GRUB, тому те, що GRUB було оновлено останнім, може запропонувати завантажитися в будь-яку з них), то це представляє меню (за бажанням) завантаження в ядро та передає контроль над операційною системою.
У випадку, якщо у вас ОС, яка не сумісна з цим завантажувачем, вона може завантажувати ланцюг. Наприклад, якщо у вас на одній машині є Windows та Linux, опція GRUB для завантаження Windows насправді завантажить ще один завантажувач, який знає лише про інсталяції Windows, і перейде до нього. Хоча це був третій етап у процесі, він все ще називається вторинним завантажувачем , тому що він не знає і не піклується про те, щоб перед ним працював ще один вторинний завантажувач. Так би було і з установкою Linux, яка використовувала інший тип вторинного завантажувача.
Здебільшого, коли ми говоримо про завантажувач з точки зору Linux, ми зазвичай не маємо на увазі код ROM (він не є частиною Linux або змінений установкою Linux). Коли ми це робимо, update-grub
ми змінюємо вторинний завантажувач, який, як правило, знаходиться в / завантажуванні певної установки. Коли ми це робимо, install-grub
ми змінюємо його, а також основний завантажувач у MBR, щоб він мав достатньо коду, щоб знати, де / boot (можливо, запускаючи програмний RAID, як він йде), і буде завантажувати та виконувати це, коли він сам виконується .
Отже, підсумовуючи, ви помилилися, сказавши, що ROM є частиною головної пам’яті *, оскільки це окремо. (Дійсно, оперативна пам'ять сприймається як антонімічна для ROM). Ви були праві, сказавши, що там і в MBR був завантажувач, тому що це два етапи процесу, і обидва іноді називаються цим ім'ям. І відповідь "Чи зберігають різні ОС свої завантажувачі в різних місцях?" є "здебільшого", тому що якщо ви несумісні вторинні завантажувачі, то приховуватимуть інші завантажувачі (якщо ви встановите Windows після встановлення Linux) або ланцюгові завантаження в інший, якщо це вимагається (якщо ви виправите цю ситуацію або встановите Linux після Windows), але ОС може поділитися вторинним завантажувачем, якщо вони сумісні (якщо ви встановите Linux після іншого Linux, який використовує той же тип вторинного завантажувача, і він може бачити інший Linux [іноді програмне забезпечення RAID плутає речі та робить необхідну завантаження ланцюга).
* У дні, коли програмно можна було б використовувати як ROM, так і оперативну пам’ять, це було інакше. Наприклад, у спектрі ZX, ПЗУ склав би 16кіБ і включав інтерпретатор BASIC, а також дасть вам вихідну точку для завантаження чогось у свої 48кіБ або 128 Кбіт (на сторінці) або оперативної пам’яті (у такому випадку це, по суті, завантаження в що інтерпретатор BASIC, а потім використовуючи його для завантаження того, що було на стрічці), у інтерпретатора BASIC з'явився цілий ряд функцій, які могли використовувати програми в оперативній пам'яті (навіщо писати триггерну функцію, коли на комп'ютері вже є відома позиція ? особливо, якщо у вас є лише 48 Кб на весь свій власний код. Цей ROM також був видимий так само, як і ОЗУ, лише за різними адресами. У такому випадку ПЗУ був стільки ж частиною основної пам'яті, скільки оперативної пам'яті, але не для запису.
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)
за ним. Основна пам'ять складається з двох частин, оперативної пам’яті та ПЗУ. Мені просто хочеться дізнатися, чи встановлений так званий завантажувач на ROM в основній пам'яті ... @Sergey