当前位置:  技术问答>linux和unix

块设备与字符设备 怎么回事

    来源: 互联网  发布时间:2017-01-28

    本文导语:  这两个设备操作有点不明白了 首先在/dev/目录下  c开始的是字符设备  b开始的是块设备 问题1:是/dev目录下,显示这些字符设备和块设备文件名有什么作用(都不能直接对这些设备文件进行操作 比如        ...

这两个设备操作有点不明白了

首先在/dev/目录下  c开始的是字符设备  b开始的是块设备

问题1:是/dev目录下,显示这些字符设备和块设备文件名有什么作用(都不能直接对这些设备文件进行操作 比如   
                   cat /dev/tty0都不行)

查一下 块设备的操作 要用mount挂载之后进行操作  
问题2:那么将块设备挂载到某个目录下如/mnt/sd目录下  此时往/mnt/sd目录下考文件 是不是直接就已经拷到设备中了?  
    对应的/dev/目录下的此块设备文件会有什么变化么?

问题3:字符设备是不是只能用open,read等函数进行操作,那可不可以用open,read函数操作块设备呢?

问题比较多,确实不太明白,请赐教!

|
问题2:那么将块设备挂载到某个目录下如/mnt/sd目录下 此时往/mnt/sd目录下考文件 是不是直接就已经拷到设备中了?   
是的。比如我要把一个文件拷贝到u盘上,步骤是这样:
# mount /dev/sdb1 /mnt/usb/
# cp abc.txt /mnt/usb
# ls /mnt/usb  可以看到/mnt/usb里面多了一个abc.txt文件。
# umount /mnt/usb
然后把u盘拿到windows里面,就可以看到abc.txt文件已经被拷贝到u盘里了。

  对应的/dev/目录下的此块设备文件会有什么变化么?
应该不会吧。我觉得这种设备文件其实不是真正的文件,只不过是记录了一些信息,比如主设备号、次设备号等等。比如u盘,从设备文件看到的只是一个关于这个盘的总体信息,和盘里的内容没关系。

|
//问题1:是/dev目录下,显示这些字符设备和块设备文件名有什么作用?
设备文件名是对应着这个设备的驱动在注册时的名称的。设备文件不同于普通文件,它存储着这个设备的主、次设备号,在操作设备时需要这些信息,只是设备文件和文件系统把这些都做好了,应用层可以认为操作设备文件就是在操作设备。一般设备要打开是需要open对应的设备文件的,但有的可能不是这样的,然后是read,write.....等。cat /dev/tty0应该是不行的。

//问题3:字符设备是不是只能用open,read等函数进行操作,那可不可以用open,read函数操作块设备呢?
这个是可以的,字符设备和块设备在应用层的接口是一样的,只是在驱动内部实现上不一样,这个具体的就看块设备和字符设备的区别了。

|
设备文件是设备的“代表”,当你用open,read操作设备文件的时候,实际访问的是设备。

关于三种设备,我的理解是:
所有设备都可以当作字符设备,这是最基础的,就是对某个地址读/写数据,
但是存储和网络传输是两类最常用的功能,各自有许多共同点,所以就抽象出了块设备和网络设备,以便于使用。

以上仅供参考。

    
 
 

您可能感兴趣的文章:

  • 字符型设备驱动生成的块设备 iis7站长之家
  • MTD字符设备和块设备有着什么样的关系????
  • 混杂 字符型设备 自动创建设备文件的问题
  • 字符设备驱动,混杂设备驱动,总线、设备、驱动模型、平台驱动
  • 字符型设备驱动生成的块设备
  • 怎么区分字符设备和块设备???????
  • Linux设备驱动(第三版)- 字符设备驱动 - 例子
  • Linux下写了一个字符设备驱动,找不到设备文件在哪个目录
  • Linux字符设备驱动疑难问题--printf打印信息发到字符设备write函数中
  • 字符设备llseek
  • 关于字符设备驱动读写的问题,求助
  • Linux 中多个字符设备的驱动问题。
  • 关于字符设备驱动的一点疑问
  • 怎么在linux字符界面添加网卡设备
  • 自己编写一个简单的字符设备驱动程序以后,改怎么使用它?
  • 字符设备驱动程序问题
  • 字符设备文件什么样子的文件名?
  • 如何从标准设备取得字符串?关于c编程
  • 字符设备(串口) 阻塞 读的问题,很纳闷?????????
  • 关于字符设备的段错误
  • 设备插上之后没有模块信息是怎么回事?
  • Linux RH 7.3下插入U盘后,fdisk -l看没有多出设备,这是怎么回事?
  • 最近看apue,程序4-10中,编译时,使用两个宏major和minor来访问主次设备号,没有定义是怎么回事,应该怎么解决呢?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • UIO(linux Userspace I/O子系统)用户空间设备驱动I/O技术介绍
  • 关于设备操作的一点迷惑:计算机如何知道驱动程序要操作的设备正好是指定的设备?
  • 如何根据主设备号打开设备?
  • 设备与设备文件问题
  • 怎么知道设备节点对应那个设备?
  • 关于设备节点,设备文件系统的关系
  • 程序如何open这个设备,如何知道这个设备对应的特殊文件名?
  • 请问cf接口设备一般对应什么设备文件呢?
  • linux2.4如何在设备拔出后将无效的设备节点也删除
  • 内存映射设备后,就可以直接访问设备的片内内存 了(比如显卡的显存)?
  • Linux的设备和设备号是指什么?可否简单的解释一下?
  • 问一个问题。请问如何在文件系统管理并使用设备,也就是当一个设备装载,下载时。文件系统是如何实现的
  • linux 启动的时候 可以检查出很多设备 并给设备配以驱动程序
  • 用户可通过访问设备节点控制设备,是否也可直接读取class或devices里的文件获得设备信息?
  • 有人在Linux下用过1394接口的设备吗?怎么装载一个1394接口的存储设备呢?
  • linux无法认出USB设备,说设备不响应
  • 一个arm-linux有ppp0设备和eth0设备.怎么做这样的应用.
  • red hat7.3中有没有类似window中的设备管理器?我怎么样才能知道,我的某个设备是否正常工作,如网卡、声卡?
  • 在make xconfig中如何激活PCMCIA设备(记忆卡),PCMCIA设备(快闪记忆卡)?
  • fedora core2下,我删除了网卡设备,然后重新添加,为什么一添加就死机啊?在命令行模式下如何用命令添加网络设备啊?
  • linux设备驱动程序 usb-skeleton这个程序,能不能用具体的usb设备测试它的读写功能啊??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3