社区
驱动开发/核心开发
帖子详情
Linux在用户空间实现块设备驱动
china_ssl
2013-11-11 04:50:53
看见网上到处都在说在用户空间中不能实现块设备驱动,所以我又很大的疑问为什么不能在用户空间实现块设备驱动呢?
是因为中断在用户空间不可用吗?但是UIO已经解决了这个问题,使得中断可以送达用户空间。
请知道的告知一下具体原因,大家也可以讨论一下。
...全文
461
3
打赏
收藏
Linux在用户空间实现块设备驱动
看见网上到处都在说在用户空间中不能实现块设备驱动,所以我又很大的疑问为什么不能在用户空间实现块设备驱动呢? 是因为中断在用户空间不可用吗?但是UIO已经解决了这个问题,使得中断可以送达用户空间。 请知道的告知一下具体原因,大家也可以讨论一下。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
猪头三小队长
2014-02-28
打赏
举报
回复
所谓用户空间实现的,也要在内核空间有一个可以操作的代理,通过ioctl或者mmap方法去操作硬件。有些复杂驱动的结构是把操作硬件的部分放在内核空间,然后把组合逻辑部分放在用户空间,这样的好处是灵活,害处也显而易见,效率低并且安全性差。
lanhxg
2014-02-27
打赏
举报
回复
你要写驱动 你需要访问硬件地址 ,你在用户空间是无法访问的! 在用户空间你是用的是虚拟地址。
DIY-GEEKER
2014-02-14
打赏
举报
回复
感觉是保护机制的问题,驱动程序放到用户空间的话,很容易被用户直接调用到,要知道驱动出了问题,整个机器是要挂掉的。
嵌入式
块设备
内核
驱动
释放磁盘扇区缓存。明确:
linux
系统分
用户
空间
(
用户
态)和内核
空间
(内核态) 分配一个gendisk结构体,队列request_queue_t,设置gendisk 结构体的成员 注册 gendisk 结构体。
用户
空间
的软件在运行的时候,CPU的工作模式为USER模式,这些软件在运行时,处于
用户
空间
;运行
用户
空间
的软件不能直接访问硬件外设的物理地址 如果要访问硬件外设,必须首先将硬件外设的物理地址映射到
用户
空间
的虚拟地址上
用户
空间
的软件不能直接访问内核
空间
的代码,地址和数据,
用户
空间
和内核
空间
的访问必须通过
嵌入式
linux
驱动
-
块设备
笔记
一、开发环境 1、内核:
Linux
2.6.22.6; 2、JZ2440v3 3、ubuntu 9.10 二、过程 1. 分配gendisk: alloc_disk 2. 设置 2.1 分配/设置队列: request_queue_t // 它提供读写能力 blk_init_queue 2.2 设置gendisk其他信息
块设备
驱动
实战基础篇四 (逐渐成型,加入ioctl通信机制)
1.6介绍一种内核与
用户
空间
通信的方法-misc设备ioctl机制
块设备
驱动
开发中往往需要配合
用户
态的管理程序工具,管理我们的
块设备
,此时我们需要涉及
用户
空间
程序与
块设备
通信的方法,ioctl机制就是接下来需要学习和实战的,通过ioctl机制,
用户
态负责发送各种命令给内核
驱动
;内核态接收
用户
态发送的命令,并根据命令执行相应的动作,如下图所示。 ioctl提供
用户
态程序使用内核态函数
Linux
设备
驱动
之
块设备
驱动
在嵌入式系统中的应用
总结起来,嵌入式系统中的
块设备
驱动
在
Linux
内核中的
实现
是通过字符设备接口完成的。通过合理的设计和
实现
,
块设备
驱动
能够提供对
块设备
的高效管理和数据读写支持。这对于嵌入式系统中的
块设备
是至关重要的。其中,
块设备
驱动
在处理
块设备
(如硬盘、闪存等)的数据读写和管理方面起着重要作用。下面是一个简单的
块设备
驱动
示例,展示了如何在
Linux
内核中
实现
一个虚拟的
块设备
。接下来,我们设置了
块设备
的相关属性,如主设备号、次设备号、操作函数等。请求队列用于管理
块设备
的读写请求,而
块设备
则代表了实际的
块设备
驱动
。
简单
linux
块设备
驱动
程序
本文代码参考《
LINUX
设备
驱动
程序》第十六章
块设备
驱动
程序 本文中的“
块设备
”是一段大小为PAGE_SIZE的内存
空间
(两个扇区,每个扇区512字节) 功能:向
块设备
中输入内容,从
块设备
中读出内容 注:ldd自带
块设备
驱动
源码在2.6.32内核的发行版上编译时会提示很多API未定义,原因是kernel 2.6中block layer API已经变更了很多,本文的程序参考了htt...
驱动开发/核心开发
21,620
社区成员
21,709
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章