驱动开发--【字符设备、块设备简介】【sky原创】
驱动开发
字符设备,块设备,网络设备
字符设备
以字节流的方式访问,
不能随机访问
有例外,显卡、EEPROM可以随机访问
EEPROM可以擦写1亿次,是一种字符设备,可以随机访问
读写是直接访问硬件的
flash 擦写次数有限,一百万次,容易有坏块
块设备
能随机访问
以”块“为单位进行访问
块大小一般为512字节
块的大小由硬件决定
是内核进行数据传输的基本单位
硬盘结构:
格式化分区是以柱面为单位的,即硬盘的柱面
如果有10个盘面,就有十个柱面
对于嵌入式设备
如果是flash的话,结构如下:
flash是以块为单位
有些是页为单位,每页又有很多块
字符设备和块设备根本使用的接口不同,
即两种架构
块设备也可以用字符设备的驱动程序的架构来驱动,但是这样效率不高
字符设备一般可以直接访问硬件来读取数据
块设备一般要经过系统缓存来读取数据
比如说以前的老u盘刚传完电影,直接拔下后可能读不出来这个电影,或者运行有问题,这是因为写入的时候是先写在缓存,再异步写入硬件的
linux万物皆文件有例外,网络设备在linux中不体现为文件
操作方式是以socket套接字的方式进行访问
网络设备接收外部世界(本系统之外)的请求
驱动程序的安装方法:
1、直接编译内核
2、需要的时候手动安装
新浪博客:http://blog.sina.com.cn/u/2049150530
博客园:http://www.cnblogs.com/sky-heaven/
知乎:http://www.zhihu.com/people/zhang-bing-hua
【作者】sky
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类