BIOS имеет какую-либо специальную функцию, которую не могла сделать другая программа?

Я просто хочу спросить, когда я искал информацию о BIOS, я нашел главным образом устаревшие статьи, таким образом, у меня просто есть несколько простых вопросов о том, как он работает сегодня.

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

Но если я все еще корректен, вся эта работа может быть сделана вручную любой программой, которая имеет кольцо 0 режимов. Я имею в виду, BIOS не имеет никакой специальной функциональной любой программы, не мог иметь, действительно ли я прав?

Я знаю в дни DOS, что стандартные программы BIOS в большой степени использовались. Но в наше время, не так ли? Я имею в виду, ОС в эти дни даже использует стандартные программы BIOS? Когда существуют драйверы для всего?

Но BIOS все еще обновляется много со многими исправлениями ошибок, поэтому интересно, что точно является ролью BIOS в наше время.

С примера я думаю об изменении частоты FSB. Можно ли сделать это через BIOS, но у Вас должен был быть другой способ сделать его правильно? Так как BIOS является только программой.

Только вещью, я думаю, что Вам, возможно, понадобился бы BIOS для, является слой совместимости между ОС и Определенными аппаратными средствами, как чипсет, но тем не менее, если Вы знали точный способ добраться до HDD (который порты и который данные отправить им) Вы могли к этому без BIOS, является это правом?Спасибо.

6
задан 06.11.2010, 13:22

3 ответа

Бит 'BIOS' 'BIOS' является действительно слоем совместимости между аппаратными средствами и ОС. Да, Вы могли непосредственно управлять аппаратными средствами, НО необходимо будет написать код драйвера для каждого варианта дизайна материнской платы для приложения для работы над каждой машиной. В очень тусклом и удаленном прошлом, когда Lotus 123 был приложением для DOS, самые первые немного версий управляли портом параллельного принтера непосредственно для ускорения выполнения печати, которое было всем хорошо и хороший, если бы у Вас был истинный IBM PC, или очень хороший клон, но на некоторых ПК, 123 не распечатал бы, потому что электроника параллельного порта немного отличалась от дизайна IBM.

Аппаратные стандартные программы BIOS и механизмы прерывания также помогают вынести решение между несколькими приложениями, пытающимися использовать те же аппаратные средства или считать те же регистры одновременно и таким образом, BIOS предотвращает анархию - иначе отказывает между приложениями, конкурирующими за доступ к аппаратным средствам низкого уровня.

Другие две части 'BIOS' являются стандартными программами самотестирования при включении питания (POST) и 'программой установки CMOS' для компьютера.

Перемещения надвинулись для замены дизайна BIOS в течение некоторого времени - не в последнюю очередь, потому что его функциональность как слой аппаратной совместимости прибывает в цену производительности. Все больше компьютеров теперь создается с альтернативным способом сделать вещи, названные Расширяемым Микропрограммным Интерфейсом (EFI - теперь превращенный в Объединенный EFI или UEFI) - Apple использовала EFI в течение некоторого времени и тем самым имейте некоторый высокопроизводительный рабочий стол и машины сервера. Если Вы хотите знать больше, взглянуть на эту статью Wikipedia. и вот недавняя часть новостей.

11
ответ дан 07.12.2019, 15:32

Вы неправильно понимаете одну ОЧЕНЬ важную вещь. BIOS не является программным обеспечением, это - встроенное микропрограммное обеспечение. Это - часть, которая стандартизирует функциональность на уровне HW. Это - то, что загружает все другие "программы".

Основной проблемой с разрешением ОС непосредственно управлять аппаратными средствами являются улучшения. Например, было доказано, что традиционные x86 процессоры являются тупиком давным-давно. Современные "x86" процессоры не являются x86 внутренне. Вместо этого у них также есть встроенное микропрограммное обеспечение (в этом случае названный микрокодом) так, чтобы они, казалось, были x86 процессорами. Использование встроенного микропрограммного обеспечения является уровнем инкапсуляции. Также современные x86 процессоры должны поддерживать инструкции, которые были необходимы из-за причуд, существующих в 8 086 и 268 системах, даже если они не используются очень сегодня.

