35

Программное обеспечение BIOS встроено в ПК и является первым кодом, запускаемым ПК при включении питания («загрузочная прошивка»). Когда компьютер запускается, первое задание для BIOS - это самопроверка при включении питания, которая инициализирует и идентифицирует системные устройства, такие как ЦП, ОЗУ, видеокарта, клавиатура и мышь, жесткий диск, привод оптических дисков и другое оборудование. Затем BIOS находит программное обеспечение загрузчика, хранящееся на периферийном устройстве (обозначаемом как «загрузочное устройство»), например на жестком диске или CD/DVD, и загружает и выполняет это программное обеспечение, предоставляя ему контроль над ПК. [2] Этот процесс называется загрузкой или загрузкой, что означает сокращение для начальной загрузки.

Какие реквизиты определяют, что на компьютерной системе должен быть установлен BIOS?

Почему операционная система на самом деле не может работать в BIOS?

9 ответов9

41

BIOS - это аппаратно-зависимый фрагмент кода, который хранится на самой материнской плате. Каждая отдельная материнская плата нуждается в собственном BIOS, написанном для нее, поэтому было бы невозможно иметь универсальный BIOS/OS «все в одном» (хотя BIOS технически представляет собой просто хранимый код, поэтому теоретически можно написать операционную систему для одной конкретной материнской платы). , Как вы упомянули, цель BIOS состоит в следующем:

Когда компьютер запускается, первое задание для BIOS - это самопроверка при включении питания, которая инициализирует и идентифицирует системные устройства, такие как ЦП, ОЗУ, видеокарта, клавиатура и мышь, жесткий диск, привод оптических дисков и другое оборудование.

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

Например, если у меня две разные материнские платы с двумя разными контроллерами SATA, BIOS позволяет мне написать фрагмент кода, который может работать с обоими, без моего знания того, как материнская плата на самом деле отправляет команды на устройство SATA. Я просто должен сказать компьютеру "прочитать сектор X с этого устройства SATA", и BIOS отвечает за фактическую отправку этих команд аппаратному обеспечению.

Источником информации о "секторе чтения X" является хранимая программа, содержащаяся в BIOS, которая обычно указывает компьютеру начать чтение с загрузчика, хранящегося в общем месте. Эти общие местоположения согласованы различными разработчиками программного и аппаратного обеспечения и обычно предоставляются общественности для обеспечения большей совместимости между системами.

Как только базовый уровень взаимодействия (опять же, логический интерфейс через программное обеспечение) установлен, операционная система сама создает общий интерфейс с различными аппаратными устройствами (обычно с помощью "драйверов устройств"), и операционная система может управлять оборудованием.


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

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

7

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

Ваша ОС не может этого сделать, потому что она находится на жестком диске, а не в вашем ПЗУ.

Следовательно, вам нужен BIOS или аналогичная (но другая) технология, такая как EFI ...

Возможно поместить часть ОС в ПЗУ (ответственную за загрузку загрузчика ОС) производителем; однако, это не является широко применимым, и в любом случае есть BIOS или EFI.

6

Нет реальной логической причины. Это больше вопрос наследия и истории.

  1. Нет необходимости, чтобы на компьютере был установлен BIOS. Это наследие от IBM PC. Хотя это оказалось хорошей идеей

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

5

Что-то требуется для запуска операционной системы. Если операционная система может уместиться в некоторой энергонезависимой памяти, то она может быть запущена напрямую, но с полнофункциональными операционными системами, такими как Windows, OSX или Linux, это невозможно.

Необходима небольшая облегченная "ОС", которая может быть загружена при включении питания, которая выполняет основные функции, такие как доступ к памяти и диску, а затем загружает операционную систему. Хотя это может быть частью самой ОС, а не отдельной сущностью, существуют другие причины, по которым вам может потребоваться запустить другой процесс первым:

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

Процесс известен как начальная загрузка.

4

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

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

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 и ОС частично делают одно и то же. Разделение в BIOS и ОС исключительно для гибкости.

BIOS обычно создается производителем оборудования. Аппаратное обеспечение должно обеспечивать наличие основной функциональности, например, возможность считывания с жесткого диска и отображения основного дисплея для диагностики и ошибок. Таким образом, название «Базовая система ввода-вывода».

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

Как только операционная система (или, по крайней мере, ее загрузчик) найдена и запущена BIOS, сама BIOS становится в значительной степени устаревшей. Современные ОС практически не используют BIOS после загрузки.

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

Другая проблема - размер и стоимость памяти. Полнофункциональные операционные системы велики, и попытка вставить многогигабайтную операционную систему в ПЗУ стоит дорого, кроме последующих проблем с ее исправлением и обновлением.

Так что нет, технических причин нет, но много практических, особенно для гибкой платформы ПК.

3

Чтобы запустить программу на современном ПК, у вас уже должна быть запущенная программа, которая знает, как управлять оборудованием и загружать программы в память. Эта проблема курицы и яйца решается путем внедрения основной программы в само оборудование.

Эта базовая система ввода / вывода (BIOS) очень мала и очень ограничена по объему, но обеспечивает достаточную основу для загрузки и запуска загрузчиков второго уровня, таких как GRUB или NTLDR . Эти загрузчики второго уровня являются более сложными, чем программа BIOS, что позволяет им обеспечить более надежную основу для загрузки операционной системы и получения контроля над ней.

1

Если у ЦП была возможность обращаться к жесткому диску напрямую, не полагаясь на BIOS, EFI или другой код в ПЗУ (или на NVRAM, или что там у вас), то теоретически такой ЦП мог бы загрузить ОС с диска в ОЗУ и начать выполняя это.

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

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

-1

Это не нужно!

То, что часто называют BIOS, представляет собой набор из 3 вещей.

  • Загрузчик
  • Инструмент настройки: теперь в основном устарел, кроме порядка загрузки и часов. Большинство остальных должно быть автоматическим или установленным производителем.
  • BIOS: библиотека процедур ввода-вывода, помогающая операционной системе взаимодействовать с оборудованием. К сожалению, биос 16-битный, устарел и не может использоваться современными операционными системами, поэтому в значительной степени игнорируется.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .