了解固件(firmware)和驱动(driver)

固件(Firmware) 就是写入EROM(可擦写只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序
固件是指设备内部保存的设备“驱动程序”,通过固件,操作系统才能按照标准的设备驱动实现特定机器的运行动作,比如光驱、刻录机等都有内部固件。
固件是担任着一个系统最基础最底层工作的软件。而在硬件设备中,固件就是硬件设备的灵魂,因为一些硬件设备除了固件以外没有其它软件组成,因此固件也就决定着硬件设备的功能及性能。
固件是为控制硬件设备而设计的。在计算机中,我们称之为BIOS(基本输入/输出系统)或UEFI(统一可扩展固件接口)。BIOS是计算机上电后第一个启动的。它可以与硬件交互,并检查它是否有任何错误。BIOS调用另一个名为bootloader的程序,它负责唤醒沉睡在硬盘驱动器内的操作系统,并将其放入随机存取存储器中。

驱动(Drive):驱动程序即添加到操作系统中的一小块代码,其中包含有关硬件设备的信息。也称为设备驱动程序或软件驱动程序,是实现高级计算机程序与硬件设备交互的软件。驱动程序是硬件厂商根据操作系统编写的配置文件,设备驱动程序是与操作系统和硬件相关的。驱动程序告诉操作系统如何与设备通信,当计算机程序请求与某个硬件设备交互时,驱动程序将处理该设备和调用该驱动程序的计算机程序之间的指令和输出转换。设备驱动程序充当硬件设备与使用它的程序或操作系统之间的转换器。

每个驱动程序都是为特定或一组设备工作的。在您的计算机上,驱动程序使用各种总线接口来与设备联系。例如,PCI Express。它用于连接硬件组件,如GPU、无线适配器和音频卡。而且,并非每个驱动程序都被设计为与用户交互。许多人在匿名的情况下继续他们的工作,用户完全不知道他们。

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

不同操作系统的驱动是不能兼容的,原因就是驱动是为操作系统服务的,有的操作系统是单线程的,有些操作系统不允许动态申请内存,所以不同的操作系统要操作硬件,就要根据自身的特性编写对应的操作代码,这就是驱动存在的意义——适应系统需要。

假如世界上只有一种操作系统,并且版本永远不会改变,那么firmware和驱动就可以融合在一起,但这只能一个不现实的梦想,要知道民用操作系统和工业控制操作系统差别是十分巨大的。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值