В основном сама ОС не затронута, как аппаратные средства работают. Это видит то, что BIOS показывает ему, который может или не может быть корректным на аппаратном уровне. Это создает разделение обязанностей среди людей, занятых производством компьютеров и дизайном, и позволяет, чтобы каждая организация интересовалась частями, самыми близкими к нему. Большинство программистов не знает, как процессор или материнская плата работают над низким уровнем, и они не должны знать, потому что они программируют к указанному интерфейсу. С другой стороны, разработчики чипсета действительно знают, как материнская плата работает, таким образом, они также программа BIOS к указанному интерфейсу. Производители самих материнских плат на самом деле не делают материнские платы с нуля. Они берут завершенные компоненты и интегрируют их в единую систему, и они изменяют BIOS материнской платы немного для работы с используемыми компонентами. Там также встроенное микропрограммное обеспечение присутствует, потому что BIOS общается со встроенным микропрограммным обеспечением микросхемы сети или со встроенным микропрограммным обеспечением аудио микросхемы и так далее.

Обновления BIOS, которые Вы видите часто, не являются обновлениями некоторой базовой функциональности. Вместо этого сегодня производители материнских плат должны запустить свои продукты максимально быстро, таким образом, они пытаются сделать свои модификации BIOS как можно быстрее, который часто приводит к ошибкам. Иногда обновления BIOS там для фиксации встроенного микропрограммного обеспечения некоторого другого устройства. Например, Intel делает доступным обновления для микрокода его процессоров. Если главная ошибка будет определена в процессоре, то Intel отправит те обновления производителей материнских плат, которые используют затронутые процессоры, которые сделают обновления BIOS, которые обновят микрокод процессоров (микрокод только для чтения, таким образом, это должно быть сделано при каждой начальной загрузке).

Что касается изменения частоты FSB и подобный, Вы всегда делаете это через BIOS. Просто, что некоторые BIOS выставляют компонентам программ, отвечают за FSB так, чтобы они могли быть изменены программой. Однако, те программы специализированы, потому что они должны знать с тем, с чем они работают.

Другая точка является производителями оборудования. Сами аппаратные средства должны знать, где искать программы. В простых системах микроконтроллера (они точно так же, как компьютеры от 30 лет назад в их возможностях) у Вас есть начальная точка программы. Микроконтроллер всегда читает единственный адрес памяти, где данные по тому, где программа запускается, хранятся. BIOS делает это для ПК. Вообразите, насколько сложный это было бы, если процессор получит доступ к данным непосредственно по жесткому диску. Это должно было бы знать, как все от себя до чипсета, контроллера жесткого диска и самого жесткого диска работает и где на жестком диске сохраненная операционная система.

После чтения Вашего вопроса несколько раз, я думаю, что основная проблема с Вашим видением BIOS и его места состоит в том, как тесно операционная система, соединенная с аппаратными средствами на современном ПК. Было решено, чтобы на ПК ОС не была этим тесно связанным с аппаратными средствами. Со временем то решение оказывалось, чтобы быть хорошим. Смотрите на coreboot (статья Wikipedia) проект. Они реализуют целый GNU/операционную систему Linux в микросхеме, содержащей BIOS компьютера. как Вы видите, у них есть много проблем, связанных с доступной информацией об определенных материнских платах, но у них есть свои преимущества. Их система может загрузиться только через несколько секунд. Другой интересный компьютер является Acorn. Их компьютеры имели целую информацию о местах ОС однокристальная схема. Также существует Apple. Их ОС не так связывается с аппаратными средствами, и возможно сделать hackintosh, но отношение до ближе, что это находится на ПК.

В конце я думаю, что главной причиной для существования BIOS сегодня является открытость платформы ПК. Очень легко сделать аппаратные средства для ПК, и одна из главных причин для этого - то, что нет единственной компании, которая управляет спецификацией ПК. Если бы BIOS (или его более новые замены) должен быть устранен, Вам был бы нужен кто-то, чтобы быть там, чтобы удостовериться, что разработчики ОС и аппаратные разработчики синхронизируются, и это было бы чрезвычайно сложно.

3
ответ дан 07.12.2019, 15:32

Давным-давно, компьютеры не имели ROM начальной загрузки. Каждый имел прямой интерфейс к изменению RAM, и мог остановить ЦП, RAM изменения, и затем перезапустить ЦП. Так, при перезапуске системы необходимо было удостовериться, что ЦП был остановлен, введите код начальной загрузки, который загрузил бы второй загрузчик этапа (2bl) прочь перфоленты или этажерки, и затем "не останавливать" ЦП.

