问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

关于固件的简单解释

创作时间:
作者:
@小白创作中心

关于固件的简单解释

引用
CSDN
1.
https://m.blog.csdn.net/s_sos0/article/details/136748814

固件(Firmware)是嵌入式系统中的一部分,通常存储在设备的非易失性存储器中,如闪存或ROM(只读存储器)。它是一种被嵌入到硬件设备中的软件,用于控制设备的基本功能和操作。

固件是什么

固件(Firmware)是一种软件类型,它是嵌入式系统中的一部分,通常存储在设备的非易失性存储器中,如闪存或ROM(只读存储器)。与操作系统不同,固件是一种被嵌入到硬件设备中的软件,用于控制设备的基本功能和操作。它通常用于控制硬件设备的低级别操作,例如启动过程、初始化设备、控制硬件功能和与其他设备通信等。

固件通常被写入到设备中并在设备制造时设置,但有时也可以通过更新方式来更新。固件更新可以修复错误、改进性能、增加功能或提供安全补丁。

在许多电子设备中,例如路由器、智能手机、平板电脑、数字相机和家用电器等,都包含固件。

固件运行顺序

在大多数情况下,固件会在设备上电时首先运行。固件负责初始化设备的基本硬件和设置,并在必要时启动操作系统或其他软件系统。一旦固件完成了其初始化任务,它通常会引导加载操作系统或其他软件。操作系统和其他软件系统在加载后,负责管理设备的高级功能和用户交互。

所以,简而言之,一般来说,固件先于软件系统运行。

具体例子

当你打开计算机时,固件会首先运行。在大多数个人计算机中,固件是称为BIOS(基本输入/输出系统)或UEFI(统一可扩展固件接口)的软件。这个固件会执行一系列自检(POST,电源自检),然后初始化系统硬件,例如内存、硬盘驱动器、键盘和显示器。

一旦固件完成了初始化,它会检查引导设备,通常是硬盘或固态驱动器,以寻找引导加载程序(Bootloader)。引导加载程序负责加载操作系统,例如Windows、macOS或Linux。

所以,在这个例子中,固件(BIOS或UEFI)是首先运行的软件,它负责引导加载程序的加载,然后由引导加载程序加载操作系统。

常见固件类型

在日常使用电脑的过程中,你可能会涉及到以下几个固件:

  1. BIOS/UEFI:作为计算机的基本固件,负责启动计算机、初始化硬件,并加载操作系统。
  2. 硬盘固件:硬盘驱动器中内置的固件,用于控制磁盘的操作,例如寻道、错误检测和纠正、读写数据等。
  3. 图形卡固件:图形处理器(GPU)中内置的固件,用于控制图形渲染、显示输出和视频解码等。
  4. 网络适配器固件:网卡或无线网络适配器中的固件,负责管理网络连接、处理数据包和实现协议等。
  5. 固态硬盘固件:固态硬盘(SSD)中的固件,用于管理闪存存储、垃圾回收、坏块管理和性能优化等。
  6. 主板芯片组固件:主板上的芯片组(Chipset)中的固件,负责管理与主板相关的功能,如USB控制器、SATA控制器、PCIe控制器等。

这些固件在日常使用中通常是无需用户干预的,但它们确保了计算机的正常运行和各种硬件设备的有效操作。

固件的工作原理

固件(firmware)一般存储于设备中的电可擦除只读存储器EEPROM(Electrically Erasable Programmable ROM)或FLASH芯片中,一般可由用户通过特定的刷新程序进行升级的程序。一般来说,担任着一个数码产品最基础、最底层工作的软件才可以称之为固件,比如计算机主板上的基本输入/输出系统BIOS(Basic Input/output System),在以前其实更多的专业人士叫它固件。

通常这些硬件内所保存的程序是无法被用户直接读出或修改的。在以前,一般情况下是没有必要对固件进行升级操作的,即使在固件内发现了严重的Bug也必须由专业人员带着写好程序的芯片把原来机器上的更换下来。早期固件芯片一般采用了ROM设计,它的Firmware代码是在生产过程中固化的,用任何手段都无法修改。随着技术的不断发展,修改固件以适应不断更新的硬件环境成了用户们的迫切要求,所以,可重复写入的可编程可擦除只读存储器EPROM(Erasable Programmable ROM),EEPROM和flash出现了。这些芯片是可以重复刷写的,让固件得以修改和升级。

固件的应用

其实任何数码设备都有固件,只是我们有时忽略它的存在而已。

先举一些例子:手机、数码相机、mp3、mp4、路由器、电子书、交换机、猫、PSP、PS3、NDS、XBOX、U盘、主板、打印机的BIOS(BIOS就是一种固件)、显卡的BIOS。

鼠标、显示器、光驱、硬盘、键盘、数码卫星接收器、GPS终端、精密的电子仪器(比如核磁共振仪)等等。

固件既然是软件,就有大小之分。大的可有几百兆,小的也许只有几K,甚至不足1K。

对于独立可操作的电子产品,固件一般指它的操作系统(“担任着一个数码产品最基础、最底层工作的软件才可以称之为固件”,这和操作系统的定义很一致)。比如PSP的固件,就是指PSP 的操作系统。同理,IPHONE的固件也是其操作系统,路由器的固件就是路由器的操作系统,MP4的固件就是MP4的操作系统等。

而对于非独立的电子产品,比如硬盘、鼠标、BIOS、光驱、U盘等设备,固件就是指其最底层的,让设备得以运行的程序代码。

固件升级注意事项

由于固件对于这些底层的联动非常重要,所以它有时候也需要升级才能提供特定的功能或者修复bug。

主板的BIOS升级是一个绝佳的例子。比如,升级才能让主板支持同款插槽的新的CPU,不过由于大部分电子设备没了固件就无法运行,通常不建议对它进行改动,除非是出现了特定的问题,而你知道升级能够修复。毕竟,如果出现了停电之类的意外,导致没能成功升级,设备可能会永远“变成砖头”

这和操作系统损坏不同,并不能直接抹掉然后重装。固件损坏通常修不好,因为系统并不能理解你现在想重装固件的请求,要有正常的固件才能做到。虽然有些新电脑有尝试避免这类问题,加了第二份BIOS固件用作后备,但很多设备没有这类功能。所以,升级固件的时候一定要小心,要确保笔记本电池有电,给台式机或电视机接上UPS,也要确认固件来自于可靠的渠道。比如厂商官网。

还有些固件是完全不能升级的,要么是因为存在ROM(Read Only Memory)里,也就是只读芯片,这在硬件上就是没办法升级的,也有可能是因为有软件锁。

有些设备是不需要固件升级的,比如简单的U盘。而也有些设备使用固件存储独家功能,加大竞争对手给它“搞清楚”难度。然而,软件上的固件限制通常很容易绕过,要么是安装自制固件,这种做法有时候可以启用额外的功能,要么是有坏人将固件用作攻击的方式。固件通常没有加密什么的,而且开发者大都专注于提高操作系统和应用程序的安全性,而不是固件,这也使得固件成了黑客和间谍的目标。

这主要是因为被黑的固件在格式化硬盘之后,即使会留存下来,也很难检测,而且由于固件直接控制硬件,固件被黑甚至会导致硬件损坏。几年前甚至有研究人员做了哥概念验证,黑进苹果MacBook电池的固件,让电池过充,永久损坏。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号