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, якими послуговується левова частка персональних комп'ютерів. Компанія продає виробникам платформ BIOS двох торгових марок: PhoenixBIOS та AwardBIOS. Останній було долучено до кошика компанії після поглинання у вересні 1998 року компанії Award Software.
Другий по використанню — AMIBIOS, розроблений компанією American Megatrends Inc.
В 1991 році співробітники, що покинули Phoenix Technologies, заснували нову компанію, що мала на меті розробку BIOS для мобільних платформ. Вона отримала назву SystemSoft Corporation. Після низки змін власників до сьогодні дійшла компанія Insyde Software, що пропонує здебільшого для ноутбуків та кишенькових комп'ютерів InsydeBIOS.
Існують проекти, що націлені на створення вільного BIOS, наприклад coreboot (раніше відомий як LinuxBIOS)[9].
Також існує і безліч інших BIOS (наприклад, AST, BIOSTAR, COMPAQ, C&T, DTK, Philips, Quadtel та інші), які в основному набули поширення наприкінці 80-х, на початку 90-х років минулого століття.
Принцип та стадії роботи BIOS
Старт BIOS
Одразу після подачі живлення системний контролер починає генерувати тактові імпульси і подає сигнал RESET (скидання) на усі компоненти системи. Центральний процесор комп'ютера починає виконувати програму BIOS, яка міститься у відповідній мікросхемі. Власне, ця стадія стосується лише частини BIOS, що відповідає за первинне завантаження і називається Boot-блок. Програма завантажувального блоку обчислює контрольні суми усього вмісту 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-пам'яті[lower-alpha 1] — особливого різновиду пам'яті, призначеного для зберігання апаратної конфігурації комп'ютера. Крім того, тут також знаходяться всі налаштування BIOS, які може змінювати користувач — характеристики оперативної пам'яті (таймінги), частота роботи процесора, параметри жорсткого диска тощо.
Фінальна стадія
Фінальна стадія завершується завантаженням операційної системи. Керування передається програмі, що знаходиться у Boot-секторі (завантажувальному секторі) дискети, жорсткого диска, компакт-диска) або віддаленого носія, вказаного по мережі. Здійснюється перехід (jmp) на першу інструкцію завантаженого сектора, і далі керування беруть на себе механізми ініціалізації операційної системи.
Звукові сигнали BIOS
Примітки
- Мікросхема CMOS-пам'яті (англ. Complementary Metal Oxide Semiconductor) — це невелика, за своїм обсягом, оперативна енергозалежна пам'ять. Оскільки інформація в ній повинна зберігатися і після виключення живлення, мікросхема CMOS-пам'яті живиться від своєї власної батареї. Наявність батареї породжує свої проблеми. Після декількох років експлуатації, коли батарея не здатна забезпечити живлення мікросхеми CMOS, інформація починає втрачатися. На щастя, проблеми вирішує заміна батареї на нову.
Джерела
- Ref — System BIOS. PCGuide. Архів оригіналу за 21 грудня 2014. Процитовано 6 грудня 2014.
- Kildall, Gary Arlen (June 1975). CP/M 1.1 or 1.2 BIOS and BDOS for Lawrence Livermore Laboratories.
- Kildall, Gary Arlen (January 1980). The History of CP/M, THE EVOLUTION OF AN INDUSTRY: ONE PERSON'S VIEWPOINT (англ.) (вид. Vol. 5, No. 1, Number 41). Dr. Dobb's Journal of Computer Calisthenics & Orthodontia. с. 6–7. Архів оригіналу за 24 листопада 2016. Процитовано 3 червня 2013.
- Bradley, Tony. R.I.P. BIOS: A UEFI Primer. PCWorld. Архів оригіналу за 27 січня 2014. Процитовано 27 січня 2014.
- Swaine, Michael (1 квітня 1997). Gary Kildall and Collegial Entrepreneurship. Dr. Dobb's Journal. Архів оригіналу за 24 січня 2007. Процитовано 20 листопада 2006.
- Shustek, Len (2 серпня 2016). In His Own Words: Gary Kildall. Remarkable People. Computer History Museum. Архів оригіналу за 17 грудня 2016.
- Killian, A. Joseph "Joe" (2001). Gary Kildall's CP/M: Some early CP/M history - 1976-1977. Thomas "Todd" Fischer, IMSAI. Архів оригіналу за 29 грудня 2012. Процитовано 3 червня 2013.
- Fraley, Bob; Spicer, Dag (26 січня 2007). Oral History of Joseph Killian, Interviewed by: Bob Fraley, Edited by: Dag Spicer, Recorded: January 26, 2007, Mountain View, California, CHM Reference number: X3879.2007,. Computer History Museum. Архів оригіналу за 14 липня 2014. Процитовано 3 червня 2013.
- http://www.coreboot.org