




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
dev设备详解博客分类: linuxLinux网络应用Unix应用服务器数据结构设备文件系统/dev(整理自维基百科)-在类Unix操作系统中,设备文件系统允许软件通过标准输入输出系统调用与驱动程序交互,从而简化了许多任务。设备文件系统包括设备文件、设备节点、设备特定文件,它们是驱动程序的接口,而在文件系统中,它们就像是普通文件。在微软的MS-DOS和Windows等操作系统中,也有专门的设备文件。设备文件通常为周边设备提供简单的接口,如打印机。它也可访问这些设备的特定资源,如硬盘。它还可以访问没有连接到任何真实设备的系统资源,如数据接受器和随机数发生器。MS-DOS的设备文件借鉴了Unix的特殊文件的概念。MS-DOS的早期版本并不支持文件目录层次,设备文件的文件名被设定为保留字以区分普通文件,新文件或新目录不能够使用这些设备文件的文件名。在类Unix操作系统中包含两类设备节点,分别为字符文件与块文件。它们的区别是操作系统和硬件如何向它们读写数据。它们合称为设备特定文件,与之对应的是命名管道,它既不连接到任何设备,也不是一个文件。-实现本质上讲,设备节点对应于操作系统分配的资源。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设备访问它。-关于/dev/zero在类UNIX 操作系统中, /dev/zero 是一个特殊的文件,当你读它的时候,它会提供无限的空字符(NULL, ASCII NUL, 0x00)。其中的一个典型用法是用它提供的字符流来覆盖信息,另一个常见用法是产生一个特定大小的空白文件。BSD就是通过mmap把/dev/zero映射到虚地址空间实现共享内存的。可以使用mmap将/dev/zero映射到一个虚拟的内存空间,这个操作的效果等同于使用一段匿名的内存(没有和任何文件相关)。下面的方法可以用于破坏分区数据:# 请不要执行下列代码,除非你试图破坏分区上的全部数据!dd if=/dev/zero of=/dev/创建一个名为foobar大小为1 MiB的文件,以0填充:dd if=/dev/zero of=foobar count=1024 bs=1024与/dev/null类似,/dev/zero也可以作为一个数据源或数据池,所有写往/dev/zero将返回成功,没有其他影响,/dev/null也是一样,但是作为数据池更常用。所有对/dev/zero的读操作,将返回请求数目的NUL字节.-关于/dev/full类Unix系统中,/dev/full,或常满设备是一个特殊设备文件,总是在向其写入时返回设备无剩余空间(错误码为ENOSPC),读取时则与/dev/zero相似,返回无限的空字符(NULL, ASCII NUL, 0x00)。这个设备通常被用来测试程序在遇到磁盘无剩余空间错误时的行为。$ echo Hello world /dev/fullbash: echo: write error: No space left on device-关于/dev/random1994年,曹予德第一次在Linux的内核空间中实现了随机数发生器12。 该实现使用了SHA-1散列算法,而不是密码,以避免随机数产生器编码地的法律限制。该实现在设计时,假定任意给定的散列或密码最终都可能被发现是弱的,因此它可以耐受任意形式的这些弱点。在这个实现中,发生器保存了来自熵池中噪声的数据位数的估计值,而随机数是从该熵池中创建的。在读取时,/dev/random设备只会返回熵池中噪声数据中的随机字节。/dev/random应当可以适用于要求非常高质量随机性的应用,例如产生公钥或一次性密码本。若熵池空了,对/dev/random的读操作将会被阻塞,直到收集到了足够的环境噪声为止3。这样的设计使得/dev/random是真正的随机数发生器,提供了最大可能的随机数据熵,建议用于产生保护高价值或长保护周期的密钥。/dev/random的一个副本是/dev/urandom (unlocked,非阻塞的随机数发生器4),它会重用内部池中的数据以产生伪随机数据。这表示对/dev/urandom的读取操作不会产生阻塞,但其输出的熵可能小于/dev/random的。该设备文件是设计用于密码学安全的伪随机数发生器的,可以用于安全性较低的应用。/dev/random也允许写入,该操作允许任意用户向池中加入随机数据。即使写入非随机数据亦是无害的,因为只有管理员可以调用ioctl以增加熵池大小。Linux内核中当前熵的值和大小可以通过访问/proc/sys/kernel/random/得到。2006年3月,Gutterman,Pinkas和Reinman发表了对Linux随机数发生器的详细密码学分析5,其中提出了该发生器的几个弱点。也许其中最严重的问题发生在嵌入式系统和Live CD系统,类似路由器和无盘工作站中的应用。在这些系统中,引导状态是可预测的,且环境熵的来源也较为受限。对于有NVRAM的系统,他们建议在关机时保存一部分随机数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025企业合同风险防范与管理的法律策略研究
- 2025有效授权的区域代理合同范本
- 2025物流配送驾驶员合同协议书
- 2025年医学客服考试题目及答案
- 鹰潭自建房图纸施工方案
- 2025年河南公考真题试卷及答案
- 银川彩钢净化板施工方案
- 大连市招募高校毕业生基层服务岗位计划人员考试真题2024
- 2025种苗购销合同
- 水电使用维护方案范本
- 2025年合肥市社会化工会工作者招聘34人笔试备考试题及答案解析
- 非婚生子女法律抚养权协议范本
- 2025年新版中层副职面试题及答案
- 蜂窝组织炎护理小讲课
- 化工企业物料编码规则培训课件
- 粉条检测报告
- 污水处理厂污泥处理处置投标方案
- 车灯LED封装DFMEA范例
- 《全国医疗服务价格项目规范》(2022版)
- 2023年贵州茅台机场第二次招聘笔试参考题库附带答案详解
- 【告知牌】污水池有限空间作业告知牌模版
评论
0/150
提交评论