linux设备号详解.docx
- 文档编号:7773626
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:9
- 大小:24.99KB
linux设备号详解.docx
《linux设备号详解.docx》由会员分享,可在线阅读,更多相关《linux设备号详解.docx(9页珍藏版)》请在冰豆网上搜索。
linux设备号详解
转载】设备文件简介
linux中的设备有2种类型:
字符设备(无缓冲且只能顺序存取)、块设备(有缓冲且可以随机存取)。
每个字符设备和块设备都必须有主、次设备号,主设备号相同的设备是同类设备(使用同一个驱动程序)。
这些设备中,有些设备是对实际存在的物理硬件的抽象,而有些设备则是内核自身提供的功能(不依赖于特定的物理硬件,又称为"虚拟设备")。
每个设备在/dev目录下都有一个对应的文件(节点)。
可以通过cat/proc/devices命令查看当前已经加载的设备驱动程序的主设备号。
内核能够识别的所有设备都记录在原码树下的documentation/devices.txt文件中。
在/dev目录下除了字符设备和块设备节点之外还通常还会存在:
fifo管道、socket、软/硬连接、目录。
这些东西没有主/次设备号。
$ls-l/dev/rfd0/dev/fd0
brw-r----- 9rootoperator2,0nov1213:
32/dev/fd0
crw-r----- 9rootoperator9,0nov1213:
32/dev/rfd0
可以看到原来显示文件大小的地方,现在改为显示两个用逗号分隔的数字。
这是系统用来表示设备的两个重要的序号,第一个为主设备号(majornumber),用来表示设备使用的硬件驱动程序在系统中的序号;第二个为从设备号(minornumber)。
linux内核所能识别的所有设备都记录在
http:
//www.lanana.org/docs/device-list/
而内核原码树中的documentation/devices.txt可能不是最新版本。
了解这些设备的最基本要求就是对每个设备文件的含义了如指掌,下面就医列表的形式列出常见的设备文件以及相应的含义(比较偏僻的就省略了):
代码:
----------------------------------------------------------------------
主设备号 设备类型
次设备号=文件名 简要说明
----------------------------------------------------------------------
0 未命名设备(例如:
挂载的非设备)
0=未空设备号保留
1char 内存设备
1=/dev/mem 直接存取物理内存
2=/dev/kmem 存取经过内核虚拟之后的内存
3=/dev/null 空设备。
任何写入都将被直接丢弃,任何读取都将得到eof。
4=/dev/port 存取i/o端口
5=/dev/zero 零字节源,只能读取到无限多的零字节。
7=/dev/full 满设备。
任何写入都将失败,并把errno设为enospc以表示没有剩余空间。
8=/dev/random 随机数发生器。
完全由用户的输入来产生随机数。
如果用户停止所有动作,则停止产生新的随机数。
9=/dev/urandom 更快,但是不够安全的随机数发生器。
尽可能由用户的输入来产生随机数,
如果用户停止所有动作,则把已经产生的随机数做为种子来产生新的随机数。
10=/dev/aio 异步i/o通知接口
11=/dev/kmsg 任何对该文件的写入都将作为printk的输出
1block ramdisk
0=/dev/ram0 第1个ramdisk(initrd只能使用ram0)
1=/dev/ram1 第2个ramdisk
...
200=/dev/ram200 第200个ramdisk
4char tty(终端)设备
0=/dev/tty0 当前虚拟控制台
1=/dev/tty1 第1个虚拟控制台
...
63=/dev/tty63 第63个虚拟控制台
4block 如果根文件系统以是以只读方式挂载的,那么就不可能创建真正的设备节点,
此时就使用该设备作为动态分配的主(major)设备的别名
0=/dev/root
5char 其他tty设备
0=/dev/tty 当前tty设备
1=/dev/console 系统控制台
2=/dev/ptmx 所有ptymaster的复用器
7char 虚拟控制台捕捉设备(这些设备既允许读也允许写)
0=/dev/vcs 当前虚拟控制台(vc)的文本内容
1=/dev/vcs1 tty1的文本内容
...
63=/dev/vcs63 tty63的文本内容
128=/dev/vcsa 当前虚拟控制台(vc)的文本/属性内容
129=/dev/vcsa1 tty1的文本/属性内容
...
191=/dev/vcsa63 tty63的文本/属性内容
代码:
7block 回环设备(用一个普通的磁盘文件来模拟一个块设备)
对回环设备的绑定由mount(8)或losetup(8)处理
0=/dev/loop0 第1个回环设备
1=/dev/loop1 第2个回环设备
...
8block scsi磁盘(0-15)
0=/dev/sda 第1个scsi磁盘(整个磁盘)
16=/dev/sdb 第2个scsi磁盘(整个磁盘)
32=/dev/sdc 第3个scsi磁盘(整个磁盘)
...
240=/dev/sdp 第16个scsi磁盘(整个磁盘)
分区表示方法如下(以第3个scsi磁盘为例)
33=/dev/sdc1 第1个分区
34=/dev/sdc2 第2个分区
...
47=/dev/sdc15 第15个分区
对于linux/i386来说,分区1-4是主分区,5-15是逻辑分区。
9block metadisk(raid)设备
0=/dev/md0 第1组metadisk
1=/dev/md1 第2组metadisk
...
metadisk驱动用于将同一个文件系统分割到多个物理磁盘上。
10char 非串口鼠标,各种杂项设备和特性
1=/dev/psaux ps/2鼠标
131=/dev/temperature 机器内部温度
134=/dev/apm_bios apm(高级电源管理)bios
135=/dev/rtc 实时时钟(realtimeclock)
144=/dev/nvram 非易失配置ram
162=/dev/smbus 系统管理总线(systemmanagementbus)
164=/dev/ipmo intel的智能平台管理(intelligentplatformmanagement)接口
173=/dev/ipmikcs 智能平台管理(intelligentplatformmanagement)接口
175=/dev/agpgart agp图形地址重映射表(graphicsaddressremappingtable)
182=/dev/perfctr 性能监视计数器
183=/dev/hwrng 通用硬件随机数发生器
184=/dev/cpu/microcodecpu微代码更新接口
186=/dev/atomicps 进程状态数据的原子快照
188=/dev/smbusbios smbus(系统管理总线)bios
200=/dev/net/tun tap/tun网络设备(tap/tun以软件的方式实现了网络设备)
tap模拟了以太网帧(第二层),tun模拟了ip包(第三层)。
202=/dev/emd/ctl 增强型metadiskraid(emd)控制器
220=/dev/mptctl messagepassingtechnology(mpt)control
223=/dev/input/uinput 用户层输入设备驱动支持
227=/dev/mcelog x86_64machinecheckexceptiondriver
228=/dev/hpet hpetdriver
229=/dev/fuse fuse(用户空间的虚拟文件系统)
231=/dev/snapshot 系统内存快照
232=/dev/kvm 基于内核的虚构机(基于amdsvm和intelvt硬件虚拟技术)
11block scsicd-rom设备
0=/dev/scd0 第1个scsicd-rom
1=/dev/scd1 第2个scsicd-rom
...
代码:
13char 核心输入设备
32=/dev/input/mouse0 第1个鼠标
33=/dev/input/mouse1 第2个鼠标
...
62=/dev/input/mouse30 第31个鼠标
63=/dev/input/mice 所有鼠标的统一
64=/dev/input/event0 第1个事件队列
65=/dev/input/event1 第2个事件队列
...
95=/dev/input/event1 第32个事件队列
21char 通用scsi设备(通常是scsi光驱)
0=/dev/sg0 第1个通用scsi设备
1=/dev/sg1 第2个通用scsi设备
...
29char 通用帧缓冲(framebuffer)设备
0=/dev/fb0 第1个帧缓冲设备
1=/dev/fb1 第2个帧缓冲设备
...
31=/dev/fb31 第32个帧缓冲设备
30char ibcs-2兼容设备
0=/dev/socksys 套接字访问接口
1=/dev/spx svr3本地x接口
32=/dev/inet/ip 网络访问接口
33=/dev/inet/icmp
34=/dev/inet/ggp
35=/dev/inet/ipip
36=/dev/inet/tcp
37=/dev/inet/egp
38=/dev/inet/pup
39=/dev/inet/udp
40=/dev/inet/idp
41=/dev/inet/rawip
此外,ibcs-2还需要下面的连接必须存在
/dev/ip->/dev/inet/ip
/dev/icmp->/dev/inet/icmp
/dev/ggp->/dev/inet/ggp
/dev/ipip->/dev/inet/ipip
/dev/tcp->/dev/inet/tcp
/dev/egp->/dev/inet/egp
/dev/pup->/dev/inet/pup
/dev/udp->/dev/inet/udp
/dev/idp->/dev/inet/idp
/dev/rawip->/dev/inet/rawip
/dev/inet/arp->/dev/inet/udp
/dev/inet/rip->/dev/inet/udp
/dev/nfsd->/dev/socksys
/dev/x0r->/dev/null
代码:
36char netlink支持
0=/dev/route 路由,设备更新,kerneltouser
3=/dev/fwmonitor firewallpacket复制
59char sf防火墙模块
0=/dev/firewall 与sf内核模块通信
65block scsi磁盘(16-31)
0=/dev/sdq 第17个scsi磁盘(整个磁盘)
16=/dev/sdr 第18个scsi磁盘(整个磁盘)
32=/dev/sds 第19个scsi磁盘(整个磁盘)
...
240=/dev/sdaf 第32个scsi磁盘(整个磁盘)
66block scsi磁盘(32-47)
0=/dev/sdag 第33个scsi磁盘(整个磁盘)
16=/dev/sdah 第34个scsi磁盘(整个磁盘)
32=/dev/sdai 第35个scsi磁盘(整个磁盘)
...
240=/dev/sdav 第48个scsi磁盘(整个磁盘)
89char i2c总线接口
0=/dev/i2c-0 第1个i2c适配器
1=/dev/i2c-1 第2个i2c适配器
...
98block 用户模式下的虚拟块设备(分区处理方式与scsi磁盘相同)
0=/dev/ubda 第1个用户模式块设备
16=/dev/udbb 第2个用户模式块设备
...
103block 审计(audit)设备
0=/dev/audit 审计(audit)设备
128-135char unix98ptymaster
这些设备不应当存在设备节点,而应当通过/dev/ptmx接口访问。
136-143char unix98ptyslave
这些设备节点是自动生成的(伴有适当的权限和模式),不能手动创建。
方法是通过使用适当的mount选项(通常是:
mode=0620,gid=)
将devpts文件系统挂载到/dev/pts目录即可。
0=/dev/pts/0 第1个unix98ptyslave
1=/dev/pts/1 第2个unix98ptyslave
...
代码:
153block enhancedmetadiskraid(emd)存储单元(分区处理方式与scsi磁盘相同)
0=/dev/emd/0 第1个存储单元
1=/dev/emd/0p1 第1个存储单元的第1个分区
2=/dev/emd/0p2 第1个存储单元的第2个分区
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 设备 详解