Linux块设备驱动(1) 块驱动中相关的结构体及其操作
1.字符设备与块设备IO操做的区别
1)块设备只能以块为单位接收输入返回输出,而字符设备则以byte为单位.大多数设备是字符设备,他们不需要缓冲并且不以固定块大小进行操作.
2)块设备对于IO请求有对应的缓冲区,所以他们可以选择以什么顺序进行响应.字符设备无须缓冲且被直接读写.
3)字符设备只能被顺序读写,块设备可以随机访问.
2.block_device_operations结构体
block_device_operations描述了对块设备的操作的集合
struct block_device_operations {
int (*open) (struct inode *, struct file *);/*打开*/
int (*release) (struct inode *, struct file *);/*释放*/
int (*ioctl) (struct inode *, struct file *, unsigned, unsigned long);
long (*unlocked_ioctl) (struct file *, unsigned, unsigned long);
long (*compat_ioctl) (struct file *, unsigned, unsigned long);
int (*direct_access) (struct block_device *, sector_t, unsigned long *);
int (*media_changed) (struct gendisk *);/*介质被改变?*/
int (*revalidate_disk) (struct gendisk *);/*使介质改变*/
int (*getgeo)(struct block_device *, struct hd_geometry *);/*填充驱动器信息*/
struct module *owner;/*模块拥有者,一般初始化为THIS_MODULE*/
};
关于block_device_operations的操作:
&nb
相关文档:
linux下添加路由的方法:
一:使用 route 命令添加
使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了,方法:
//添加到主机的路由
# route add –host 192.168.168.110 dev eth0
# route add –host 192.168.168.119 gw 192.168.168.1
//添加到网络的路由
# route add –net IP netma ......
Linux下jboss 5.1安装配置步骤
一、下载jboss 5.1和jdk1.6(我把他下载到/usr/local/src/tarbag)
jboss 5.1ZIP包 http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/
java jdk包 http://java.sun.com/javase/downloads/widget/jdk6.jsp
二、解压
#cd /usr/lo ......
线程池
:简单地说,线程池
就是预先创建好一批线程,方便、快速地处理收到的业务。比起传统的到来一个任务,即时创建一个线程来处理,节省了线程的创建和回收的开销,响应更快,效率
更高。
在linux中,使用的是posix线程库,首先介绍几个常用的函数:
1 线程的创建和取消函数
pthread_create
创建
pthread_join
......
作者:李智敏,华清远见嵌入式学院上海分中心讲师。
在 Linux 内核内,进程是由相当大的一个称为 task_struct 的结构表示的。此结构包含所有表示此进程所必需的数据,此外,还包含了大量的其他数据用来统计(accounting)和维护与其他进程的关系(父和子)。下面给出了 task_struct 的一小部分。task_struct 位于 ./linux ......
把U盘刻成光盘(以ubuntu9.10为例)
前提:电脑支持U盘启动,有些电脑是不支持的。
开始制作
一、材料:
UltraISO(软碟通)软件
ubuntu 9.10 iso
u盘(推荐1G以上)。
二、操作平台:
windows xp/vista [我是在vista下制作的,必须用管理员权限打开UltraISO(软碟通)](右击其快捷方式,以管理员身分打开)
说 ......