ROM спасает положение здесь, очевидно. Когда Вы включаете x86 основанную на ЦП систему, она начинает выполнять в адресе FFFF:FFF0. Это - зашитая функция x86 ЦП. ROM должен находиться в том адресе, и действительно очень верхняя часть BIOS делает (обычно запускающийся в E000:0000).

Термин BIOS является пережитком от старой операционной системы CP/M. Структура CP/M была ROM BIOS в нижнем слое, BDOS (Операционная система Базового диска) в середине и CCP (Процессор консольных команд) перед пользователем. BIOS имел стандартные программы для выполнения функций низкого уровня, таких как чтение/запись определенного сектора диска, чтение ключа с клавиатуры, запись символа на экран, и т.д. BDOS будет использовать функции BIOS для реализации файловой системы, и CCP был бы командным процессором с помощью функций BDOS и BIOS. Идеей был BIOS, будет содержать аппаратные средства определенный интерфейс, и BDOS и CCP могли быть тем же в любой системе CP/M.

BIOS также содержал бы первоначальный код, выполненный процессором, которые инициализируют необходимые аппаратные средства, отображают экран-заставку, загружаются 2bl от первого сектора прочь первого дисковода и выполняют его.

MS-DOS 1.0, в значительной степени будучи x86 реализацией CP/M, с топорными подобными Unix функциями, прибавляемыми, начиная в версии 2.0, был структурирован тот же путь. BIOS IBM PC в то время также включал улучшения, такие как переключение режима видео, графические функции и поддержка жесткого диска в оригинале В BIOS.

Однако большинство DOS-программ не использовало функции BIOS, после того как они запустили; они непосредственно получили доступ к аппаратным средствам по причинам производительности. Это было особенно важно после того, как 32-разрядный ЦП стал распространенным; BIOS только работал от более старого 16-разрядного режима, так вызов его от 32-разрядного режима подвергся дальнейшей потере производительности.

Около 1990 архитектура ПК начинала расширяться и начинала включать новый материал как APM, PnP и PCI. Таким образом, BIOS начинал брать дополнительные функции и становиться более крупным. ПК также начинали использовать чипсеты вместо дискретных компонентов. Инициализация чипсета является чем-то, что, должно оказаться, получает RAM и другие компоненты, такие как применимая шина PCI, так, чтобы был обработан кодом начальной загрузки BIOS. По некоторым причинам многим поставщикам чипсета не нравится документировать, как их установка обрабатывает работу.

APM был обработан функциями BIOS; т.е. приводить в действие систему от операционной системы должно было вызвать функцию APM. ACPI, преемник APM, является большой вещью, которую BIOS делают сегодня. BIOS ACPI ответственен за создание набора таблиц в памяти, которая описывает много аппаратных компонентов не-Plug and Play. Загружающаяся операционная система использует это для определения сколько центральных процессоров, там, сколько слотов RAM система имеет, является ли система рабочим столом или ноутбуком, сколько батарей установлено, и т.д. BIOS ACPI также нужно назвать, чтобы выключить систему или поместить ее в сон, и т.д. Нет никакой причины, что код операционной системы не мог обработать вызовы ACPI, все же.

Большую часть времени обновления BIOS должны зафиксировать ошибки ACPI, так как ACPI является сложным и трудным, или представлять улучшенный микрокод. Весь современный ЦП позволяет обновления микрокода, и если новое обновление микрокода выпущено, BIOS должен затем быть обновлен для установки того нового микрокода. Для нормальной программы возможно обновить микрокод ЦП.

SMI также обрабатывается BIOS. Я вполне уверен, большинство тепловых и связанных с питанием аппаратных средств в ПК инициировало SMI, стандартные программы которого затем корректируют ВЕНТИЛЯТОР/СКОРОСТЬ ЦП и/или другие вещи. Другие вещи могут инициировать SMI; проверьте статью Wikipedia о Режиме Управления системой. Но нет также никакой причины, что этот код не мог быть заменен кодом операционной системы, если бы аппаратные интерфейсы были зарегистрированы.

Современные операционные системы не используют BIOS вообще для аппаратного доступа, за исключением событий питания. Некоторые загрузчики действительно используют символ BIOS ввод-вывод для отображения текста и диска загрузка ввода-вывода загрузочный код ОС.

Таким образом, я надеюсь, что это проливает некоторый свет на роль BIOS, и по большей части Вы абсолютно правы относительно того, как это работает.

2
ответ дан 07.12.2019, 15:32

Теги

Похожие вопросы