《LINXU设备驱动程序》 第一章 设备驱动程序简介
来源:互联网 发布:java filereader 方法 编辑:程序博客网 时间:2024/04/29 17:57
第一章主要介绍了以下几方面的内容:
- 设备驱动程序的作用
- 内核功能的划分
- 设备和模块的分类
- 安全问题
- 版本编号
- 许可证条款
- 等
其中重点:设备驱动程序的作用、内核 功能的划分、设备和内核的分类、安全问题
1.设备驱动程序的作用:设备驱动程序是位于内核和硬件设备间的软件层,将系统调用映射到作用于实际硬件的设备特有操作上,就是设备驱动程序的任务。
- 机制而非策略:即驱动程序的编写,要提供功能,即能做什么,而不是提供如何做。
- 考虑的3个因素:1、提供给用户尽量多的选项。2、编写驱动的时间。3、尽量保持程序简单
- 不带策略驱动程序包典型特征:1、同时支持同步和异步操作。2、驱动程序可以被多次打开。3、充分利用硬件特性。4、不具备用来“简化任务”的或提供与策略相关的软件层
2.内核功能划分:进程管理、内存管理、文件系统、设备控制、网络功能
- 进程管理:进程创建、销毁、输入输出、通信、共享cpu调度器。
- 内存管理:为进程创建虚拟内存空间、内核与内存管理子系统交互时的函数调用
- 文件系统:unix基本每个对象多可作文件看待、物理介质上数据的组织方式。
- 设备控制:几乎每个系统操作都会映射到物理设备上。
- 网络功能:大多数网络操作与具体进程无关:数据包传入是异步事件、收集标示分发数据包、应用程序和网络接口传递数据包、根据网络活动控制程序执行、路由和地址解析
可以用insmod和rmmod程序装卸载模块到正在运行的内核。
3.设备和模块的分类:三种基本类型:字符模块、块模块、网络模块。
- 字符设备:1、能够像字节流一样被访问的设备,由字符设备驱动程序来实现。2、至少包括open、close、read、write系统调用。3、字符设备可通过文件系统节点访问/dev/tty1等。4、和普通文件唯一差别:普通文件的访问可以前后移动访问位置,大多数字符设备只能顺序访问数据通道(数据区特性的字符设备除外)。
- 块设备:1、通过文件系统节点访问。2、容纳文件系统。3、进行I/O操作时块设备每次只能传输一个活多个完整块。4、linux可以用应用程序一次传递任意多个字节数据。5、块设备与字符设备的区别:内核内部管理数据的方式即内核与驱动程序间的软件接口。
- 网络接口:1、和其他主机进行交换数据的设备(可以使硬件设备也可以是软件接口如loopback)。2、网络子系统负责发送接收数据包。3、许多网络连接面向流,网设备部是面向流。4、网络接口映射到文件系统节点困难,网络接口的名字不存在对应于文件系统的节点。5、内核和网络设备驱动程序通信完全不同于字符、块。
文件系统不是设备驱动程序,因为没有任何实际物理设备同这种信息组织方式相关联。但是,文件系统类型是个软件驱动程序,将底层数据结构映射到高层数据结构。解析文件系统信息的功能位于内核层次结构的最底层。
4.安全问题:原则性概念
- 安全检查由内核代码进行。只有收钱用户才能装载模块
- 驱动程序编写者尽量避免在代码中实现安全策略。
- 避免自身原因引入的安全缺陷:比如c缓冲区
- 其他原则性安全概念:1、用户进程得到输入需要经过内核严格验证后才能使用。2、小心对待未初始化的内存:从内核得到的内存提供给用户需要清零等初始化操作。3、如果设备要解释和分析发送给它的数据,必须确保用户不能将可能破坏系统的任何东西发送给它。4、考虑设备操作可能造成的影响
小心第三方软件。
5.版本编号:通常稳定版本为偶数,而奇数版本为咖啡过程中的一个快照。
- 《LINXU设备驱动程序》 第一章 设备驱动程序简介
- 第一章 设备驱动程序简介
- 第一章:设备驱动程序简介
- 第一章 设备驱动程序简介
- 第一章 设备驱动程序简介
- 【Linux 驱动】第一章 设备驱动程序简介
- 第一章设备驱动程序简介(笔记)
- 第一章:设备驱动程序
- usb 设备驱动程序简介
- linux设备驱动程序简介
- Linux设备驱动程序简介
- Linux设备驱动程序简介
- linux设备驱动程序:第一章总结
- 学习笔记——Linux设备驱动程序——【第一章】设备驱动程序简介(完结)
- ldd3流水笔记-2008.12.19 第一章 设备驱动程序简介
- 《Linux Device Drivers》第一章 设备驱动程序简介——note
- 设备驱动程序
- 设备驱动程序
- lucene3.3的简单例子
- Struts2的第一堂课的笔录
- MIT新技术让你的脉搏在视频中清晰可见,或为远程诊断提供强力支持
- 使用gprof和oprofile查找性能瓶颈
- zencart 促销 特价 显示倒计时
- 《LINXU设备驱动程序》 第一章 设备驱动程序简介
- 如何摆姿势才能拍出效果不错的个人商务照片
- hibernate命名查询
- oracle nullif函数的使用
- 写在起点
- Aptana Studio 介绍
- 关于android 双击事件
- ids for this class must be manually assigned before calling save():
- 最短路问题 以hdu1874为例