1.驱动基本概念

这篇博客介绍了Linux驱动的基本概念,包括驱动的定义、Linux体系架构、内核与用户空间的区别、设备驱动分类,尤其是字符设备驱动的重要性,以及驱动程序的安全性要求和潜在问题。内容涵盖了宏内核与微内核的区别,以及驱动程序如何影响内核稳定性和安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1、理解驱动的概念
linux内核驱动。软件层面的驱动广义上就是指:这一段代码操作了硬件去动,所以这一段代码就叫硬件的驱动程序。(本质上是电力提供了动力,而驱动程序使得硬件产生了固定时序或者说电信号而工作)
狭义上驱动程序就是专指操作系统中用来操控硬件的逻辑方法部分代码。

1.2、linux体系架构(分层思想)
(1)驱动的上面是系统调用API
(2)驱动的下面是硬件
(3)驱动自己本身也是分层的

1.3 微内核和宏内核
(1)宏内核(又称为单内核):将内核从整体上作为一个大过程实现,并同时运行在一个单独的地址空间。所有的内核服务都在一个地址空间运行,相互之间直接调用函数,简单高效。
(2)微内核:功能被划分成独立的过程,过程间通过IPC进行通信。模块化程度高,一个服务失效不会影响另外一个服务。典型如windows
(3)linux:本质上是宏内核,但是又吸收了微内核的模块化特性,提现在2个层面
静态模块化:在编译时实现可裁剪,特征是想要功能裁剪改变必须重新编译
动态模块化:zImage可以不重新编译烧录,甚至可以不关机重启就实现模块的安装和卸载。

1.4.3、内核空间和用户空间
(1)内核空间:Linux中一部分核心软件独立于普通应用程序,包括驱动程序,运行在较高的特权级别上,他们驻留在被保护的内存空间,拥有访问硬件设备的所有权限。
(2)用户空间:其他应用程序在用户空间执行,这部分的应用程序只能看到允许他们使用的部分系统资源,并且不能使用某些特定的系统功能,不能直接访问硬件,如果特殊情况下需要对内核空间进行访问,也必须得到内核空间的授权方可。

内核空间和用户空间都是指虚拟空间,也就是虚拟地址。Linux不能直接访问物理地址,对于物理地址需要使用memremap或者ioremap转为虚拟地址后再访问。

1.4.linux设备驱动分类
1.4.1、驱动分类

(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值