服务器Firmware

Firmware(固件)是写在服务器某些硬件的一段代码,通过固件,操作系统才能按照标准的设备驱动实现特定机器的运行动作。

原理:Firmware是一段代码,只有通过Firmware,操作系统才能使用硬件。Firmware一般存储在ROM、EPROM、EEPROM、FLASH中。后面的EEPROM、FLASH都是可擦除的,也就是以前的Firmware是不可擦除的,程序一旦烧进去,就无法更改。而当可擦除的ROM出现后,Firmware就出现了升级的功能。有点像以前玩的单片机。

升级:Firmware的升级就是将新的代码烧录到可擦除的ROM中,一般是在原始的Firmware更改的程序,目的是修复一些BUG,改善用户使用体验。

固件与驱动的不同之处:

驱动(Driver/Device):驱动是硬件厂商根据操作系统编写的配置文件,其中包含有关硬件设备的信息,这些信息能够使计算机与相应的设备进行通信。

固件是在硬件的基础上进行封装,使得硬件可以更加灵活的被使用。

驱动是在硬件和固件的基础上进行封装,使得硬件可以被各个系统使用。

也许有人和我一样刚接触的时候有些困惑,为什么不把固件和驱动集成为一体呢?

当然,驱动和固件可以集成一体,但是,假如驱动与固件集成为一体。那么一个硬件需要针对上百种不同的操作系统去开发定制的代码(驱动与固件的集成)。这样耗费的精力是非常大的,而且做了一些完全没有必要的重复性工作。

下面一段摘自驱动和固件有啥不同

        不同的操作系统, 对于操作硬件的方式完全不同,在Windows里应用态是无法直接写IO端口的,而在嵌入式系统里,一般都不限制直接操作IO端口。所以,硬件厂商一方面为了自己的硬件能被软件更简单的使用,就需要写firmware,而另一方面为了兼容各种操作系统,又不能把firmware写的太死,必须预留足够的余地让软件自由发挥——软件的自由发挥就是驱动。

        不同操作系统的驱动是不能兼容的,原因就是驱动是为操作系统服务的,有的操作系统是单线程的,有些操作系统不允许动态申请内存,所以不同的操作系统要操作硬件,就要根据自身的特性编写对应的操作代码,这就是驱动存在的意义——适应系统需要。
         假如世界上只有一种操作系统,并且版本永远不会改变,那么firmware和驱动就可以融合在一起,但这只能一个不现实的梦想,要知道民用操作系统和工业控制操作系统差别是十分巨大的。 

发布了124 篇原创文章 · 获赞 19 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/lm236236/article/details/102234846