linux 设备驱动模型笔记

Linux device driver model

overview

linux 设备模型的目的是为内核构建统一的模型,从而使系统有一般性的描述。

设备模型的几个主要任务:

  • 电源管理和系统关机:设备模型使得操作系统能够以正确的顺序遍历关闭系统硬件
  • 和用户空间进行通讯:sysfs虚拟文件系统的实现和设备模型密切相关,并向用户空间展现了系统的结构
  • 设备模型:维护设备驱动的体系化数据机构
  • 对象的生命周期:设备模型的创建需要一系列的机制来处理对象的生命周期、对象之间的关系以及这些对象在用户空间的表示

Posted by vmlinz Sun, 17 Apr 2011 18:11:09 +0800


块设备驱动要点

块设备驱动

块设备驱动比字符设备驱动要复杂许多,它在I/O操作上表现出极大的不同,缓冲,I/O调度和<
请求队列等是块设备驱动的主要概念。

块设备I/O的主要操作特点:

  • 块设备只能以块为单位进行I/O,字符设备则以字节为单位。大多数设备是字符设备,因为它
    们不需要缓冲而且不以固定块大小进行操作。
  • 块设备对于I/O请求有对应的缓冲,因此它们可以选择以什么顺序进行响应,字符设备无需缓
    冲且被直接读写。对于存储设备而言调整读写顺序的作用巨大,因为读写连续的山区比
    分离的扇区更快。
  • 字符设备只能顺序读写,而块设备可以随机访问。虽然块设备可以随机访问,但是对于磁盘
    这类机械设备而言,顺序的组织设备的访问可以提高性能。注意,对SD卡和RAMDISK等块
    设备而言,不春在机械上的原因,所以没有必要这样调整。

Posted by vmlinz Fri, 08 Apr 2011 00:30:17 +0800


使用thinkfan控制thinkpad风扇

使用thinkfan智能控制thinkpad风扇速度

我的thinkpad在安装了ubuntu 10.04之后,cpu风扇一直是满速运转,风扇声音非常烦人,而
且长时间这样运转可能会把cpu风扇给搞坏了。于是开始在网上找控制thinkpad风扇的方
法。这里就简单记录一下使用thinkfan来控制cpu风扇的过程。

Posted by vmlinz Mon, 04 Apr 2011 13:31:17 +0800


Linux内核中的并发和同步

作者: Nick Qi

0.简介

Linux内核中并发处理、抢占调度的支持以及中断的处理都需要处理竞争条件和同步问题,
下面我将通过《Linux设备驱动程序》以及相关文档中的内核同步机制以及使用方法做一
个总结。

竞争条件是指代码段的实际效果依赖于代码段的执行顺序。包含可能产生竞争条件的代码
被叫做临界区。在Linux内核添加了SMP支持之后,竞争条件和临界区就成了内核设计和
实现主要关注的问题之一。

Posted by vmlinz Tue, 25 Jan 2011 23:57:01 +0800