2008-7-17 19:49
vitamin123
lv00与rlv00有什么区别
# file /dev/lv00
/dev/lv00: 特殊块(10/10)
# file /dev/rlv00
/dev/rlv00: 特殊字符(10/10)
# ls -tlr /dev | grep lv00
crw-rw---- 1 root system 10, 10 5月05 15时59 rlv00
brw-rw---- 1 root system 10, 10 5月05 15时59 lv00
请问一下,lv00与rlv00有什么区别?
如果有哪位可以举个有什么不同的应用的例子更好了。
谢谢了。
2008-7-17 20:34
orian
一个是c设备,一个是b设备
c,字符设备,允许随机读写
b,块设备,每次读写必须是整块大小
2008-7-17 20:35
jnpiero
块设备 字符设备
2008-7-18 00:50
心中日月
[quote]原帖由 [i]orian[/i] 于 2008-7-17 20:34 发表 [url=http://www.loveunix.net/redirect.php?goto=findpost&pid=810034&ptid=87261][img]http://www.loveunix.net/images/common/back.gif[/img][/url]
一个是c设备,一个是b设备
c,字符设备,允许随机读写
b,块设备,每次读写必须是整块大小 [/quote]
啊 哦 是这样的吗??
我记得好像是块设备可以随机存取的吧 字符设备好像不行哦!!!
是我记错了???:hug:
2008-7-18 01:52
orian
随机存取与是否是字符设备无关,只能说某些字符设备只能顺序读写,例如tty等。
通常两种设备都可以随机读写,字符设备对编程处理比较简单,效率低,而块设备效率高,但需要程序额外考虑对齐、cache、回写等事情。
2008-7-18 08:13
tyrone.dev
硬件上来说字符设备是指一个字节一个字节读写的设备,不能随机读写,比如终端,modem 等,块设备指以块读写的设备,一般是512字节或者512字节的倍数,能够随机读写的设备,比如硬盘,CD-ROM,优盘等,块设备的性能要高于字符设备。
但UNIX上的字符设备是指不通过操作系统的buffer进行读写,比如你对设备进行read 16K字节时,进程会转入到内核状态,并直接向硬盘发送读取16K字节的指令。而块设备是通过Buffer进行读写,read 16K字节时,有可能在操作系统上分成4K 4次来读取。所以字符设备的驱动程序要比块设备要好写。但对你应用来说,都可以采用read函数来读取一定的数据。有时用块设备,有时应当用字符设备,比如你打开设备,向设备每次几个字节,几个字节写内容。这个时候,如果每次都调用硬盘的实际操作,由于硬盘的IOPS有限,会影响硬盘性能。所以需要使用块设备。而对于数据库操作,数据库本身都是以块读写的,而且一般都会采用比操作系统块大的数据值。如果那时数据库需要读取8K数据,而你使用了块设备,可能会分成两次,反而会减低系统的性能。所以数据库使用raw device时会采用字符设备。也就是rlv。有一个规则很好分,你的应用程序写的好,本身已经想到设备效率问题,应当使用字符设备,相反如果什么都不管,想写什么就写什么就要使用块设备。
从操作系统层来说字符设备和块设备都支持随机读写,只要你的驱动程序实现了lseek函数就可以。
2008-7-18 09:43
心中日月
晓得了 又长知识喽~~~~~~~
2008-7-18 09:44
天生杀人猫
有r就是字符设备,也就是裸设备。
2008-7-23 17:18
vitamin123
谢谢
谢谢各位的指导
2008-7-23 21:28
giant#kenh
:lu11: :lu11: :lu11:
2008-7-23 23:10
benq011
我举报ls的到处灌水:lol
2008-7-23 23:35
巴蒂
路过,学习:lu11:
2008-7-24 08:09
小菜鸟_2008
学习啦。以前没有深入研究过这个的区别。
页:
[1]
Powered by Discuz! Archiver 5.5.0
© 2001-2006 Comsenz Inc.