BIOS в современных ПК инициализирует и тестирует аппаратные компоненты системы ( самотестирование при включении ) и загружает загрузчик с запоминающего устройства, который затем инициализирует операционную систему. В эпоху DOS BIOS предоставлял вызовы прерываний BIOS для клавиатуры, дисплея, памяти и других устройств ввода-вывода (I/O), которые стандартизировали интерфейс для прикладных программ и операционной системы. Более поздние операционные системы не используют вызовы прерывания BIOS после запуска.
Большинство реализаций BIOS специально разработаны для работы с конкретной моделью компьютера или материнской платы путем взаимодействия с различными устройствами, особенно с системным чипсетом. Первоначально прошивка BIOS хранилась в микросхеме ПЗУ на материнской плате ПК. В более поздних компьютерных системах содержимое BIOS хранится во флэш-памяти, поэтому его можно перезаписать, не снимая микросхему с материнской платы. Это позволяет конечным пользователям легко обновлять прошивку BIOS, чтобы можно было добавлять новые функции или исправлять ошибки, но также создает возможность заражения компьютера BIOS руткитами. Кроме того, неудачное обновление BIOS может привести к поломке материнской платы.
Название «BIOS» придумали инженеры IBM, когда изучали прошивку как своего рода ранний вариант уровня аппаратной абстракции, и включили в неё помимо программ проверки аппаратуры, инициализации шин и загрузчика ОС также набор низкоуровневых драйверов для устройств материнской платы (таких как контроллер клавиатуры и НГМД), а также некоторых подключаемых устройств, вроде графических адаптеров MDPA и CGA. Считалось, что разработчики периферийных устройств и карт расширения также будут включать драйвера своих устройств в поставляемые с ними ПЗУ, чтобы программистам не требовалась работа непосредственно «с железом». Однако эта идея оказалась лишь частично успешной: BIOS драйвера имели весьма ограниченную функциональность, были довольно медленными в работе и имели неудобный интерфейс, поэтому большинство программистов игнорировало их и обращалось непосредственно к аппаратуре. Достаточно распространёнными оказались лишь драйвера жёстких дисков и сетевых адаптеров, реализующие стандартные протоколы обмена ATA/SCSI и т.п.