Чому комп'ютер повинен мати BIOS?


35

Програмне забезпечення BIOS вбудоване в ПК і є першим кодом, який управляється ПК при включенні ("прошивка завантаження"). Коли ПК запускається, першим завданням для BIOS є самовипробування при включенні, яке ініціалізує та ідентифікує системні пристрої, такі як процесор, оперативна пам’ять, карта відображення відео, клавіатура та миша, жорсткий диск, привід оптичного диска та інше обладнання. Потім BIOS знаходить програмне забезпечення завантажувача, яке знаходиться на периферійному пристрої (позначеному як "завантажувальний пристрій"), наприклад, на жорсткому диску або CD / DVD, і завантажує та виконує це програмне забезпечення, надаючи йому управління ПК [2]. Цей процес відомий як завантаження або завантаження, що є коротким для завантаження.

Які реквізити визначають, що на комп'ютерній системі повинен бути встановлений BIOS?

Чому Операційна система насправді не може працювати у всіх BIOS?


40
Чому автомобільному двигуну потрібен стартер? Чи не повинен двигун бути досить потужним, щоб запустити себе?
Der Hochstapler

4
@OliverSalzburg це стане можливим найближчим часом газовими двигунами без стартерів. При прямій ін'єкції та комп'ютерах це нескладно.
Моав

2
У них вже є самозапущені двигуни, але це в основному 12+ циліндрові або обертові двигуни. Більшість двигунів не можуть самозапуститись просто тому, що вони не можуть виробляти достатню потужність за один сильний удар, щоб подолати його інерційний момент. Пряме вприскування та кращі терміни моменту можуть трохи допомогти, але дійсно вам потрібні легші двигуни, щоб збільшити співвідношення між енергією, що виробляється силовим ударом, і моментом інтертії, створеним маховиком, колінчастим валом, передачами тощо.
Lèse majesté

5
Насправді, BIOS в ПК сенсі НЕ потрібен. Комп'ютери IBM System / 360 та / 370 (а може бути, новіші версії) розпочали роботу з однією жорсткою провідною інструкцією, яка читала одну запис із пристрою, вибраного циферблатом на консолі. Цей запис містив програму завантаження (вона повинна вміщуватися в 80 байт - одна перфокарта), яка завантажувала більш складну програму завантаження, яка завантажувала ОС з диска. Я здогадуюсь, що "BIOS" - це та сама інструкція, яку потрібно виконати при натисканні правої кнопки (під назвою IPL або початкове завантаження програми).
Ex Exbrbris

2
Ви плутаєте "комп'ютер" та "ПК" у своєму питанні. Ось чому відповіді заплутані та часом суперечливі.
rds

Відповіді:


41

BIOS - це апаратно залежний фрагмент коду, що зберігається на самій материнській платі. Для кожної різної материнської плати потрібний спеціальний BIOS, написаний для цього, тому неможливо мати загальний BIOS / OS all-in-one (хоча BIOS технічно є просто збереженим кодом, щоб ви могли теоретично написати ОС для однієї конкретної материнської плати) . Як ви вже згадували, мета BIOS полягає в наступному:

Коли ПК запускається, першим завданням для BIOS є самовипробування при включенні, яке ініціалізує та ідентифікує системні пристрої, такі як процесор, оперативна пам’ять, карта відображення відео, клавіатура та миша, жорсткий диск, привід оптичного диска та інше обладнання.

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

Наприклад, якщо у мене є дві різні материнські плати з двома різними контролерами SATA, BIOS дозволяє мені написати фрагмент коду, який може працювати з обома, без мого знання про те, як материнська плата насправді надсилає команди на пристрій SATA. Я просто мушу сказати комп’ютеру "зчитувати сектор X з цього пристрою SATA", і BIOS відповідає за те, що фактично надсилає ці команди до обладнання.

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

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


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

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


2
Коли ви запускаєте комп'ютер, BIOS працює як машинний код на процесорі. Ви можете подумати про це так, але насправді це "не вимкнено" в певному сенсі - він просто перемикається на запуск ОС. Коли ви запускаєте комп'ютер, BIOS повідомляє комп'ютеру розпочати виконання машинного коду, що зберігається в місці X. Більш поширені терміни, BIOS просто ініціалізує ваше обладнання та спрямовує комп'ютер, звідки продовжувати працювати з кодом.
Прорив

