从https://en.wikipedia.org/wiki/BIOS:
BIOS 软件存储在非易失性 ROM主板上的芯片。...在现代计算机系统中,BIOS 内容存储在闪存芯片以便内容可以重写无需从主板上移除芯片。这样可以轻松升级 BIOS 软件以添加新功能或修复错误,但会使计算机容易受到 BIOS rootkit 的攻击。
由于 ROM 意味着r读only米emory,为什么BIOS内容可以被改写?
“闪存芯片”和“非易失性 ROM”是同一个东西吗?两者都是指存储 BIOS 的地方?
答案1
补充一下 Varaquilex 的回答,BIOS 软件存储在电可擦除可编程 ROM (EEPROM) 中,这使得固件更新能够以电子方式进行。非常古老的 BIOS 芯片实际上是 UV-EPROM 芯片,需要用紫外线照射擦除后才能重新编程。
编辑:正如评论中指出的那样,甚至在此之前,有时也会使用一次性可编程 ROM (PROM) 芯片,这种芯片一旦配置就根本无法重新编程,需要完全更换才能升级(尽管很少需要这样做)。
答案2
ROM 是只读的,那么为什么 BIOS 内容可以被重写?
BIOS 程序本身存储在 EEPROM(可以是 [E] 电 [E] 可擦除和 [P] 可编程)或闪存中。因此,这里的只读是指芯片是非易失性的。与易失性 RAM 不同,当电源切断时,内存的内容会保留下来。ROM 是 EEP,有助于重写或更新 BIOS。当时,对于此类操作,您必须从主板上卸下 BIOS 芯片,换上新的(如果不是 PROM 或 EPROM),或者如果是 EPROM,您必须将其送到制造商那里,让他们重新编程芯片并将其重新连接到主板上。在目前的进步之后,由于有了 EEPROM,您不必移除芯片即可执行此类操作,只需让计算机完成工作即可电气。
“闪存芯片”和“非易失性 ROM”的意思一样吗?都是存储 BIOS 的地方?
从维基百科:
闪存是一种电子非易失性计算机存储介质,可以电擦除和重新编程。
闪存是从 EEPROM(电可擦除可编程只读存储器)发展而来的。闪存主要有两种类型,分别以 NAND 和 NOR 逻辑门命名。单个闪存单元的内部特性与相应门的特性相似。EPROM 必须完全擦除才能重写,而 NAND 型闪存可以以块(或页)为单位进行写入和读取,这些块(或页)通常比整个设备小得多。NOR 型闪存允许将单个机器字(字节)写入已擦除位置或独立读取。
EEPROM 和闪存并不是指同一种东西:它们是两种相似的内存类型,因为一种是从另一种发展而来的,并且包含不同类型/配置的 MOS 晶体管。然而,它们是 BIOS 程序所在的内存。
为了解决另一个误解,我想提一下 CMOS-BIOS 关系:
这BIOS 设置存储在 CMOS 芯片中(通过主板上的电池供电)。这就是为什么当您取出电池并重新安装时 BIOS 会重置。相同的程序运行,但设置是默认的。请参阅这个答案详细查看启动过程中使用的内存。
编辑
为了扩展 CMOS-BIOS 主题,感谢@Andon M. Coleman,我想在答案中添加他的评论:
值得一提的是,BIOS 设置不必存储在易失性 CMOS 内存中。许多嵌入式系统将其设置存储在 NVRAM 中。多年来,PC 一直使用易失性 CMOS 的唯一原因是它们已经配备了电池,可以在断电时保持内部实时时钟滴答作响(回想一下,当您按下 PC-AT 上的电源开关时,它会切断主板的所有电源)。这意味着可以使用更便宜的易失性存储器来存储系统设置。所以它主要用于历史目的。
答案3
作为其他答案的补充,我喜欢一种更直观的方法:
这个 BIOS 芯片似乎没有特别好地安装在插槽中。
BIOS(包括新奇的 UEFI BIOS)是存储在主板芯片上的软件。zelanix 和 Varaquilex 已经介绍了技术细节。
芯片通常(但并非总是)可拆卸,以便于维修。一些主板包含多个 BIOS,主要是作为销售噱头,但在某些情况下,第二个 BIOS 有助于从某些(通常是用户造成的)问题中恢复:
答案4
看看 2005 年 1 月的维基百科文章:
在 1990 年左右之前,BIOS 保存在无法更改的 ROM 芯片上。随着 BIOS 的复杂性和更新需求的增加,BIOS 固件存储在 EEPROM 或闪存设备上,用户可以对其进行升级。但是,不正确执行或中止 BIOS 更新可能会导致计算机或设备无法使用。为了避免 BIOS 损坏,一些新主板有备用 BIOS。此外,大多数 BIOS 都有一个“引导块”,它是 ROM 的一部分,首先运行并且不可更新。此代码将在跳转到 BIOS 的其余部分之前验证 BIOS 的其余部分是否完整(通过校验和、哈希等)。
当然,如今我们有一篇维基百科文章,它让人感到困惑,一会儿说该芯片是“非易失性 ROM”,一会儿又说可以写入。这里要吸取的教训是,维基百科通常写得不太好,而且文章会不断变化,但并不总是变得更好。
我建议读书。斯科特·穆勒的升级和维修电脑,选择其中的一本书,有一整章关于 BIOS 的内容,讨论了各种各样的事情,从 BIOS 芯片的位置到此类芯片的各种类型(列出四种:ROM、PROM、EPROM 和 EEPROM)。
一些引言:
不管你的系统使用哪种类型的 ROM,存储在 ROM 芯片中的数据都是[原文如此]非易失性,除非故意擦除或覆盖(在可能的情况下),否则将无限期保留。—升级和维修电脑,第 373 页
自 1996 年以来制造的几乎所有 PC 都包含一个闪存 ROM 来存储 BIOS。闪存 ROM 是一种 EEPROM 芯片,您可以在系统中直接擦除和重新编程,而无需特殊设备。—升级和维修电脑,第 387 页
书籍并不完美。例如,人们可以对 Mueller 的“初看即懂”的闪存定义的细节提出异议。但好的书籍通常都经过校对,并且比维基百科的大部分内容有更连贯的解释,至少不会句句自相矛盾。
假设有一台现代 PC,并且不陷入二十年前 PC 的工作方式中:
您的机器的固件保存在主板上的非易失性内存芯片上。它实际上保存了相当多的内容。(Pm49FL004T 在我的答案在这里占有半个 MiB,并且如在我的答案在这里有些芯片组能够支持 16MiB 的固件。)它涉及的不仅仅是系统引导程序,即使是受保护模式的操作系统也是如此。其内容是可修改的,但不像主系统 RAM 的(易失性)内容那样容易。在 EFI 系统上,芯片不仅保存固件代码和(只读)数据,还保存非易失性 EFI 变量的值。