易截截图软件、单文件、免安装、纯绿色、仅160KB

linux块设备分析与使用(转的)


linux块设备分析与使用
 
 
linux块设备分析与使用
creator
sz111@126.com
 
   本篇文章力求简单明了的解释Linux的块设备驱动,让大家对它少些畏惧,快速的开发一个块设备。分析完这篇之后,下一步就是分析MMC卡的驱动,争取分析之后可以达到优化读卡速度的目的。Linux的块设备看似比较复杂,其实梳理一下并不难,有如下两点:
   1.对请求的响应。request。(如果使用请求队列)
   2.制造请求。make_request.(不使用请求队列)
  
   request是采用一定的算法组合了请求以提高性能,这个时候算法组合就是系统默认的make_request函数,函数名为__mak_request,而如果不采用请求组合的时候,就可以自定义make_request函数。因为内核中这个函数是个函数指针,可以改变的。有些时候不需要组合的方式,如SD卡和RAMDISK。
  
    以上两个方式都不能由驱动自己调用,只有当内核认为是时候让驱动处理对设备的读写等操作,它才会调用这个函数。
    基本上块设备就是对以上两种方式选择一个,然后对其进行处理。所有的块设备驱动都是围绕这个部分展开。期间有很多数据结构需要我们特别注意。
    
    我们先使用请求队列对请求进行响应,等于是采用默认的make_request函数,采用Linux默认的队列优先级算法。对这个方法进行分析展开。
原型为void request(request_queue_t *queue)
主要依靠这个函数对请求进行响应,并且所有的请求最终都被驱动处理。这个函数是被内核来调用。每个设备都有一个请求队列。Request函数会在设备的请求队列生成的时候和队列绑定在一起。通过函数
request_queue_t *blk_init_queue(request_fn_proc *rfn, spinlock_t *lock)
生成一个请求队列。其中rfn函数就是我们用户自己的request函数。生成的这个队列会放到gendisk结构里面,gendisk是来表示一个独立的磁盘设备或分区。下面我们对request函数实例进行分析。
static void sbull_request(request_queue_t *q)
{
    struct request *req;
    while((req = elv_next_request(q)) != NULL){
         sbull_transfer(dev,req->sector,req->current_nr_sectors,
re


相关文档:

linux命令详解

Linux系统命令分类详解
一.备份压缩
二.文件管理
三.网络通信
四.特殊命令
1.RPM 命令手册
2.Linux 中文件查找技术大全
3.FTP 命令大全及其应用
五.系统管理
六.其他
一.备份压缩
zipinfo
功能说明:列出压缩文件信息。
语 法:zipinfo [-12hlmMstTvz][压缩文件][文件...][-x ]
补充说明:执行zi ......

linux 分离线程

线程处于分离状态后,当线程退出后,则有操作系统来负责系统的回收。
创建分离状态线程的方法有:
1、在线程函数中调用, pthread_detach(pthread_self());
2、线程属性的设置函数
摘自:Unix 环境高级编程
int makethread(void *(*fn),void *arg)
{
       int err;
  &n ......

Linux kernel Development second Edition

1. Technically speaking, and in this book, the operating
system
is considered the parts of the system responsible for basic use
and administration. This includes the kernel and device drivers, boot loader,
command shell or other user interface, and basic file and system utilities ......

用MRTG监测Linux系统网络、CPU、内存和硬盘情况

随着Linux应用的日益广泛,有大量的网络服务器使用Linux操作系统。为了全面衡量网络运行状况,就需要对网络状态做更细致、更精确的测量。 SNMP协议的制订为互联网测量提供了有力支持。MRTG(MultiRouter Traffic Grapher, MRTG)就是基于SNMP的典型网络流量统计分析工具。它耗用的系统资源很小,因此有很多外挂的程序也依附在 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号