Chinaunix首页 | 论坛 | 博客
  • 博客访问: 560739
  • 博文数量: 105
  • 博客积分: 3274
  • 博客等级: 中校
  • 技术积分: 1161
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-21 12:14
文章分类

全部博文(105)

文章存档

2011年(1)

2010年(104)

分类: LINUX

2010-04-02 20:03:39

    设备驱动程序的作用:在于提供机制,而不是提供策略。

    在编写访问硬件的内核代码时,不要给用户强加任何特定策略。因为不同的用户有不同的需求,驱动程序应该处理如何使硬件可用的问题,而将怎样使用硬件的问题留给上层应用程序。
 
    总的来说,驱动程序设计主要还是综合考虑以下3个方面:
    (1)提供给用户尽量多的选项;
    (2)编写驱动程序要占用的时间;
    (3)尽量保持程序简单且没有错误。
 
     不带策略的驱动程序包括一些典型的特征:
     (1)支持同步和异步操作
     (2)驱动程序能多次被打开
     (3)充分利用硬件特性
     (4)不提供与策略相关的软件层
 
     内核功能划分:(闭上眼睛想想主要有哪几个部分,每部分的大致功能)
     (1)进程管理  SCHED IPC
     (2)内存管理  MM
     (3)文件系统  VFS
     (4)设备管理  
     (5)网络功能  NET
 
     Linux有一个很好的特性:模块可装载,可移除。
 
     设备和模块的分类:
     常用的分类:字符设备、块设备、网络设备。
     字符设备和块设备的区别仅仅在于内核内部管理数据的方式,也就是内核及驱动程序之间的软件接口,而这些不同对于用户来说是透明的。
     网络系统并不对应于文件系统的节点,所以你不会发现有/dev/eth0之类的东东存在。
  
     安全问题注意事项:
     (1)驱动程序编写者应当避免在代码中实现安全策略
     (2)避免由于自身原因引入安全方面的缺陷,比如C语言中容易产生错误的几种类型
     (3)任何用户进程得到的输入只有经过内核严格验证后才能使用
     (4)必须小心对待未初始化的内存,就是说一定要初始化内存
     (5)小心使用第三方获得的软件
阅读(1117) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~