linux 设备文件属性

20 篇文章 0 订阅

1.

 

cd /dev


设备文件(也叫设备节点)点如下:

  1 char Memory devices

  1 = /dev/mem Physical memory access

  2 = /dev/kmem Kernel virtual memory access

  3 = /dev/null Null device

  4 = /dev/port I/O port access

  5 = /dev/zero Null byte source

  6 = /dev/core OBSOLETE - replaced by /proc/kcore

  7 = /dev/full Returns ENOSPC on write

  8 = /dev/random Nondeterministic random number gen.

  9 = /dev/urandom Faster, less secure random number gen.

 10 = /dev/aio Asynchronous I/O notification interface

 11 = /dev/kmsg Writes to this come out as printk's

 12 = /dev/oldmem Used by crashdump kernels to access

the memory of the kernel that crashed.


2.查看当前已经加载的设备驱动程序的主设备号

 

root@ubuntu:/dev# cat /proc/devices

Character devices:

  1 mem

  4 /dev/vc/0

  4 tty

  4 ttyS

  5 /dev/tty

  5 /dev/console

  5 /dev/ptmx

  5 ttyprintk

  6 lp

  7 vcs

 10 misc

 13 input

 14 sound

 21 sg

 29 fb

 99 ppdev

108 ppp

116 alsa

128 ptm

136 pts

180 usb

188 ttyUSB

189 usb_device

216 rfcomm

226 drm

251 hidraw

252 bsg

253 watchdog

254 rtc

 

Block devices:

  1 ramdisk

  2 fd

259 blkext

  7 loop

  8 sd

  9 md

 11 sr

 65 sd

 66 sd

 67 sd

 68 sd

 69 sd

 70 sd

 71 sd

128 sd

129 sd

130 sd

131 sd

132 sd

133 sd

134 sd

135 sd

252 device-mapper

253 virtblk

254 mdp

 

 

3.主设备号与次设备号的关系,阅读 linux - 3.1_TQ2416\Documentation\devices.txt文件。可以理解为分类,例如猫,然后分成短毛猫,加菲猫等。

 

 例如:主设备号为19(应该是串口设备吧),设备类型是字符设备,次设备号=文件名

 

19     char         Cyclades serial card

                         0 = /dev/ttyC0 First Cyclades port

                          ...

                         31 = /dev/ttyC31 32nd Cyclades port

 14     char         Open Sound System (OSS)

  0 = /dev/mixer Mixer control

  1 = /dev/sequencer Audio sequencer

  2 = /dev/midi00 First MIDI port

  3 = /dev/dsp Digital audio

  4 = /dev/audio Sun-compatible digital audio

  6 =

  7 = /dev/audioctl SPARC audio control device

  8 = /dev/sequencer2 Sequencer -- alternate device

 16 = /dev/mixer1 Second soundcard mixer control

 17 = /dev/patmgr0 Sequencer patch manager

 18 = /dev/midi01 Second MIDI port

 19 = /dev/dsp1 Second soundcard digital audio

 20 = /dev/audio1 Second soundcard Sun digital audio

 33 = /dev/patmgr1 Sequencer patch manager

 34 = /dev/midi02 Third MIDI port

 50 = /dev/midi03 Fourth MIDI port


有上面可以知道为什么要有主设备号和次设备号,为了更好的分类。


3.

类unix系统对设备的访问都是基于文件形式的。

在类unix系统中,你要访问一个硬件设备。一般和访问一个普通文件差不多。

因此,/dev下的设备节点就被作为这样的一类特殊文件来存在。

在驱动程序中同样需要实现各种文件的操作调用,如open,release,read,write,ioctl等。

应用程序通过open("/dev/xxx",O_RDWR)这样的代码来打开设备。

驱动程序通过这样的节点向应用程序提供各种服务:如read,write,ioctl等。

 

一般讲驱动程序开发的书都先讲字符设备驱动,通常是写一个简单的驱动,然后insmod加载模块,mknod创建设备节点。

但是讲到设备文件系统的时候,说2.6内核引进udev设备文件系统,实现动态创建和删除文件节点,就是不用手动去mknod。

为什么就节点,体会一下,例如竹子的节,关节等。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值