设备驱动&&固件“驱动”
来源:互联网 发布:淘宝哪里输入淘口令 编辑:程序博客网 时间:2024/05/01 21:04
在Linux Kernel中,设备驱动(Driver)和固件“驱动”(Firmware)是有明确含义的,其中Driver是控制外部设备(Device:这写外部设备是被操作系统管理的)的代码段。很多时候Driver会被实现为LKM,但这不是必要条件。Driver通过driver_register()注册到总线(bus_type)上,代表操作系统具备了驱动某种设备(Device)的能力。当某个Device被注册到同样的总线的时候(通常是总线枚举的时候发现了这个设备),总线驱动会按照一定的策略对Driver和Device进行binding(即进行匹配),如果Binding成功,总线驱动会调用Driver的probe()函数,把设备的信息(例如端口,中断号等)传递给设备驱动Driver,驱动就可以对真实的物理部件进行初始化,并把对该设备的控制接口注册到Linux的其他子系统上(例如字符设备,v4l2子系统等)。这样操作系统的其他部分就可以通过这些通用的接口来访问设备了。
/*
注:关于Linux内核对设备固件的装载和清除提供的接口可以参考下面的链接
http://blog.csdn.net/u014379540/article/details/52496647
*/
PS:知乎回答:
首先要对操作系统有个概念,从低级系统(前后台系统)到高级系统(进程式系统)的发展是模块化的过程。系统的不同功能由不同模块来实现。
驱动:它是实现高级应用和底层硬件操作的中间模块。(个人认为反正不是操作系统)
在高级系统(如Windows)很明显,可以用安装包来安装。而在低级系统里可能它只是一个函数,嵌入式开发里常见。
固件:可以认为就是操作系统(低级的),或者是操作系统+必要的应用程序。
最平常的就是把android和ios都叫做固件(刷固件,升级固件)。
人们把嵌入式系统的安装叫做刷固件(例如在手机上),而在pc硬件上的安装叫安装系统。
为什么会有这样的叫法,我觉得
1,嵌入式很多系统很低级,有些甚至不超过百行代码,在操作系统归类中,有些都不认为它是操作系统。
2,嵌入式系统安装后基本不会再进行软件层面的修改,是稳固的。
电脑可以认为是一个高级系统和多个低级系统携手操作硬件的机器。像网卡、声卡、usb等的主控制器都有操作系统(固件)来控制完成其所需要完成的工作。
(应用→驱动)→(固件→硬件逻辑),应用和驱动在我们电脑系统里,固件和硬件逻辑在外设里。
一般固件储存于外设储存空间里的,在外设通电运行时再载入外设的运存里。
还有一种就是固件放在电脑系统里,在外设连电脑时,由电脑传入外设运存,完成外设初始化。这就是linux里用firmware结构来完成把外设固件写入外设运存(就是上面提到的)。
设备驱动和操作系统一起在服务器上运行,为操作系统提供功能服务。驱动是硬件封装层,它按照操作系统定义的功能要求提供服务并操作硬件。驱动屏蔽了操作系统对硬件的直接操作,降低了操作系统编写的难度,它使操作系统看到的不同厂家的、但是功能类似的硬件都一样。
- 设备驱动&&固件“驱动”
- Linux 设备驱动的固件加载
- Linux 设备驱动的固件加载
- usb固件驱动驱动
- Linux 设备驱动的固件firmware加载
- 固件与驱动
- 驱动、固件
- 驱动固件区别
- 设备驱动
- 设备驱动
- 设备驱动
- 设备驱动
- 设备驱动
- 总线,设备,设备驱动
- Linux驱动设备驱动模型
- linux设备驱动--LED驱动
- Linux驱动设备驱动模型
- Linux设备驱动 IIC驱动
- 聚合支付解析篇
- IDEA中maven添加了依赖也报错java.lang.NoClassDefFoundError解决
- SQL Server数据库(时间戳timestamp)类型
- selenium常见问题集锦
- Mac下遇到 mysql Access denied for user 解决方法
- 设备驱动&&固件“驱动”
- Python读写txt文本文件的操作方法全解析
- 11月9日云栖精选夜读:阿里90后工程师,如何用AI程序写出双11打call歌?
- 11月16日比特币硬分叉取消,保皇派core和革命派矿主战端难解难分
- springboot接收json入参
- robot framework之chrome浏览器与firefox浏览器使用区别
- WebView爬坑之旅4--网页内下载
- xiaogui9527 使用X.509数字证书加密解密实务(三)-- 使用RSA证书结合对称加密技术加密长数据
- 【转】【Quartz】Quartz概述及入门实例