设备档案系统

设备档案系统【设备档案系统】在类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)