13
BIOS / OS all-in-one НЕ неможливий. Я не знаю, чому всі тут продовжують це говорити. Наявність кожної частини на окремих пристроях / сховищі не означає, що вони не є частиною однієї логічної сутності. Комп'ютери до комп'ютера IBM мали все-в-одному, тобто BIOS виготовляли та розробляли той самий, що розробляв ядро ​​ОС. Насправді оновлення ОС іноді включали оновлення BIOS.
m0skit0

3
@Oliver Насправді, з ACPI, функції BIOS регулярно використовуються після завантаження ОС.
дероберт

1
BIOS дозволяє ОС (програмний рівень) взаємодіяти з обладнанням. BIOS і ОС виконують різні цілі. Вони складають дві частини цілого. Одне не витісняє іншого.
Бен Річардс

1
@ Попередження: залежить від того, хто виробляє обладнання;) У випадку комп'ютерів IBM логічною еволюцією стали незалежні виробники BIOS та ОС через безліч типів апаратних засобів. Це сталося не в старі часи. Ось чому ПК був (пощастило, за винятком того, що M $ у ньому без причини ...) революція змінила весь обчислювальний ринок.
m0skit0

7

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

Ваша ОС не може цього зробити, оскільки вона знаходиться на жорсткому диску, а не у вашому ПЗУ.

Отже, вам потрібен BIOS або подібна (але інша) технологія, як EFI ...

Є можливість поставити частину ОС на ПЗУ (відповідальну за завантаження завантажувача ОС) виробником; однак це не широко застосовується, і в будь-якому випадку є BIOS або EFI.


1
Ви змішуєте дві різні концепції. BIOS не залежить від ОС, тобто BIOS може бути частиною ОС. Наприклад, якщо він виготовлений тим самим виробником і працює тільки з цією ОС, як завантажувачі ігрової консолі.
m0skit0

5
"BIOS не залежить від ОС, тобто BIOS може бути частиною ОС." Так? Протиріччя дуже суперечливе, хаха.
Прорив

2
Ігрові консолі - це комп’ютери, а також Atari, Amiga та старі Macs, тому це, безумовно, актуально. @Підсумок: це не суперечливо. Це означає, що BIOS не має нічого спільного з ОС, і, таким чином, може бути частиною (або ні) її.
m0skit0

@TomWijsman Ви тут єдиний тролінг. Ігрові приставки - це підмножина комп'ютерів. Якщо на деяких консолях це можливо, то для деяких комп'ютерів це можливо. Крім того, не використовуйте жирний шрифт просто так. Це недоречно.
luiscubal

1
@TomWijsman у нього є момент, якщо ігрові консолі можуть це зробити, то так можуть і комп’ютери. Крім того, доки це не питання чи відповідь, я не бачу проблем із тим, щоб це було поза темою. Коментарі - це коментарі, зрештою; нічого більше, нічого менше. (Немає коментарів щодо сміливого питання - кожен з них про це, хоча це стосується більше термінології.)
Прорив

6

Немає реальної логічної причини. Це більше питання спадщини та історії.

  1. Немає необхідності, щоб на комп'ютері був встановлений BIOS. Це спадщина від IBM PC. Хоча це виявилося гарною ідеєю

  2. Якщо зробити операційну систему, це насправді нічого не змінить, оскільки вона все одно зробить щось на зразок BIOS. Звичайно, ОС повинна бути в ПЗУ, а не на пристрої вводу / виводу. Проблема може виникнути при питаннях монополізму, коли виробник ОС вирішить зробити його BIOS ОС несумісним з іншими ОС. Виділення виробників BIOS від ОС покращує свободу роботи програмного забезпечення.


1
Чому він не може функціонувати як BIOS? Дайте пояснення, чому. Вам залишається лише поставити завантажувач на ПЗУ і все закінчено. Я не маю на увазі, щоб він був повністю в ROM, і навіть так він би працював, якщо ROM досить великий (звичайно, щоб запустити його, вам потрібно буде завантажити частини в оперативну пам’ять, але це робиться і в поточному BIOS).
m0skit0

