Какво прави 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 е намаляла с времето, вижте Wikipedia.
Друг автор на SuperUser, Саймън Рихтер, ни дава преглед на нещата, които BIOS все още прави:
BIOS и управление на захранването
BIOS предоставя редица услуги на операционните системи, повечето от които са свързани с управление на захранването:
- модифициране на CPU и автобусните часовници
- активиране / деактивиране на устройства на дънната платка
- контрол на мощността на пристанището за разширение
- прекъсване до диск и прекъсване на RAM
- възобновяване на настройките на събитията
Прекъсването на диска се изпълнява в операционната система през повечето време, тъй като операционната система може да възстанови състоянието си по-бързо (само състоянието на ядрото се презарежда, а състоянието на програмата се замества, когато е необходимо, което е значително по-бързо от презареждането на цялата оперативна памет), но функцията остава в спецификацията.
ОС не може да се осъществи, тъй като разчита на BIOS да пропусне инициализацията и теста на RAM, така че операционната система се нуждае от API, за да каже на BIOS, че възнамерява да бъде възобновено с текущото съдържание на RAM. За да предостави тази услуга, BIOS моли операционната система да остави определена област на RAM непокътната.
Интерфейсът за операционната система за всички BIOS услуги е част от виртуален машинен код, който трябва да се изпълнява на емулатор и който генерира необходимите I / O операции в хардуера. За спиране, това обикновено се реализира, така че изпълнението на един от хардуера пише след това задейства прекъсване, което прехвърля контрола към BIOS.
Имате ли какво да добавите към обяснението? Звукът е изключен в коментарите. Искате ли да прочетете повече отговори от други технологични потребители на Stack Exchange? Вижте пълната тема за дискусия тук.