首页 > 编程知识 正文

udev满了,maobv怎么设置

时间:2023-05-03 10:38:31 阅读:46492 作者:1609

原创文章,转载请注明出处。 谢谢你!

作者:感性之花,博客名称:飞上天空静静穿行

从Linux 2.5内核开始,系统中的所有物理和虚拟设备都通过sysfs以一种体系结构显示在用户空间中。 当设备加入或从系统中删除时,/sbin/hotplug会通知用户空间。 这两个特点为/dev目录中的用户空间提供了非常灵活和方便的命名机制。 为什么udev位于用户空间中,这是因为相对于以前替换了udev的devfs,devfs基于内核机制,而udev基于用户空间。

根据udev文档,udev相对于devfs具有以下优点:

1、对设备的永久命名(这将在后面说明: )。

2、通知外部系统设备发生变化。

3、灵活的设备命名策略。

4、运行内核动态使用主次设备号(见下文)。

5、命名机制可以脱离内核。

一、系统里的设备的主次设备号

首先,让我们看看/dev目录中有什么。

任何使用过linux的人都知道/dev目录中包含系统中的各种设备文件。 每个设备都对应一个设备文件,但我们通过此设备文件访问和使用此设备。 例如,如果有两个sata硬盘,则/dev目录中可能会有/dev/sda和/dev/sdb这样的设备文件。 或者,如果您的硬盘是IDE,则可能是/dev/hda或/dev/hdb。

来,让我们看看什么是主次设备号。

使用设备时,在/dev下的设备文件中使用该文件。 例如,如果要从第一个硬盘驱动器读取扇区字节,请首先调用open打开/dev/hda,然后使用read读取,但不使用设备名称。 我们的系统通过主设备号和辅助设备号识别和操作设备。

我的系统是ubuntu9.10。 我有两个sata硬盘和两个SATA USB便携式硬盘。 在/dev/目录中,运行ls -l查看我们的设备,了解情况。 以下是我的设备截图的一部分。

正如您看到的,我的sda的主设备号是8,辅助设备号是0,sdb、sdc和sdd硬盘的主设备号分别是8:1、8:32和8:48,sda1是分区为什么会有这样的主次设备号码呢? 这是怎么定义的呢? 各种设备的优先设备编号应该由linuxassignednamesandnumbersauthority (lanana )定义。 当前定义是这里的URL (http://www.lanana.org/docs/device-list/devices-2.6.txt )。 看看吧。 这是09年4月的最新。 看看这张表吧。 找到了第8个项目。 查看以下内容并粘贴。 (为了方便,接下来称为这种时尚的裙子定义表。 )

8区块scsidiskdevices (0- 15 ) )。

0=/dev/sdafirstscsidiskwholedisk

16=/dev/sdbsecondscsidiskwholedisk

32=/dev/sdcthirdscsidiskwholedisk

.

240=/dev/sdpsixteenthscsidiskwholedisk

partitionsarehandledinthesamewayasforide

磁盘(seemajornumber3) except that the limit on

分区is 15。

可见,第八项定义是块设备,scsidiskdevices(SCSI硬盘设备),后面的)0-15表示可以装载0-15个16个SCSI硬盘驱动器。 可以看到每个硬盘都有16个分区。 也就是说,8:0是/dev/sda,8:1是/dev/sda1.8:16是/dev/sdb . 比较我们前面的图就知道设备的主要设备号了。 啊。 有关其他设备的主设备号和辅助设备号,请参阅表的其他部分。

linux通过这些主设备号访问和操作这些设备。 在Linux 2.4之前的内核中,主设备号为1-255,子设备号也在1-255的范围内,但添加新设备显然不够,因此在2.6内核之后扩展了主设备号。 我们可以看到上述定义表。 255后面有---LARGE MAJORS! ---还有其他必须在系统上的链接等。

文章: 《udev A Userspace Implementation of devfs》

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。