BIOS

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Мікросхема ПТЧ (ROM) на системній платі, в якій розміщується BIOS

BIOS (англ. Basic Input/Output System — базова система введення/виведення) у IBM PC-сумісних комп'ютерах — тип firmware, що зберігається у постійні пам'яті і виконує початкову ініціалізацію машини після її увімкненя, а також надає спеціальні точки входу для сервісних процедур, що можуть використовуватися операційною системою..[1] Фізично код BIOS записаний у мікросхемах постійної або флеш-пам'яті, розташованих на системній платі комп'ютера. Назва походить від частини операційної системи CP/M[2][3] Перші BIOS для комп'ютерів IBM PC були пропрієтарним програмним забезпеченням, однак стороннім компаніям вдалося розробити власні версії, частково шляхом Зворотної розробки. Інтерфейс програм оригінальної BIOS довгий час залишався стандартом де-факто.

У сучасних комп'ютерах BIOS виконує ініціалізацію і тестування апаратних компонентів, і виконує початкове Завантаження операційної системи шляхом читання і запуску програми-завантажника з носія інформації (наприклад, жорсткого диска). BIOS відігравала важливу роль у еру MS-DOS, забезпечуючи більш-менш стандартизований шар апаратних абстракцій для пристроїв введення-виведення типу клавіатури, відеоконтролера та інших. Інтерфейси BIOS могли бути викликані і безпосередньо з програми користувача. Сучасні операційні системи, як правило, не не звертаються до BIOS після завантаження, натомість реалізуючи роботу з пристроями напряму.

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

Стандарт UEFI (Unified Extensible Firmware Interface) є наступником BIOS, спрямованим на усунення її технічних і архітектурних недоліків.[4]

Історія[ред. | ред. код]

/* C P / M   B A S I C   I / O    S Y S T E M    (B I O S)
                    COPYRIGHT (C) GARY A. KILDALL
                             JUNE, 1975 */
[…]
/*  B A S I C   D I S K    O P E R A T I N G   S Y S T E M  (B D O S)
                    COPYRIGHT (C) GARY A. KILDALL
                            JUNE, 1975 */

— Фрагмент [PL/M]-файлу BDOS.PLM з початковими текстами CP/M версії 1.1 або 1.2, ліцензованої для Ліверморської національної лабораторії (LLL)[2]

Термін BIOS (Basic Input/Output System) вперше вжив Гері Кілдалл[5] у 1975-му році, як компонент операційної системи CP/M.[2][3][6][7][8]Термін позначав машинно-залежну частину CP/M, завантажену у пам'ять на самому початку, що забезпечувала прямий інтерфейс з апаратним забезпеченням мікрокомп'ютера[3] (машини для CP/M зазвичай мали лише мінімальний дисковий завантажник, записаний у ПЗП).

Операційні системи MS-DOS, PC DOS і DR-DOS мають системний файл, названий "IO.SYS", "IBMBIO.COM", "IBMBIO.SYS", або "DRBIOS.SYS"; такий файл є так званою "DOS BIOS" (або "DOS I/O System") і містить низькорівневі модулі операційної системи, що надають доступ до обладнання. В сукупності з "System BIOS" (що також залежить від апаратури, але не залежить від ОС, і розташовується у ПЗП), дані компоненти являють собою аналогію BIOS у CP/M.

У комп'ютерах IBM PS/2 «системний BIOS» було розділено на частини, що працюють у реальному і захищеному режимах процесора. Перша призначалася для зворотної сумісності з системами типу DOS (тому називалась «Compatibility BIOS, CBIOS»), а друга — Advanced BIOS, або ABIOS — забезпечувала повністю нові інтерфейси захищеного режиму процесора 80286 і призначалася для операційних систем типу OS/2.

Виробники BIOS[ред. | ред. код]

Окремо варто згадати про виробників BIOS. Найбільшого поширення набули програмні продукти компанії Phoenix Technologies Ltd., якими послуговується левова частка персональних комп'ютерів. Компанія продає виробникам платформ BIOS двох торгових марок: PhoenixBIOS та AwardBIOS. Останній було долучено до кошика компанії після поглинання у вересні 1998 року невеличкої тайванської компанії Award Software International Ltd.

Другий по використанню — AMIBIOS, розроблений компанією American Megatrends Inc.

В 1991 році співробітники, що покинули Phoenix Technologies, заснували нову компанію, що мала на меті розробку BIOS для мобільних платформ. Вона отримала назву SystemSoft Corp. Після низки змін власників до сьогодні дійшла компанія Insyde Software Corp., що пропонує здебільшого для ноутбуків та кишенькових комп'ютерів InsydeBIOS.

Існують проекти, що націлені на створення вільного BIOS, наприклад coreboot (раніше відомий як LinuxBIOS)[9].

Також існує і безліч інших BIOS (наприклад, AST, BIOSTAR, COMPAQ, C&T, DTK, Philips, Quadtel та інші), які в основному набули поширення наприкінці 80-х, на початку 90-х років минулого століття.

Принцип роботи BIOS[ред. | ред. код]

Старт BIOS[ред. | ред. код]

