当前位置: 技术问答>linux和unix
Linux的设备和设备号是指什么?可否简单的解释一下?
来源: 互联网 发布时间:2017-01-15
本文导语: 在/dev目录下,有一些文件。这些文件是否可以理解为具体设备的映射? 那么我怎么使用这些设备呢?假设其中一个设备是显示器的话,我怎么向设备上显示一个字符或者一个图片呢?是不是找到这个设备对应的.h文...
在/dev目录下,有一些文件。这些文件是否可以理解为具体设备的映射?
那么我怎么使用这些设备呢?假设其中一个设备是显示器的话,我怎么向设备上显示一个字符或者一个图片呢?是不是找到这个设备对应的.h文件,然后根据声明调用特定的api即可呢?
设备号又是指什么呢?在android系统介绍中说,ashmem是匿名共享内存,设备设点为/dev/ashmem,主设备号是10,次设备号动态生成,这个到底是什么东西?怎么用?
求简单的解释并介绍一下。感谢。
那么我怎么使用这些设备呢?假设其中一个设备是显示器的话,我怎么向设备上显示一个字符或者一个图片呢?是不是找到这个设备对应的.h文件,然后根据声明调用特定的api即可呢?
设备号又是指什么呢?在android系统介绍中说,ashmem是匿名共享内存,设备设点为/dev/ashmem,主设备号是10,次设备号动态生成,这个到底是什么东西?怎么用?
求简单的解释并介绍一下。感谢。
|
+1
|
主设备号就好比你的电话的区号,次设备号就是你电话的号码(虽然没这么多),说白了,就是个ID
对于使用设备节点来说,你把他当做是个文件就对了,读写文件
对于 是不是找到这个设备对应的.h文件,然后根据声明调用特定的api即可呢? 这个问题
答案应该是不可以,设备驱动程序实现的操作是内核态的,内核函数不能叫api吧?你应该使用用户态的api
个人拙见,错了勿怪
对于使用设备节点来说,你把他当做是个文件就对了,读写文件
对于 是不是找到这个设备对应的.h文件,然后根据声明调用特定的api即可呢? 这个问题
答案应该是不可以,设备驱动程序实现的操作是内核态的,内核函数不能叫api吧?你应该使用用户态的api
个人拙见,错了勿怪
|
可以这样认为是设备的映射.
字符设备,块设备用标准的C库API来访问:fopen()等. 访问网络设备得用socket.
设备号是系统对设备的一个标识而已,就像人的身份证, 只能是惟一的.
|
设备号,你写驱动的时候随意写好了。只要不要和别的设备重了
|
主从设备号就是计算机认识设备的一种方式, 其实如果愿意可以分更多的层, 只不过linux的作者没这么办而已
,作为人类,其实通常是用/dev下的文件名操作设备的
,作为人类,其实通常是用/dev下的文件名操作设备的