driver 和 firmware 的区别
来源:互联网 发布:3大云计算股票龙头股 编辑:程序博客网 时间:2024/06/05 20:25
转自http://blog.csdn.net/a15757129260/article/details/53099837
驱动和固件(firmware)都是代码,前者为软件服务,后者为硬件服务。
在操作系统概念还不明确的时代,二者是没有明显区别的。
但是随着计算机体系结构的发展,硬件的种类开始变多,操作系统的种类也变多了。
这个时候,因为各种技术的、商业的原因,硬件厂商希望自己的硬件能被更多的软件厂商使用,所以就需要在硬件之上做一些封装,让自己的硬件操纵起来更容易,这个时候就要有firmware这种东西了,它简化了软件与硬件的交互。
但是为什么不把fimware做的很完美,做的不需要驱动支持呢?因为有不同的操作系统。我不知道你对操作系统的理解是到什么程度?只知道Windows?还是还仅仅知道Linux?还是清楚Unix和FreeBSD是不同的系统?知道有RTOS?知道有上百种不同的内核?
不同的操作系统,对于操作硬件的方式完全不同,在Windows里应用态是无法直接写IO端口的,而在嵌入式系统里,一般都不限制直接操作IO端口。所以,硬件厂商一方面为了自己的硬件能被软件更简单的使用,就需要写firmware,而另一方面为了兼容各种操作系统,又不能把firmware写的太死,必须预留足够的余地让软件自由发挥——软件的自由发挥就是驱动。
不同操作系统的驱动是不能兼容的,原因就是驱动是为操作系统服务的,有的操作系统是单线程的,有些操作系统不允许动态申请内存,所以不同的操作系统要操作硬件,就要根据自身的特性编写对应的操作代码,这就是驱动存在的意义——适应系统需要。
假如世界上只有一种操作系统,并且版本永远不会改变,那么firmware和驱动就可以融合在一起,但这只能一个不现实的梦想,要知道民用操作系统和工业控制操作系统差别是十分巨大的。
- driver 和 firmware 的区别
- driver 和 firmware 的区别
- Hardware/Firmware/Software的区别
- trx和dd-wrt的firmware制作
- Linux和Android的firmware机制
- driver.navigate().to()和driver.get()区别
- Including driver firmware on Linux kernel image
- Oracle连接 Oracle 的OCI Driver 和 Thin Driver的区别
- Oracle连接 Oracle 的OCI Driver 和 Thin Driver的区别
- aorg.gjt.mm.mysql.Driver和com.mysql.jdbc.Driver的区别
- org.gjt.mm.mysql.Driver和com.mysql.jdbc.Driver的区别
- DDK(Driver Developer Kit)和WDK(Windows Driver Kit)的区别
- org.gjt.mm.mysql.Driver和com.mysql.jdbc.Driver的区别
- Webdriver中关于driver.navigate().to()和driver.get()使用的区别
- aorg.gjt.mm.mysql.Driver和com.mysql.jdbc.Driver的区别
- org.gjt.mm.mysql.Driver和com.mysql.jdbc.Driver的区别
- org.gjt.mm.mysql.Driver和com.mysql.jdbc.Driver的区别
- 【Selenium】2访问某网地址(driver.navigate().to()和driver.get()使用的区别)
- np transpose
- Android新特性介绍,ConstraintLayout完全解析
- Problem 平面上的点和线——Point类,line类 Ⅰ
- 欢迎使用CSDN-markdown编辑器
- HDU1565 方格取数(1) —— 状压DP
- driver 和 firmware 的区别
- Swift 3.0 集合类型
- 配置高可用的Hadoop平台
- urlopen关于超时timeout问题的解释
- Git常用命令
- php 伪静态 (url rewrite mod_rewrite 重写)
- python操作mongodb之pymongo
- AngularJS学习
- 微信小程序框架中的app.json配置(一)