计算机科学导论(10)什么是BIOS

文章目录

BIOS(Basic Input/Output System,基本输入/输出系统)固化在计算机内主板上一个 ROM 芯片上的程序,是计算机启动时运行的底层固件程序(和硬件相关的程序习惯称为固件),是连接硬件与操作系统的桥梁,主要负责初始化硬件、加载操作系统及提供硬件控制功能。以下是关于BIOS的详细介绍:

一、BIOS的核心功能

  1. 硬件初始化与自检(POST)

    • 计算机开机时,BIOS首先执行加电自检(Power-On Self Test,POST),检测CPU、内存、硬盘、显卡等硬件是否正常工作。
    • 初始化硬件设备的基本参数,如设置内存地址映射、配置I/O端口等。
  2. 引导加载

    • 自检通过后,BIOS根据预设的启动顺序(如硬盘、U盘、光驱等)查找并加载操作系统的引导程序(如Windows的bootmgr、Linux的GRUB)。
  3. 硬件抽象与接口提供

    • 为操作系统和应用程序提供底层硬件的抽象接口(如键盘输入、屏幕显示、磁盘读写等),简化上层软件对硬件的直接操作。
  4. CMOS设置(BIOS设置程序)

    • 允许用户通过特定按键(如Del、F2等)进入BIOS设置界面,修改硬件配置(如启动顺序、时钟、超频参数等),这些设置存储在主板的CMOS芯片中。

二、BIOS的历史与技术局限

  1. 历史背景

    • 诞生于20世纪70年代末的IBM PC,最初功能简单,仅支持基本I/O操作。
    • 20世纪90年代后,随着硬件发展,出现了Award BIOS、AMI BIOS等厂商定制版本,功能逐渐丰富(如支持大容量硬盘、USB设备等)。
  2. 主要局限

    • 容量与地址限制:基于16位实模式运行,最大支持1MB内存寻址,无法直接管理超过2TB的硬盘(需借助LBA模式)。
    • 启动速度慢:引导过程按固定顺序串行执行,且需加载大量硬件驱动,耗时较长。
    • 安全性不足:缺乏对引导过程的加密验证,易受恶意软件攻击(如引导区病毒)。
    • 用户界面简陋:多为文本菜单式界面,不支持鼠标操作和图形化显示。

三、BIOS与UEFI的对比

维度 BIOS UEFI
架构 16位实模式,基于x86汇编语言 32/64位保护模式,支持高级编程语言
启动速度 串行启动,速度较慢 并行加载驱动,启动速度更快
硬盘支持 最大支持2TB硬盘(需LBA) 原生支持GPT分区,突破2TB容量限制
安全性 无安全启动(Secure Boot)机制 支持Secure Boot,防止恶意引导程序
用户界面 文本菜单,仅支持键盘操作 图形化界面,支持鼠标和触摸操作
扩展性 驱动程序固化在BIOS中,难以更新 支持模块化驱动,可动态加载更新

四、现代BIOS的现状

  • 随着UEFI(统一可扩展固件接口)的普及,传统BIOS已逐渐被取代,但在以下场景中仍有应用:
    • 老旧计算机(如2010年前的设备)或嵌入式系统。
    • 部分服务器或工业设备为兼容legacy模式保留BIOS支持。
  • 现代主板通常同时支持"Legacy BIOS"和"UEFI"两种引导模式,用户可在BIOS设置中切换。

总结

BIOS是计算机启动的"基石",在硬件与系统间扮演着桥梁角色,但受限于技术架构,逐渐被更先进的UEFI替代。理解BIOS的原理,有助于排查计算机启动故障、优化硬件配置,以及理解现代固件技术的演进逻辑。

相关推荐
Warren981 天前
Python自动化测试全栈面试
服务器·网络·数据库·mysql·ubuntu·面试·职场和发展
HIT_Weston1 天前
39、【Ubuntu】【远程开发】拉出内网 Web 服务:构建静态网页(二)
linux·前端·ubuntu
大牙Adela2 天前
在Mac上通过Multipass虚拟机中的Ubuntu系统使用Graphviz工具
c语言·qt·ubuntu·macos·multipass·graphviz
码上上班2 天前
ubuntu 安装ragflow
linux·运维·ubuntu
HIT_Weston2 天前
38、【Ubuntu】【远程开发】拉出内网 Web 服务:构建静态网页(一)
linux·前端·ubuntu
路人甲ing..2 天前
用 Android Studio 自带的模拟 Android Emulator 调试
android·java·ide·ubuntu·kotlin·android studio
q***71852 天前
Java进阶-在Ubuntu上部署SpringBoot应用
java·spring boot·ubuntu
JobDocLS2 天前
Ubuntu 22.04上安装搜狗输入法
linux·运维·ubuntu
序属秋秋秋2 天前
《Linux系统编程之进程基础》【进程切换 + 进程调度】
linux·运维·服务器·c语言·c++·ubuntu·系统编程
艾莉丝努力练剑2 天前
【Linux基础开发工具 (四)】Linux编程基础:深入理解gcc / g++编译与链接原理
linux·运维·服务器·c++·人工智能·ubuntu·centos