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

设备特殊文件是devfs么?

    来源: 互联网  发布时间:2016-04-26

    本文导语:  看到资料上说,可以通过文件系统对分区的硬盘进行访问, 也可以通过设备特殊文件对raw硬盘进行访问 那设备特殊文件是devfs么?具体是对raw硬盘怎么访问的? | 1.设备节点创建问题 devfs是在vfs这...

看到资料上说,可以通过文件系统对分区的硬盘进行访问,
也可以通过设备特殊文件对raw硬盘进行访问
那设备特殊文件是devfs么?具体是对raw硬盘怎么访问的?

|
1.设备节点创建问题
devfs是在vfs这条“软总线”上,devfs是内核用来在驱动模块插入的时候自动创建设备节点的一个文件系统(是

一个伪文件系统)!为内核模块自动创建设备节点提供了一种机制(但创建设备节点并不只有这唯一的方法,可以

用mknod命令手动创建,只需要你知道该设备的类型,主次设备号即可);

2.如何访问到设备的问题
  对设备节点的访问,要看你的设备节点创建在什么文件系统中的!可以用stat -f /dev/xxx (xxx是具体的设备

节点)看看该设备节点所属的文件系统。以打开设备文件为例来简单解释下:
  如果设备节点在ext2文件文件中(实际顺序并不一定是这样,为了解释,我简化了):
  open->sys_open->... ->ext2_read_inode()...->def_chr_fops->open()/def_blk_fops->open()->设备驱动注

册的fops->open();
  是如何将ext2中设备文件和具体的设备关联起来的呢?
  其实,你看看ext2_read_inode()/ext2_write_inode [fs/ext2/inode.c]这连个函数就明白了;
ext2_write_inode函数将设备文件类型和文件的设备号都存入到了物理介质中;分别用ext2_inode结构中的
i_mode和i_block[0/1]表示(将设备号转化成一个整数存入到i_block[0/1]中);当用ext2_read_inode读取
的时候,也会读出inode,和i_block[0/1]的内容,然后解析它们就知道了是什么类型的设备和该设备的主次
设备号了。如果设备类型为字符设备,那么就调用def_chr_fops->open(),在def_chr_fops->open()中,进
一步获取的具体设备的fops。并调用最终的open函数。


简单总结下:

设备节点可以在任何文件系统中通过工具mknod创建;通过devfs只是创建文件系统的一种方式;设备节点不一定要

位于/dev/目录下,通常将其放在该目录下只是便于管理,你可以在文件系统的任何地方用mknod创建设备节点,应

该可以照常使用。


有点乱,凑合看!

    
 
 

您可能感兴趣的文章:

  • 问一个问题。请问如何在文件系统管理并使用设备,也就是当一个设备装载,下载时。文件系统是如何实现的
  • 设备与设备文件问题
  • 混杂 字符型设备 自动创建设备文件的问题
  • 请问cf接口设备一般对应什么设备文件呢?
  • 关于设备节点,设备文件系统的关系
  • 程序如何open这个设备,如何知道这个设备对应的特殊文件名?
  • Linux下写了一个字符设备驱动,找不到设备文件在哪个目录
  • 比较难的目录复制,如何原样复制链接符号文件和设备文件?
  • 设备文件
  • 用户可通过访问设备节点控制设备,是否也可直接读取class或devices里的文件获得设备信息?
  • 字符设备文件什么样子的文件名?
  • 键盘设备文件
  • 我如何找到这个设备的设备文件
  • 留步~~ 问个设备文件打开的问题
  • 应用程序中获取读取设备文件的权限
  • 没有ttyS4文件,怎样使系统有/dev/ttyS4设备文件?
  • 请教:如何知道在LINUX下设备所对应的文件?
  • 鼠标键盘对应的设备文件?
  • 在linux里键盘有对应的设备文件吗?
  • 一个设备文件能够无限制被打开么?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • UIO(linux Userspace I/O子系统)用户空间设备驱动I/O技术介绍
  • 弱问:一个设备能不能既是字符设备又是块设备?
  • 字符设备驱动,混杂设备驱动,总线、设备、驱动模型、平台驱动
  • 关于设备操作的一点迷惑:计算机如何知道驱动程序要操作的设备正好是指定的设备?
  • 如何根据主设备号打开设备?
  • 怎么知道设备节点对应那个设备?
  • MTD字符设备和块设备有着什么样的关系????
  • 字符型设备驱动生成的块设备
  • 怎么区分字符设备和块设备???????
  • linux2.4如何在设备拔出后将无效的设备节点也删除
  • 内存映射设备后,就可以直接访问设备的片内内存 了(比如显卡的显存)?
  • Linux的设备和设备号是指什么?可否简单的解释一下?
  • Linux设备驱动(第三版)- 字符设备驱动 - 例子
  • linux 启动的时候 可以检查出很多设备 并给设备配以驱动程序
  • 有人在Linux下用过1394接口的设备吗?怎么装载一个1394接口的存储设备呢?
  • linux无法认出USB设备,说设备不响应
  • 块设备与字符设备 怎么回事
  • 一个arm-linux有ppp0设备和eth0设备.怎么做这样的应用.
  • red hat7.3中有没有类似window中的设备管理器?我怎么样才能知道,我的某个设备是否正常工作,如网卡、声卡?
  • 在make xconfig中如何激活PCMCIA设备(记忆卡),PCMCIA设备(快闪记忆卡)?
  • fedora core2下,我删除了网卡设备,然后重新添加,为什么一添加就死机啊?在命令行模式下如何用命令添加网络设备啊?


  • 站内导航:


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

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

    浙ICP备11055608号-3