这是一直让我大吃一惊的事情之一。当我登录到 Windows 时,我怎么可能运行一个允许我升级我的 devive BIOS 或为我的硬盘安装固件等的应用程序。
我还没有找到任何令人满意的答案来说明这怎么可能。
这对我来说如此神奇的原因是:
固件驻留在操作系统无法直接访问的设备上(AFAIK 它必须通过驱动程序)其次,固件驻留在只读存储器部分,用户空间应用程序如何甚至可以访问类似的东西,而改变它。
拥有操作系统的目的之一是它会与用户空间不允许与之交谈的设备交谈。例如,即使打印到屏幕上,也是在与您的应用程序空间不拥有的设备通信。您的应用程序空间程序将调用操作系统说“请显示这些东西”,操作系统会为您完成。
在更新固件的情况下,您调用服务来为您执行更新。存储固件的设备通常是一种称为“闪存”的设备类型的芯片。这个芯片很难写入,但如果你知道如何并拥有适当的访问权限,它可以被擦除和重新编程。操作系统将调用一个为操作系统服务的驱动程序,并且知道它所支持的设备的具体细节。因此,您调用 OS 服务,并为其提供您从制造商处下载的新固件映像。映像通常经过加密签名,以便操作系统可以确定它确实来自制造商并且没有被修改,这意味着它可以安全地用作新固件。检查图像通过签名测试后,操作系统可以擦除闪存的一部分,并用新固件重新写入。此外,闪存中可能会有固件的备份副本,以防在此过程中出现问题。
例如,如果您在擦除之后关闭计算机,但在写入新固件之前,您将没有固件并且无法启动。这就是为什么在某些更新期间操作系统会温暖您不要关闭计算机,并确保您已连接到电源。有时,固件的备份副本可以降低这一步的风险。
我只是泛泛而谈。这是一个很大的话题。希望这有所帮助。