什么是 BIOS 以及为什么我们需要它?

什么是 BIOS 以及为什么我们需要它?

我尝试在 Wikipedia 和其他网站上阅读有关 BIOS 的内容,但我不太明白。有人能告诉我什么是 BIOS 以及我们为什么需要它吗?此外,BIOS 存在于每个电子设备中还是仅存在于计算机和智能手机中?

答案1

PC 由称为操作系统 (OS) 的复杂程序运行。它们托管在 RAM 内存中,易挥发的IE,关闭电源后其内容将丢失。

那么问题来了:当打开电脑电源时,由于RAM是空的,电脑如何启动呢?

BIOS 使这一切成为可能。它是一个非常小的程序,托管在非易失性的只读存储器 (=ROM) 上,IE,它不会在您关闭电源时消失。它会通过特殊电路自动从 ROM 加载到 PC 上,以便 PC 可以开始其启动过程。

由于 ROM 内存量很小,所以它是一个小程序,可以做有限的事情,基本上只有三件:

  1. 它进行自我检测;
  2. 它检查外围设备(磁盘,视频,键盘等)是否正常工作,并初始化它们;
  3. 确定更高级的初始化阶段可能驻留的位置列表(您的硬盘、CD-ROM 磁盘、USB 棒、网络),并尝试将控制权传递给这个新阶段。如果成功,启动过程将继续,否则它会停止并显示一些难以理解的错误消息。

我对第二阶段的理解不太清楚:基本上,新阶段位于硬盘、CD-ROM 或 USB 驱动器的一个特殊位置,称为主引导记录 (MBR)。这是一个微小的例如,磁盘的 446 字节部分,它告诉 PC 如何将磁盘划分为片(技术术语为分区),以及启动过程的下一个阶段可以在这些片中找到。最后一个阶段是最终阶段,它将负责将真正的操作系统(Windows、Mac Os、Linux、Unix 等)加载到 PC 的 RAM 中。从那时起,一切照常。

答案2

好问题。

1978 年,当我找到第一份编程工作时,我们家有一台房间大小的微型计算机。HP2100。当它崩溃时,我们需要小心地设置前面板上的 16 个开关,然后切换开关以加载该记忆词,并重复此操作约 20 次。如果你犯了哪怕是最小的错误,你都必须重新开始。

需要手工编写的程序是一个非常简单的程序,叫做引导加载程序。一旦加载完成,我们点击运行开关来执行此代码,程序就会启动纸带阅读器并将长纸带上的打孔读入内存。

这张纸带上还有另一个更复杂的程序,它很简单BIOS,即基本输入/输出系统。该程序知道如何访问硬盘,例如,它知道如何来回移动读写头,以及如何获取包含另一个程序(更大的程序,即操作系统)的数据扇区。如果出现问题,它有一个非常简单的命令行工具来查询内存中的内容并手动编辑它。

所以这是一个三步过程,这些年来都没有改变。

现在回顾早期的个人计算机,微型计算机上的 BIOS 与今天略有不同。

当您在命令行中输入命令时,例如输入 dir 来列出磁盘上的文件,操作系统会根据文件系统计算查找位置,然后要求 BIOS 实际执行使硬件移动并旋转磁盘以获取特定数据块的工作。同样,BIOS 为用于在屏幕上显示信息和获取击键以及将数据发送到打印机等的串行端口提供低级接口。因此,DOS(磁盘操作系统)将处理命令行,但一旦确定需要将字符发送到屏幕,该工作就交给知道如何操作串行 i/o 电路的 BIOS。

因此 BIOS 是一个抽象层,它使得运行每千次展示费用微软Dos在不同的硬件上,例如不同大小和类型的硬盘和软盘。

如今 BIOS 类似,但一旦加载操作系统,大多数操作系统就会用更紧密集成到操作系统中的驱动程序替换 BIOS 硬件驱动程序。这样做是为了获得更好的性能,即更快地完成相同的任务。

IBM发布了 IBM PC 的 BIOS 源代码,以便工程师们可以研究和修改它。一个冬天,我还拆开了 MSDos,即整个操作系统,这在今天是不允许的,以了解它是如何工作的。我花了几个月的时间,用了一些聪明的基本程序来拆开它,还绞尽脑汁试图理解代码在做什么,但最终它让我对操作系统到底是做什么的以及它是如何工作的有了坚实的理解。这不是魔术。它只是一堆精心编写的函数,用于接收高级命令并将其转换为硬件操作。BIOS 也不例外。它有很多你可以要求它做的事情,以及可以为各种硬件配置它的方式。

我认为了解一下这些东西的起源可能会帮助你更好地理解这种现代魔法。如今,这种代码是专有的,因此大多数工程师都不知道它是如何工作的。

答案3

所以,简而言之。

BIOS 是基本输入/输出系统的缩写,它是可编程设备中最基本的程序,例如计算机(个人电脑、笔记本电脑、大型机和其他计算机,还有手机和其他电子玩具,如平板电脑)中的主板以及所有其他类型的硬件,如 DVD、BD 等。

BIOS 直接存储在设备中并控制其行为。主板 BIOS 具有简单的接口来配置主板。

相关内容