408考研逐题详解:2009年第32题

2009年第32题

程序员利用系统调用打开 I/O 设备时,通常使用的设备标识是( )

A. 逻辑设备名 \qquad B. 物理设备名 \qquad C. 主设备号 \qquad D. 从设备号

解析

本题主要考查的是对选项中四个术语的理解,以下是对它们的详细解释(示例是基于 Unix/Linux 系统的设备管理机制):

A. 逻辑设备名

逻辑设备名是操作系统为方便用户或应用程序访问设备而抽象出的名称,不直接对应物理硬件的物理属性,而是通过逻辑映射关联到物理设备。它通常用于屏蔽底层硬件差异,提供统一的访问接口。其特点是:

  • 抽象性:不依赖硬件物理特性,而是根据功能、配置或用户定义命名。例如:

    • 在 Linux 中,通过逻辑卷管理(LVM)创建的卷(如 /dev/mapper/vg0-lv0)是逻辑设备名,对应物理磁盘上的逻辑卷。

    • 系统通过符号链接(如 /dev/disk/by-label/ROOT)为设备分配易读的逻辑名称,指向实际物理设备(如 /dev/sda1)。

  • 动态性:可通过软件配置随时创建、删除或修改,与物理硬件的物理连接无关。

B. 物理设备名

物理设备名是直接关联硬件物理属性的名称,反映设备在系统中的物理连接或硬件标识,通常由系统内核根据设备的物理特性(如总线类型、硬件地址)自动分配。其特点是:

  • 硬件相关性:名称直接对应设备的物理存在,如硬盘、光驱、USB 设备等。例如:

    • 在 Linux 中,/dev/sda 表示第一个 SATA 硬盘(sda 中的 a 表示物理连接顺序),/dev/nvme0n1 表示第一个 NVMe 固态硬盘。

    • 串口设备 /dev/ttyS0、USB 设备 /dev/usb/hiddev0 等也属于物理设备名。

  • 稳定性:通常在系统启动时根据硬件枚举结果固定,但可能因硬件插拔或启动顺序改变而变化(除非通过 UUID 等机制固定)。

C. 主设备号

主设备号是 Unix/Linux 系统中用于标识设备类型的整数标识符,对应设备驱动程序。同一类设备(如所有硬盘、所有串口)共享相同的主设备号,内核通过主设备号找到对应的驱动程序处理设备请求。其作用是:

  • 驱动匹配:主设备号是内核区分设备类型的关键。例如:

    • 硬盘(SCSI/SATA)的主设备号为 8,软盘为 2,字符设备(如串口)的主设备号为 4。

    • 查看主设备号:通过 ls -l /dev/sda 命令,输出中的第一列数字即为主设备号(如 8)。

  • 历史背景:早期 Unix 系统中,主设备号范围为 0~255,现代 Linux 扩展至 0~65535,但仍通过 /proc/devices 文件管理已注册的主设备号。

D. 从设备号

从设备号是 Unix/Linux 系统中用于标识同一类型设备中的具体实例或分区的整数标识符,与主设备号共同构成设备文件的唯一标识。其作用是:

  • 设备实例区分:

    • 对于存储设备,从设备号用于标识具体分区。例如:/dev/sda(主设备号 8,从设备号 0)是整个硬盘,/dev/sda1(从设备号 1)是第一个分区,/dev/sda2(从设备号 2)是第二个分区。

    • 对于总线设备(如 USB 设备),从设备号可能标识同一总线上的不同设备实例。

  • 内核处理:内核通过从设备号确定操作的具体设备实例,驱动程序根据从设备号执行针对性操作(如读写特定分区)。

将以上术语比较如下:

术语核心作用典型示例(Linux)
逻辑设备名提供用户友好的抽象名称,屏蔽硬件细节/dev/mapper/vg0-lv0、/dev/CDROM
物理设备名标识硬件物理存在,基于设备连接顺序或硬件地址/dev/sda、/dev/nvme0n1
主设备号标识设备类型,关联驱动程序硬盘主设备号 8,串口主设备号 4
从设备号标识同一类型设备中的具体实例或分区/dev/sda1 的从设备号 1

对于 Windows 系统而言,也有“逻辑设备名”“物理设备名”术语,只是具体实现方式与 Linux 不同;但没有“主设备号”和“从设备号”两个术语,类似功能由其他机制替代了。

本题虽然没有明确说明按照哪种操作系统回答,但题干要求是“程序员利用系统调用打开 I/O 设备”,显然该标识应该对“人”友好,所以应为“逻辑设备名”。

本题答案:A

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CS创新实验室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值