一、知识准备
1、在linux中,一切皆为文件,所有不同种类的类型都被抽象成文件(比如:块设备,socket套接字,pipe队列)
2、操作这些不同的类型就像操作文件一样,比如增删改查等
3、块设备是将信息存储在大小固定的块中,每一个块都有自己的地址,块设备支持随机访问。典型的块设备比如我们使用的硬盘
二、环境准备
| 组件 | 版本 | 
|---|---|
| OS | Ubuntu 16.04.4 LTS | 
三、主设备号(major)与次设备号(minor)
● 当一块磁盘被注册到操作系统的时候,会被分配主设备号与次设备号
● 其中主设备号代表了该设备属于的类型,次设备号代表了该设备在操作系统中的唯一标识
主设备号
root@Bastion:~# ls -l /dev/sd* brw-rw---- 1 root disk 8,  0 9月  30 17:47 /dev/sda brw-rw---- 1 root disk 8,  1 9月  30 17:47 /dev/sda1sda的主设备号是8,代表了sda这块磁盘是属于8这个类型的,那8是什么类型的?
root@Bastion:~# grep 8 /proc/devices 108 ppp 128 ptm 248 pps   8 sd在/proc/devices告诉我们,8是属于sd类型的,那sd又是啥意思?
打开 https://www.kernel.org/doc/Documentation/admin-guide/devices.txt
   8 block  SCSI disk devices (0-15)           0 = /dev/sda      First SCSI disk whole disk          16 = /dev/sdb      Second SCSI disk whole disk          32 = /dev/sdc      Third SCSI disk whole disk             ...         240 = /dev/sdp      Sixteenth SCSI disk whole disk          Partitions are handled in the same way as for IDE         disks (see major number 3) except that the limit on         partitions is 15.终于清楚的看到,8这个类型代表了块设备,并且是SCSI 硬盘
次设备号
由于/dev/sda做了1个分区/dev/sda1,再加上原有的/dev/sda,操作系统内核给二者打上了唯一的标记:8,0 代表了/dev/sda8,1 代表了/dev/sda1
小结一下:
主设备号:代表着某一类型的设备,比如SCSI硬盘、虚拟硬盘、USB等等
次设备号:操作系统分配的整数,与主设备号一起(major,minor),组成了该设备在操作系统当中唯一的ID
四、块设备文件