3
Він сказав "комп'ютер", а не ПК. І так, це застосовно. Насправді це було таким чином перед комп'ютером IBM (Atari, Amiga ... BIOS є частиною ОС).
m0skit0

2
Нерозумно, я писав програмне забезпечення для вбудованих комп'ютерів, у яких не було BIOS чи ОС, просто код програми. Або ми говоримо не про всі комп’ютери, а лише про те, про що думає більшість людей?
jwernerny

2
Не застосовується у великих масштабах? Перевірте, скільки Ataris, Amigas та Macs були там перед ПК.
m0skit0

2
IPhone - це комп'ютер, і я не вірю, що він має BIOS. Ще до настання цифрової епохи ... комп'ютер - це програмована машина, яка виконує операції та видає однаковий результат для заданого входу, правда? Жаккардовий ткацький верстат - це комп'ютер, і він, звичайно, не має BIOS (у нього навіть немає ОС).
rds

5

Щось потрібно для запуску операційної системи. Якщо ОС могла вміститися в деякій енергонезалежній пам'яті, її можна було б запустити безпосередньо, але з повнофункціональними ОС, такими як Windows, OSX або Linux, це неможливо.

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

  1. Оновлення - якби ОС була виправлена ​​таким чином, її буде важко оновити, якщо потрібні якісь виправлення безпеки. Це можна зробити - оновлення прошивки постійно відбувається на таких пристроях, як маршрутизатори тощо, але на них встановлені відносно прості операційні системи.
  2. Гнучкість - комп’ютер - це машина загального призначення, і одне і те ж апаратне забезпечення може запускати кілька різних операційних систем. Маючи BIOS, який потім завантажує ОС з диска, це означає, що ви можете вибрати, яку з них запустити - ви можете навіть зайти, маючи кілька встановлених поруч.

Процес відомий як завантажувальний процес .


1
Отже, аншері є тому, що у нас багато різних ОС? Я маю на увазі, якщо у нас є лише одна модель ОС для конкретного обладнання, то ми б усунули потребу в BIOS?
Діого

1
Я не бачу, чому не можливо, що Microsoft робить BIOS ...
m0skit0,

1
Вам не потрібна вся ОС, щоб вписатись в енергонезалежну пам'ять (яку вона може btw, вам просто потрібно достатньо ROM: P). Вам потрібен лише завантажувач, щоб бути там.
m0skit0

1
@ m0skit0 Microsoft не може створити BIOS, оскільки йому доведеться створити інший BIOS для кожної материнської плати, на яку вона хоче, щоб це програмне забезпечення працювало. :)
Прорив

1
Крім того, розміщення ОС на ROM @ChrisF підриває всю точку операційної системи в першу чергу. Можливо, є сенс використовувати ПЗУ для безпосереднього виконання деяких збережених програм на процесорі (що дасть набагато кращі показники), але вся суть операційної системи полягає в тому, щоб явно заборонити цей тип операцій і забезпечити загальний програмний інтерфейс для зроби так.
Прорив

4

Концепт-BIOS BIOS походить від CP / M, операційної системи, популярної на 8-бітних комп'ютерах на базі шин Z-80 "S-100" до того, як IBM PC взяв на озброєння.

CP / M очікується, що функції, що залежать від обладнання, будуть знаходитися в ПЗУ (BIOS). Інша частина, завантажена з диска завантажувачем, - це програмне забезпечення, яке підтримувало файлову систему CP / M (BDOS), а потім тривало командний процесор або "оболонку" (CCP). Обладнання, яке CP / M, як очікувалося, підтримувало не так вже й багато: дисковий накопичувач, дисплей, послідовний порт або два (порти COM або AUX), до яких могли бути приєднані принтери чи модеми.

PC BIOS виконував основну функцію завантаження, подібну до того, як це робив CP / M, а DOS використовував функції BIOS для виконання базового вводу та виводу за призначенням. Програмісти в кінцевому рахунку обійшли ці функції, оскільки вони були повільними. Це призвело до того, що виробники клонів ПК в середині 80-х років відтворили платформу в цілому (легко, оскільки IBM дуже добре документував оригінальний ПК всередині і зовні), а не просто забезпечував BIOS сумісними інтерфейсами, хоча вони також повинні були це робити.

