博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux设备节点
阅读量:2341 次
发布时间:2019-05-10

本文共 1343 字,大约阅读时间需要 4 分钟。

        日前,在学习android的时候经常遇到XXXX节点,于是现在参考:http://blog.csdn.net/Bestrem_9/archive/2009/03/19/4004335.aspx(还有其他文献)将节点的概念总结如下:

        节点的概念是设备管理需要的。

        Linux 中的设备有2种类型:字符设备(无缓冲且只能顺序存取)、块设备(有缓冲且可以随机存取)。每个字符设备和块设备都必须有主、次设备号,主设备号相同的设备是同类设备(使用同一个驱动程序)。这些设备中,有些设备是对实际存在的物理硬件的抽象,而有些设备则是内核自身提供的功能(不依赖于特定的物理硬件,又称为"虚拟设备")。每个设备在 /dev 目录下都有一个对应的文件(节点)。可以通过 cat /proc/devices 命令查看当前已经加载的设备驱动程序的主设备号。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

        在一个系统里,硬件描述通常用法就是一个设备对应一个术语,包括磁盘、打印机、显卡和键盘。当 FreeBSD 启动过程中,大多数的设备都能探测到并显示出来, 您也可以查阅/var/run/dmesg.boot, 引导时所有信息都在里面。

  例如, acd0 就是 首个 IDE 光盘设备, 而 kbd0 则代表键盘。

  在UNIX®操作系统里,大多数设备存在的特殊访问文件就是叫做设备节点,他们都定位在/dev目录里。

        当在系统中添加新设备或将附加设备的支持编译进内核之后,都必须为其建立设备节点。

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

        我们在刚开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在卸载模块时删除该节点,当然前提条件是用户空间移植了udev。

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

        最后,设备管理和驱动的编写都要理解节点的概念。

 

 

你可能感兴趣的文章
命令行上的Node.js版本? (不是REPL)
查看>>
你什么时候使用Builder模式? [关闭]
查看>>
在jQuery中每5秒调用一次函数的最简单方法是什么? [重复]
查看>>
Angular 2+中的ngShow和ngHide等效于什么?
查看>>
如何将Java String转换为byte []?
查看>>
@Transactional注释在哪里?
查看>>
找不到Gradle DSL方法:'runProguard'
查看>>
AngularJS ngClass条件
查看>>
连字符分隔的大小写是什么? [关闭]
查看>>
为什么Java中没有SortedList?
查看>>
在Go中表示枚举的惯用方法是什么?
查看>>
如何在本地运行travis-ci
查看>>
模板中关键字“ typename”和“ class”的区别?
查看>>
在React中显示或隐藏元素
查看>>
暂存已删除的文件
查看>>
为什么需要在脚本文件的开头加上#!/ bin / bash?
查看>>
ReactJS-每次调用“ setState”时都会调用渲染吗?
查看>>
如何在Ubuntu上安装Boost
查看>>
如何在变更事件中使用广播?
查看>>
如何解决错误:使用nodejs时监听EADDRINUSE?
查看>>