BIOS

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

BIOS (англ. Basic Input/Output System — базова система введення/виведення) — є набором спеціальних підпрограм, які використовуються комп'ютерами архітектури x86 для ініціалізації компонентів персональної платформи, необхідних для її первинного завантаження та подальшої роботи. Такими є процесор, системна логіка (чіпсет), оперативна пам'ять, клавіатура, відеокарта та інші.

Фактично, це — перше програмне забезпечення, що виконується процесором. Оскільки на початковому етапі завантаження комп'ютера зовнішні пристрої недоступні, BIOS, в загальному випадку, зберігається незалежним від живлення персональної платформи чином — в NVRAM-пам'яті (від англ. Non Volatile, — не тимчасова). Для цього, як правило, використовується одна або декілька спеціальних мікросхем — пристроїв постійного зберігання даних, які розташовані на системній платі.

На застарілих платформах BIOS зберігався рівними частинами на двох мікросхемах: на одній — дані парних адрес (Even BIOS), на іншій — з непарних адрес (Odd BIOS).

Пристрої для зберігання BIOS[ред.ред. код]

Як зазначено вище, BIOS або його частина зберігаються незалежним від живлення персональної платформи чином. Для цього на різних етапах еволюції персонального комп'ютера використовувались всі можливі засоби NVRAM: магнітні носії різних ґатунків та пристрої постійного зберігання — ROM. На сучасних платформах зазвичай використовуються тільки мікросхеми, дані в яких зберігаються і після вимкнення живлення. З їх числа:

До кінця 90-х років для зберігання BIOS використовувалися мікросхеми з паралельним інтерфейсом: під'єднання типового пристрою ROM обсягом 1 мегабіт виконувалося з допомогою 8 ліній для передачі даних та 17 адресних ліній, що забезпечувало доступ до 217=131072 байтів. Такий сигнальний інтерфейс якнайкращим чином пасує системним платам з ISA-шиною, яка й забезпечувала його роботу.

Згодом з'явилися пристрої ROM з мультиплексованим інтерфейсом. З їх числа — FWH (Firmware Hub), запропонований компанією Intel Corp., та LPC (Low Pin Count) — результат співробітництва групи виробників. Характерною особливістю таких пристроїв стало використання однієї групи сигнальних ліній для передачі різної інформації. Типовий представник — Intel® 82802 Firmware Hub. Крім восьми ліній для передачі даних у нього є ще одинадцять адресних ліній, по яких можна передати як молодшу частину справжнього адреса, так і старшу його частину. Фактично мікросхеми сімейства 82802 здатні обслуговувати 22 адресні лінії, що забезпечує адресацію простору у 222 байти.

Мікросхеми ROM з підтримкою LPC мали значні переваги перед паралельними ROM насамперед завдяки збільшеній ємності та впроваджувалась на сучасних системних платах без ISA-шини. Оскільки під'єднання як паралельних, так і FWH/LPC ROM потребує кілька десятків електричних контактів, задля економії від 2006 року на персональних платформах почав використовуватись добре відомий SPI-інтерфейс. SPI-мікросхеми мають всього вісім контактів, з яких лише чотири задіяні для передачі даних.

Виробники 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)[1].

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

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

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

Одразу після подачі живлення центральний процесор комп'ютера починає виконувати програму 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-пам'яті[2] — особливого різновиду пам'яті, призначеного для зберігання апаратної конфігурації комп'ютера. Крім того, тут також знаходяться всі налаштування BIOS, які може змінювати користувач — характеристики оперативної пам'яті (таймінги), частота роботи процесора, параметри жорсткого диска і ін.

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

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

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

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

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

Цікаве[ред.ред. код]

При додаванні нового пристрою і при зміні налаштувань для існуючого на екрані монітора після таблиці конфігурації повинен з'явитися напис виду

«Updating ESCD… Success»

Це означає успішне оновлення даних у області ESCD[3]. Ця область BIOS автоматично оновлюється при зміні конфігурації без втручання користувача.

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

Див. Звукові сигнали POST

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

  1. http://www.coreboot.org
  2. Мікросхема CMOS-пам'яті (Complementary Metal Oxide Semiconductor) — це невелика, за своїм обсягом, оперативна енергозалежна пам'ять. Оскільки інформація в ній повинна зберігатися і після виключення живлення, мікросхема CMOS-пам'яті живиться від своєї власної батареї. Наявність батареї породжує свої проблеми. Після декількох років експлуатації, коли батарея не здатна забезпечити живлення мікросхеми CMOS, інформація починає втрачатися. На щастя, проблеми вирішує заміна батареї на нову.
  3. ESCD (від англ. Extended System Configuration Data, розширені дані конфігурації) — область незалежної пам'яті для підтримки динамічної конфігурації пристроїв Plug and Play

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