1. 首页 > 经验  > 正文

设备档案系统

设备档案系统

在类Unix作业系统中,设备档案一个设备驱动程式的界面,并被存储在档案系统中,就像常规档案。

基本介绍

中文:设备档案系统领域计算

简介

在微软的MS-DOS、OS-2和Windows等作业系统中,也有专门的设备档案。它们允许应用程式使用设备驱动程式,通过标準输入输出系统调用与驱动程式互动,从而简化了许多任务,也带来了于设备特性、功能无关的用户级I/O。
设备档案通常为周边设备提供简单接口,如印表机。它也可访问这些设备的特定资源,如硬碟分区。它还可以访问没有连线到任何真实设备的系统资源,如数据接受器和随机数生成器。
在类Unix作业系统中包含两类设备节点,分别为字元档案与块档案。它们的区别是作业系统和硬体如何向它们读写数据。它们合称为设备特定档案,与之对应的是命名管道,它既不连线到任何设备,也不是一个档案。
MS-DOS的设备档案借鉴了Unix的特殊档案的概念。MS-DOS的早期版本并不支持档案目录层次,设备档案的档案名称被设定为保留字以区分普通档案,新档案或新目录不能够使用这些设备档案的档案名称。
在支持chroot进程独立的Unix系统(例如Solaris Containers)中,每个chroot环境中常规情况下都需要一个独立的/dev,它们的挂载点在主机的档案系统中各种地方显示。通过限制设备节点只能放入/dev内的chroot实例中,chroot环境可以强制实行硬体隔离(比Unix的档案系统许可权还要严格的一种访问控制,禁可以止特定应用程式访问或命名硬体)。
MS-DOS通过开放设备档案的形式保证了设备包含性,应用程式尝试访问正在被使用的设备时会无法访问设备节点。Unix与Linux在并发控制上採取了多种设备驱动程式的原理

实现

本质上讲,设备节点对应于作业系统分配的资源。Unix通过存放于节点结构中的主设备号从设备号识别这些资源。在各种作业系统和系统平台上,这些数都是被唯一分配的。通常,主数用于指定驱动程式,而次数用于指定驱动程式控制的某一特定设备(驱动程式可能控制多个设备),在这种情况下,系统可能把次数作为参数传给驱动程式。
计算机就像对待普通档案那样,用标準系统调用访问设备节点。根据硬体的接口类型和作业系统处理输入输出的方式,设备档案可以分成两类。

设备

字元设备

字元设备是指每次与系统传输1个字元的设备。这些设备节点通常为传真、虚拟终端和串口数据机之类设备提供流通服务,它通常不支持随机存取数据。
字元设备在实现时,大多不使用快取器。系统直接从设备读取/写入每一个字元。

块设备

块设备是指与系统间用块的方式移动数据的设备。这些设备节点通常代表可定址设备,如硬碟、CD-ROM和记忆区域
块设备通常支持随机存取和定址,并使用快取器。作业系统为输入输出分配了快取以存储一块数据。当程式向设备传送了读取或者写入数据的请求时,系统把数据中的每一个字元存储在适当的快取中。当快取被填满时,会採取适当的操作(把数据传走),而后系统清空快取。

伪设备

在类Unix作业系统中,设备节点并不一定要对应物理设备。没有这种对应关係的设备是伪设备。作业系统运用了它们提供的多种功能。部分经常使用到的伪设备包括
/dev/null接受并丢弃所有输入;即不产生任何输出。
/dev/full永远在被填满状态的设备。
/dev/loopLoop设备
/dev/zero产生连续的NUL字元的串流(数值为0)。
/dev/random产生一个虚假随机的任意长度字元串流。(Blocking)
/dev/urandom产生一个虚假随机的任意长度字元串流。(Non-Blocking)

创建节点

节点是由mknod系统调用创建的。在命令行中,有同名的程式来创建节点。rename和unlink系统调用可以用于移动和删除节点,相应的命令是mv和rm。在使用cp命令时加上-R或-a参数,可以创建一个与原设备节点具有同样属性的节点。

命名约定

在基于Linux的系统中,设备节点一般在/dev下,通常使用如下的前缀:
fb:frame缓冲
fd:软碟
hd:IDE硬碟
lp:印表机
par:并口
pt:伪终端
s:SCSI设备
scd:SCSI音频光碟机
sd:SCSI硬碟
sg:SCSI通用设备
sr:SCSI数据光碟机
st:SCSI磁带
tty:终端
ttyS:串口
大部分设备的前缀名后面跟随一个数字,它唯一指定某一设备。硬碟驱动器的前缀名后面跟随一个字母和一个数字,字母用于指明设备,而数字用于指明分区。因此,/dev/sda3指定了硬碟上的一个分区,/dev/pts/14指定了一个网路终端会话。
一些Linux发行版用SCSI层访问所有固定硬碟,因此虽然一块硬碟可能并不是SCSI硬碟,但仍可以通过sd设备访问它。

本文由'沙凌丝'发布,不代表演示站立场,转载/删除联系作者,如需删除请-> 关于侵权处理说明