固件(Firmware)就是写入EROM或EPROM(可编程只读存储器)中的程序,通俗的理解就是“固化的软件”,台港澳称为“韧体”。更简单的说,固件就是BIOS的软件,但又与普通软件完全不同,它是固化在集成电路内部的程序代码,负责控制和协调集成电路的功能。
目前(2010年)固件(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及兼容性问题。而随着信息时代的来临,厂商的设计很难全面的满足客户需求,更多的厂商把升级固件提供更多更新的功能做为附加值来提供给用户。因此,我们可以对固件升级做以下总结:
1.在产品发布之后,厂家对Firmware作了进一步的优化和创新,使之能以更佳的状态工作。进行固件升级后,可以带来性能上的提升。
2.产品在生产出来之后,随着周围所使用的软、硬件环境的改变及更新,产品对于许多新的硬、软件将有可能出现不兼容现象。厂家通过更新Firmware文件,使硬件能兼容更多、更新的软、硬件,不断增强产品的兼容性。
3.在原有的硬件基础上,厂家开发出了新的功能,对于原有的产品,只须更新Firmware就可以增加新的功能。
4.对于任何已生产的软、硬件,都有可能存在一些缺陷,所以,厂家可以通过更新Firmware来修正以前版本中存在的错误、漏洞或不足。