Одразу після подачі живлення системний контролер починає генерувати тактові імпульси і подає сигнал RESET (скидання) на усі компоненти системи. Центральний процесор комп'ютера починає виконувати програму BIOS, яка міститься у відповідній мікросхемі. Власне, ця стадія стосується лише частини BIOS, що відповідає за первинне завантаження і називається Boot-блок[en]. Програма завантажувального блоку обчислює контрольні суми усього вмісту BIOS і у випадку їх невідповідності (зазвичай при пошкодженні програмного коду BIOS) припиняє виконання штатного коду і видає сигнал помилки (звуковий сигнал).

Відновлення BIOS[ред. | ред. код]

При негараздах BIOS, що можуть виникнути в результаті яких-небудь дій користувача або збою апаратури, управління передається спеціальній процедурі, на яку покладено функцію відновлення — Crisis Recovery. Ця процедура покликана в аварійному порядку прочитати з дискети, інколи навіть з жорсткого диска, файл BIOS, а потім записати його в мікросхему замість пошкодженого коду, тим самим відновивши працездатність системної плати.

Початкова стадія[ред. | ред. код]

На цьому етапі виконується початкове тестування всіх вузлів та компонентів комп'ютера, яке називається POST (англ. Power-On Self Test — самотестування після подачі живлення). Окрім цього, метою процедури POST є обчислення обсягу оперативної пам'яті, пошук та ініціалізація відео-системи, послідовних та паралельних портів, накопичувачів на гнучких та жорстких дисках, додаткових пристроїв, що підключені до шин PCI та USB тощо.

Етапи ініціалізації та перевірки працездатності відстежуються засобами діагностики BIOS. Для цього процедури POST при переході від одного до іншого пристрою щоразу посилають у діагностичний порт (Manufacturing Test Port) спеціальні сигнали, що називаються POST-кодами. Деякі з них дублюються відповідними звуковими сигналами. В разі, коли виникають помилки, завантаження комп'ютера припиняється до усунення несправності. Про характер несправності можна зробити висновки, судячи з останнього POST-коду або звукового сигналу.

У своїй роботі процедури POST керуються налаштуванням BIOS, читаючи їх із CMOS-пам'яті[10] — особливого різновиду пам'яті, призначеного для зберігання апаратної конфігурації комп'ютера. Крім того, тут також знаходяться всі налаштування BIOS, які може змінювати користувач — характеристики оперативної пам'яті (таймінги), частота роботи процесора, параметри жорсткого диска і ін.

Фінальна стадія[ред. | ред. код]

На фінальній стадії виконується те, задля чого власне й розроблявся BIOS. В наперед заданий програмний сегмент записуються процедури обробки операцій введення та виведення даних. Це дозволяє операційній системі, коли вона перейме управління від BIOS, послуговуватись бібліотеками програм в оперативній пам'яті, що вже заздалегідь розміщені там.

Якби всі програми самостійно намагалися опікуватися периферійними пристроями та містили б в собі подібні інструкції, то вони працювали вельми не ефективно та займали б забагато місця. Окрім того, кожен новий пристрій потребував би повної модифікації існуючих програм. Щоб уникнути подібних проблем, велику частину роботи по обробці даних переклали на BIOS. Це, напевно, не вирішило всіх проблем, але щонайменше значно спростило їх вирішення.

Хоча сучасні операційні системи практично не використовують або взагалі не використовують можливості BIOS по обробці операцій введення-виведення, з розвитком технічного прогресу роль BIOS зовсім не зменшується. З введенням у дію стандарту ACPI одна із першочергових задач BIOS — підготовка та передача операційній системі методів керування ресурсами комп'ютера.

Фінальна стадія завершується завантаженням операційної системи. Управління передається програмі, що знаходиться в Boot-секторі (завантажувальному секторі) дискети, жорсткого диска, компакт-диска) або віддаленого носія, вказаного по мережі. Далі управління беруть на себе вбудовані механізми операційної системи.

Звукові сигнали BIOS[ред. | ред. код]

Щодо додаткової аудіоінформації від предмета Див. Звукові сигнали POST

Примітки[ред. | ред. код]

  1. Помилка цитування: Неправильний виклик <ref>: для виносок pcguidedefinition не вказаний текст
  2. а б в Помилка цитування: Неправильний виклик <ref>: для виносок Kildall_1975_BDOS не вказаний текст
  3. а б в Помилка цитування: Неправильний виклик <ref>: для виносок Kildall_1980_CPM не вказаний текст
  4. Помилка цитування: Неправильний виклик <ref>: для виносок Bradley не вказаний текст
  5. Помилка цитування: Неправильний виклик <ref>: для виносок Swaine_1997_Entrepreneurship не вказаний текст
  6. Помилка цитування: Неправильний виклик <ref>: для виносок Shustek_2016 не вказаний текст
  7. Помилка цитування: Неправильний виклик <ref>: для виносок Fischer_2001_Ewing не вказаний текст
  8. Помилка цитування: Неправильний виклик <ref>: для виносок Fraley_2007_Killian не вказаний текст
  9. http://www.coreboot.org
  10. Мікросхема CMOS-пам'яті (англ. Complementary Metal Oxide Semiconductor) — це невелика, за своїм обсягом, оперативна енергозалежна пам'ять. Оскільки інформація в ній повинна зберігатися і після виключення живлення, мікросхема CMOS-пам'яті живиться від своєї власної батареї. Наявність батареї породжує свої проблеми. Після декількох років експлуатації, коли батарея не здатна забезпечити живлення мікросхеми CMOS, інформація починає втрачатися. На щастя, проблеми вирішує заміна батареї на нову.

Посилання[ред. | ред. код]