Linux块设备和字符设备】的更多相关文章

在Linux平台oracle rac的组建过程中,如果使用ASM+RAW的存储方式的话,由于asm不支持块设备,支持持字符访问设备,所以需要配置将Block Device Drive转变成Character Device Drive的访问方式.但是在Linux平台中,不像aix和HP-UX中,默认提供了块设备对应的字符设备文件,需要我们手工的将块设备映射为字符设备.在此,我们提供三种方式来讲块设备绑定到裸设备上,这三种方式创建裸设备的方式完全一样,区别在于对oracle用户的权限的处理方式不同,…
块设备:系统能够随机无序访问固定大小的数据片的设备,这些数据片称为块.块设备是以固定大小长度来传送资料的,它使用缓冲区暂存数据,时机成熟后从缓存中一次性写入到设备或者从设备中一次性放到缓存区.常见的块设备有硬盘.CD-ROM驱动器.Flash闪存等等,它们也是通过文件形式存在于Linux中的.Linux以"b"表示块设备. 字符设备:按照字符流方式被有序访问,以不定长度的字元传送资料,不存在缓冲区,所以对这种设备的读写都是实时的,比如键盘.串口.印表机等等.Linux以"c&…
linux中c表示字符设备文件,b表示块设备文件,l表示符号链接文件,r表示可读权限,w表示可写权限.linux文件属性解读:文件类型:-:普通文件 (f)d:目录文件b:块设备文件 (block)c:字符设备文件 (character)l:符号链接文件(symbolic link file)p:命令管道文件(pipe)s:套接字文件(socket)文件权限: 9位,每3位一组,每一组:rwx(读,写,执行),当改组不具有某一权限用-代替.第一组为: 文件拥有者的权限, 该文件的拥有者可以读写,…
1.申请设备号 #include <linux/fs.h> int register_chrdev_region(dev_t first, unsigned int count, char *name); 静态分配字符设备号,从fist开始的count个,name为设备名称(name会出现在/proc/devices和sysfs中),成功返回0,失败返回一个负的错误码 int alloc_chrdev_region(dev_t *dev, unsigned int firstminor, un…
字符设备 Linux中设备常见分类是字符设备,块设备.网络设备,其中字符设备也是Linux驱动中最常用的设备类型.因此开发Linux设备驱动肯定是要先学习一下字符设备的抽象的.在内核中使用struct cdev来描述一个字符设备如下 struct cdev { struct kobject kobj; struct module *owner; const struct file_operations *ops; struct list_head list; dev_t dev; unsigne…
本文转载自:http://blog.csdn.net/coding__madman/article/details/51346532 下面先通过一个编写好的内核驱动模块来体验以下字符设备驱动 可以暂时先忽略下面的代码实现! memdev.c #include <linux/module.h> #include <linux/fs.h> #include <linux/init.h> #include <linux/cdev.h> #include <a…
Preface 前面对linux设备驱动的相应知识点进行了总结,现在进入实践阶段! <linux设备驱动入门篇>:http://infohacker.blog.51cto.com/6751239/1218461 <linux设备驱动扫盲篇>:http://infohacker.blog.51cto.com/6751239/1218747 <fedora下的字符设备驱动开发>:http://infohacker.blog.51cto.com/6751239/1155153…
已经无法再精简,适合入门. #include<linux/module.h> #include<linux/init.h> #include<asm/uaccess.h> #include <linux/types.h> #include<linux/fs.h> #include<linux/cdev.h> struct mengc_dev{ ]; struct cdev cdev; }; int mengmajor; struct…
/***************************** ** 驱动程序模板* 版本:V1* 使用方法(末行模式下):* :%s/xxx/"你的驱动名称"/g********************************/ #include <linux/mm.h>#include <linux/miscdevice.h>#include <linux/slab.h>#include <linux/vmalloc.h>#includ…
本文基于icool210开发板,内核版本:linux2.6.35: 驱动代码: (1)头文件:led.h #ifndef __LED_H__ #define __LED_H__ #define LED_MAGIC 'l' #define LED_1_ON _IO(LED_MAGIC, 0) #define LED_1_OFF _IO(LED_MAGIC, 1) #define LED_2_ON _IO(LED_MAGIC, 3) #define LED_2_OFF _IO(LED_MAGIC,…