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

linux下字符驱动模块的一般性步骤

这段时间学习字符设备的驱动模块程序,主要是借鉴书籍<linux驱动开发详解>及网络资源,在此,我依据个人的理解,
对现在自己所理解的进行小结。
整体出发一点,应用程序和vfs之间的接口是系统调用,而VFS与磁盘文件系统及普通设备之间的接口是file_operations
结构体成员函数,这个接口体包含对文件进行打开、关闭、读写、控制的一系列成员函数。
由于字符设备的上层没有磁盘文件系统,所以字符设备的file_operations成员函数就直接由设备驱动提供了,即file_operations
正是字符设备驱动的核心。
在linux2.6内核中我们使用cdev结构体来描述字符设备,此结构体对于设备的重要信息有包含。
编写设备驱动模块加载时步骤为:
1、自定义字符设备结构体变量,或用函数struct cdev *cdev_alloc(void)申请;
2、向内核申请设备号,可以是静态:register_chrdev_region(),或动态的alloc_chrdev_region();
3、初始化cdev结构体,此函数是为了将file_operation结构体成员函数与字符设备描述的结构体cdev进行相连接;
4、向内核注册字符设备,调用函数cdev_add();
在对字符设备的使用时,肯定有些会涉及到资源的共享及并发控制等问题,这些都是在相应的file_operations函数成员中
进行相关的处理的,但是整体的设备驱动模块加载里面涉及的步骤是上面这样的;
编写设备驱动模块卸载时步骤为:
1、注销设备,cdev_del();
2、释放内存(如果使用到);
3、释放设备号,unregister_chrdev_region();
以上为个人看法,还得继续学习


相关文档:

Linux网卡驱动开发总结

1. 网络子系统
* 系统调用接口
* 协议无关层
* 协议实现层
* 驱动无关层
* 驱动程序层
注:调用接口<->协议层<->驱动程序
2. 网卡驱动程序
* 位于数据链路层
3. 关键数据结构
* struct net_device
* struct sk_buffer
4. 初始化
* 生成net_device,并初始化其成员
* 根据需要,对网卡自身寄存器 ......

Linux文件类型

目录
 
2.1 普通文件;
2.2 目录;
2.3 字符设备或块设备文件;
2.4 套接口文件;
2.5 符号链接文件;
1、Linux文件的扩展名;
2、Linux 文件类型;
3、关于本文;
4、后记;
5、参考文档;
6、相关文档;
++++++++++++++++++++++++++++++++++++++
正文
++++++++++++++++++++++++++++++++++++++
1、 ......

在Linux下进行文件“粉碎”

众所周知Windows下的文件删除之后是有可能恢复的,对重要文件,为了增加恢复的难度,我们可以用文件粉碎工具进行文件粉碎。我最常用的是集成到资源管理器中的Eraser。那么在Linux下有没有类似的软件呢?我在一台只有Ubuntu系统的主机上,安装了一个文件粉碎工具wipe,有些想法,记下来。
安装:apt-get install wipe
wipe ......

【Nutch】Linux下Nutch分布式配置和使用

Linux下Nutch分布式配置和使用
 
目   录
介绍. 2
0 集群网络环境介绍. 2
1 /etc/hosts文件配置. 2
2 SSH无密码验证配置. 2
2.1配置所有节点之间SSH无密码验证. 2
3 JDK安装和Java环境变量配置. 3
3.1 安装 JDK 1.6 3
3.2 Java环境变量配置. 4
4 Hadoop集群配置. 4
5 Hadoop集群启动. 6
6 Nutc ......

linux socket 详解

头文件:sys/socket.h
相关结构体:
struct sockaddr
{
    unsigned short sa_family;   //地址族
    char sa_data[14];   //14字节协议地址
};
struct sockaddr_in
{
    short int sin_family;   //地址族
    u ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号