cat /proc/devices
ls -l /proc/devices
cat /proc/devices
Block devices:
259 blkext
7 loop
12 ramdisk
31 mtdblock
179 mmc
blkext:是内核扩展块设备,用来处理分区设备,现代内核用来支持超过传统限制的次设备号,一般不用手动操作,内核底层基础设施.
loop:loop块设备
把普通文件虚拟成一块磁盘
常见用法:mount -o loop xxx.img /mnt,把镜像文件挂载
底层同样走request_queue/bio,和你虚拟内存盘原理几乎一样 .ramdisk 内存盘
在内存里划出一块空间当磁盘,断电数据消失.早年嵌入式经常用它做initramfs临时根文件系统.mtdblock
MTD(Flash)封装出来的块设备.
/dev/mtd0是字符设备,主设备90,裸Flash,没有块层request_queue.mmc
MMC/SD块设备主设备号 = 179
/dev/mmcblk0:整块SD卡,主设备号179,次设备号0
/dev/mmcblk0p1:SD卡第一个分区,主设备号179,次设备号1
所有的mmcblk的IO请求,都会送人MMC驱动的request_queue,走request->bio这套流程