Домашня » як » Що робить мій BIOS після завантаження?

    Що робить мій BIOS після завантаження?

    Після завершення процесу завантаження комп'ютера, і ви постійно перебуваєте в зоні операційної системи, чи залишилося щось для BIOS?

    Сьогоднішня сесія запитань та відповідей приходить до нас люб'язно від SuperUser - підрозділу Stack Exchange, групування спільноти веб-сайтів з запитань та відповідей.

    Питання

    Читач SuperUser Indrek задає це питання, пов'язане з BIOS:

    Я завжди замислювався, чи BIOS (крім ведення POST, запуску завантажувача і передачі управління на ОС після натискання кнопки живлення) має будь-яку мету або функцію під час роботи операційної системи?

    Чи взаємодіє операційна система з BIOS під час роботи, і якщо так, то як?

    Дійсно? Яку функцію виконує BIOS, крім критичної ролі в запуску комп'ютера?

    Відповіді

    Надано учасником SuperUser Mechanical Snail, огляд того, як роль BIOS змінилася з часом і що вона є і що не робить сьогодні: 

    Роль BIOS

    З сучасними ОС, практично немає. Як повідомлялося, Лінус Торвальдс сказав, що його завдання полягає в тому, щоб "просто завантажити ОС і вийти звідти".

    Старі операційні системи, такі як MS-DOS, покладалися на BIOS для багатьох завдань (наприклад, доступу до диска), викликаючи переривання.

    У сучасних операційних системах завантажувач швидко переходить у 32- або 64-бітний режим і виконує ядро ​​ОС. Ядро може реєструвати власні обробники переривань, які можуть бути викликані додатками простору користувача. Підпрограми ядра можуть бути більш портативними (оскільки вони не залежать від конкретного апаратного забезпечення), більш гнучкими (постачальники ОС можуть змінювати їх на вимогу, а не використовувати те, що прийшло з апаратним забезпеченням), більш складні (вони можуть виконувати як завгодно складні) код, а не те, що було запрограмовано в BIOS), і більш безпечною (оскільки ОС може контролювати доступ до спільних ресурсів і запобігати розмиканню програм, реалізації власних схем довільних дозволів).

    Щоб взаємодіяти з певним апаратним забезпеченням, ОС можуть завантажувати та використовувати власні драйвери пристроїв. Таким чином, немає потреби в ОС або програмах для виклику більшості процедур BIOS взагалі. Насправді, з міркувань безпеки переривання BIOS навіть відключені. Оскільки BIOS живе в 16-бітному реальному режимі, важче закликати до сучасних ОС.

    Хоча використання BIOS дуже обмежено під час запуску ОС, її функції все ще використовуються периферично. Наприклад, коли комп'ютер спить, операційна система не працює, і в кінцевому підсумку падає на прошивку, щоб встановити апаратне забезпечення в потрібне стан, щоб призупинити і відновити ОС. Ці використання, як правило, обмежуються ACPIcalls, а не викликами повного інтерфейсу BIOS. ACPI - це розширення BIOS, яке «приносить керування живленням під управлінням операційної системи (OSPM), на відміну від попередньої центральної системи BIOS, яка спиралася на специфічні для платформи мікропрограми для визначення політики керування живленням та конфігурації».

    Зверніть увагу, що офіційно “BIOS” відноситься до конкретного інтерфейсу прошивки, але цей термін зазвичай використовується для позначення комп'ютерної прошивки в цілому. Деякі нещодавні комп'ютери (особливо Apple) замінили BIOS (sensu strictu) на UEFI, що, звичайно, є тим, що викликається для реалізації цих функцій.

    Докладнішу інформацію про те, як роль BIOS з часом зменшилася, див. У Вікіпедії.

    Інший учасник SuperUser, Саймон Ріхтер, дає нам огляд речей, які BIOS все ще робить: 

    BIOS та керування живленням

    BIOS надає ряд послуг операційним системам, більшість з яких пов'язані з керуванням живленням:

    • модифікація процесора і шини годинника
    • увімкнення / вимкнення пристроїв материнської плати
    • розширення портів потужності
    • призупиняти на диск і призупиняти до оперативної пам'яті
    • відновити налаштування подій

    Підключення до диска реалізовано в ОС більшу частину часу, оскільки операційна система може відновити стан швидше (тільки стан ядра перезавантажується, а стан програми замінюється, коли потрібно, що значно швидше, ніж перезавантаження всієї оперативної пам'яті), але ця функція залишається в специфікації.

    Призупинення до оперативної пам'яті не може бути реалізовано операційною системою, оскільки вона спирається на те, що BIOS пропускає ініціалізацію та тестування ОЗП, тому ОС потребує API, щоб повідомити BIOS, що він має намір відновитися з поточним вмістом RAM. Щоб забезпечити цю послугу, BIOS просить ОС залишити певну область пам'яті недоторканою.

    Інтерфейс для ОС для всіх служб BIOS - це частина коду віртуальної машини, яка повинна бути запущена на емуляторі, і яка генерує необхідні операції вводу-виводу в апаратне забезпечення. Для призупинення, це, як правило, реалізовано так, що виконання однієї з апаратних записів потім викликає переривання, яке передає керування в BIOS.


    Маєте щось додати до пояснення? Звучить в коментарях. Хочете прочитати більше відповідей від інших технологічних користувачів Stack Exchange? Перегляньте повний потік обговорення тут.