- 1
- 0
- 约4.07千字
- 约 17页
- 2019-04-28 发布于福建
- 举报
10-4Linux操作系统 - 设备管理
10.4 设备管理 内容 设备文件 设备管理相关数据结构 块设备文件的open()、read()操作 10.4.1 设备文件的概念 传统的Unix系统均把设备当成文件来处理,因而可以用read()/write()对设备进行操作。设备文件一般在/dev目录下。 Linux下的设备大体分为三类: (1)块设备: 一次I/O操作以固定大小的数据块为单位,且可随机存取。 (2)字符设备:一次I/O操作存取数据量不固定,只能顺序存取。 (3)网卡:网卡是特殊处理的,它没有对应的设备文件。 设备文件的属性 文件名:如 hda1 类型:是字符设备还是块设备 主设备号:主设备号相同的设备被同一设备驱动程序处理。 从设备号:用来指明具体的设备 mknod()创建设备文件,它的参数是上面提到的四个属性。 Linux安装完成之后已经在/dev目录下生成了绝大多数可能要用到的设备文件 10.4.2 相关数据结构 VFS与设备驱动程序接口: name fops blkdevs[](块设备)driver操作表 chrdevs[](字符设备)driver操作表 ? name fops dentry Files_ operations inode Inode_ operations fd_array file files_struct task_struct 一、 字符设备管理 字符设备管理的主要数据结构如下: struct device_struct { const char * name; struct file_operations * fops; }; static struct device_struct chrdevs[MAX_CHRDEV]; 全局数组chrdevs[]记录了所有字符设备驱动程序的名称name及其对应的设备操作函数接口fops。数组的下标,则对应于设备的主设备号。 加载设备驱动时,设备在系统中的注册是通过函数register_chrdev( ),其原型如下: int register_chrdev(unsigned int major, const char * name, struct file_operations *fops); 不同的字符设备驱动程序要提供不同的file_operations实现。 当设备不再使用时,可以通过unregister_chrdev()函数注销。 二、 块设备管理 主要数据结构有blkdevs[]和blk_dev[]: static struct { const char *name; struct block_device_operations *bdops;/* 特定于设 备的操作集*/ } blkdevs[MAX_BLKDEV]; struct blk_dev_struct { request_queue_t request_queue;/*请求队列*/ queue_proc *queue; void *data; }; struct blk_dev_struct blk_dev[MAX_BLKDEV]; 数组的下标对应设备驱动程序的主设备号, blkdevs[ ]记录设备文件名及相应的操作集合, blk_dev[ ]记录各个设备的请求队列。 Request_fn …… Buffer head Buffer head ? Buffer head ? 相关数据结构 blk_dev[] blk_dev_struct request request 内存 外存 三 、 buffer cache 块设备的操作是以块为基本单位,一般情 况块的大小不会超过页面的大小。 buffer cache 是对物理磁盘块的缓冲, 一个buffer的大小等同于一个块的大小 buffer cache目的:提高性能。 每个buffer由buffer_head结构描述,内核根据buffer_head的状态信息操作buffer struct buffer_head { struct buffer_head *b_next; /* 用来链接hash值相同 的buffer_head */ unsigned long b_blocknr; /* 块号 */ unsigned short b_size;
您可能关注的文档
- 050708_2011年城市规划实务.ppt
- 052-12.02.27-大家借鉴纯爷们100招风格-借鉴作品《林伟贤谈口才》@sa羊@红策划.ppt
- 053-12.02.27-大家借鉴纯爷们100招风格-借鉴作品林伟贤谈销售@sa羊@红策划.ppt
- 054309_北方常用园林观赏植物名称与图片介绍.doc
- 05MR101城市道路-施工图设计深度图样.doc
- 05_SharePoint 2010安全性体系和基于Claims的授权方式.pptx
- 05变形缝.ppt
- 06-中国建筑的沿革.ppt
- 06-混凝土灌注桩施工(它类).ppt
- 0601 拱桥的特点和构造.ppt
- 2026年安全生产责任制测验含答案.docx
- 公司紫胶洗色干燥工岗位安全操作规程.docx
- 2025至2030智能学习灯行业市场发展分析及投资前景报告.docx
- 中考语文古诗文阅读理解《醉翁亭记》《石门亭记》《戏答元珍》含答案解析译文.docx
- 2025ACNS指南:新生儿连续脑电图监测的适应证 (1).pptx
- 九年级数学上学期练习人教版gd22.3.1 几何图形面积问题 (3).pptx
- 中国预调酒行业市场发展状况及发展趋势与投资前景研究报告.docx
- 研学旅行指导师岗位职业健康操作规程.docx
- 2025至2030半甜白葡萄酒行业市场前景分析及发展趋势与投资风险报告.docx
- 电子元器件智能化生产线项目申请报告.docx
原创力文档

文档评论(0)