На даний момент можна сказати, що для сучасної ОС BIOS насправді не потрібен, крім завантаження системи. Однак ...

Починаючи з початку 90-х, поняття управління енергією прийняло своє значення, і BIOS покладав на це завдання. APM добре працює з операційною системою з одним завданням, таким як DOS, але не з справжніми багатозадачними ОС, такими як Windows або Linux. Приблизно в цей час 386 працював у повному обсязі, процесор Intel, який підтримував справжню багатозадачність. DOS та BIOS не оновлювались у відповідь на нові можливості цього процесора, в основному тому, що всі процесори Intel все ще будуть працювати в застарілому 16-бітному режимі сумісності, для якого був створений оригінальний PC-BIOS. Тож сучасні ОС в основному ігнорують / обходять всі CP / M-подібні функції вводу / виводу BIOS, за винятком випадків на ранніх стадіях завантаження.

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

Тому в наші дні це ACPI, і його спадкоємець, EFI, зберігає щось на зразок BIOS - необхідність ПК. Загальна концепція полягає в тому, щоб ACPI був інтерфейсом між платформою або специфікою материнської плати та ОС, тому окрема збірка ОС не робить повинні бути виготовлені для кожного різного типу материнської плати.

Проблема з розробкою, в якій розміщені ARM-процесори під управлінням Linux (а також апаратне забезпечення для мобільних телефонів). Зазвичай вони поставлятимуться лише з завантажувальним програмним забезпеченням, таким як U-boot, але в значній мірі ОС повинна підтримувати кожну плату як окрему платформу.


3

У певному розумінні ти маєш рацію. BIOS і OS частково роблять те саме. Розмежування в BIOS і ОС полягає виключно у гнучкості.

BIOS зазвичай створюється виробником обладнання. Апаратне забезпечення повинно забезпечити наявність базової функціональності, наприклад, з дискового диска можна зчитувати диск та відображати базовий дисплей для діагностики та помилок. Таким чином назва "Основна система вводу виводу".

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

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

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

Ще одна проблема - розмір і вартість пам'яті. Повнофункціональні ОС великі, а спроби ввести багатогагабайтну ОС в ПЗУ дорого, окрім подальших проблем з виправленням та оновленням.

Так що ні, технічних причин немає, але багато практичних, особливо для гнучкої платформи ПК.


3

Для того, щоб запустити програму на сучасному ПК, у вас вже повинна бути запущена програма, яка б почала з того, що знає, як керувати апаратним забезпеченням і завантажувати програми в пам'ять. Ця проблема з курячими яйцями вирішується шляхом імплантації основної програми в сам апарат.

Ця основна система введення / виводу (BIOS) дуже мала і дуже обмежена за обсягом, але забезпечує достатню основу, щоб завантажувачі другого ступеня завантаження, як GRUB або NTLDR , могли завантажуватись та працювати. Ці навантажувачі другого ступеня є більш досконалими, ніж програма BIOS, що дає їм змогу забезпечити більш надійну основу для операційної системи, яка належить завантажувати та брати на себе управління.


Гарне нетехнічне пояснення.
Механічний равлик

1

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

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

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


Раніше комп'ютери працювали безпосередньо з диска / барабана, без значної кількості оперативної пам’яті.
Даніель Р Хікс

-1

Це не потрібно!

Що часто називають BIOS - це набір з 3 речей.

  • Завантажувач
  • Інструмент конфігурації: тепер здебільшого застарілий, крім порядку завантаження та годинника. Більшість решти повинно бути автоматичним або встановленим виробником.
  • BIOS: бібліотека вхідних вихідних процедур, що допомагають операційній системі спілкуватися з обладнанням. На жаль, біос є 16-бітним, застарілим і не може бути використаний сучасними операційними системами, тому в основному ігнорується.

Завантажувач є частиною BIOS.
Даніель Р Хікс

@Daniel Я переписав, щоб зробити чіткіше, дякую.
ctrl-alt-delor
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.