分享
 
 
 

漫谈 Unix 中的设备文件

王朝system·作者佚名  2006-04-18
窄屏简体版  字體: |||超大  

[ 设备文件 ]

UNIX具有一种统一的、优美的访问硬件的方法。 在UNIX中,每一个硬件设备都被看作是一个文

件。为了说明这个问题,我们来做如下的演示,查看 /dev/hda 这个设备文件:

less -f /dev/hda

其实,/dev/hda 并不是一个文件,当我们读取这个设备文件的时候,实际情况是我们直接访问

了电脑的第一个物理硬盘。如同大家熟知的那样,/dev/hda 是一个设备文件,所有的设备文件

都是位于/dev目录下的。

设备文件可以用来访问硬件,如果你安装了一个声卡并且做好了设定,你可以做下面的尝试:

cat /dev/dsp > my_recording

然后对着麦克风说些什么,接着敲入下面的命令:

cat my_recording > /dev/dsp

这会将你刚才说的内容透过扬声器播放出来。(注意:这样的操作不是都会正常工作的,有可能

是录音的音量没有设定正确,也有可能记录的帧数不正确。)

如果你的鼠标目前未被任何程序占用,你也可以作如下的尝试:

cat /dev/mouse

这时,如果你移动鼠标,鼠标控制协议的命令内容会直接显示在你的屏幕上 (看上去像是一些垃

圾数据),这是一种非常简洁的方式,可以来判断你的鼠标是否工作正常。

在一些比较低的层面,程序常以2种基本的方式来访问设备文件:

1) 读写设备文件来发送或是接收大批的数据 (比如类似前文提到的less和cat)

2) 使用C ioctl (IO Control) 函数来设定设备 (以声卡来说,可能是设置单声道或是立体声,

记录的速度等等)

因为每种我们能够列举出来的设备,都可以被转换来适应上面的2种操作模式(网卡除外). 这种模

式从一开始就延续到现在,可以说是访问硬件设备的通用方法了。

[块设备和字符设备]

硬件设备通常会有2种分类,类似象硬盘和磁带这样的我们叫做随机访问设备,类似像鼠标、声卡、

终端机这样的我们称之为串行设备。

另一种说法:字符设备是不通过缓存进行访问的系统组件或是外围设备(比如以太网卡或是打印机)

随机访问设备常用来读取保存在持久介质上的大量的相互毗邻的数据块. 这些数据是从分散的单元

中读取出来的(大多数情况下是磁盘,每次读取1024个字节),这些就是我们所说的块设备。

执行ls -l /dev/hda命令将会显示出你的硬盘是一个设备文件,它们在长格式下列出的时候在

最左边是以b开头的:

brw-r----- 1 root disk 3, 64 Apr 27 2005 /dev/hdb

另一方面,串行设备则是每次读取一个字节,且数据是被独占的。例如,当一个字节的数据从鼠标

设备被某个程序读取时,其他程序是无法读取的。在ls -l表示的详细列表中,字符设备是以c开

头的。你的 /dev/dsp (数字信号处理器,-- 比如声卡)设备看起来类似:

crw-r--r-- 1 root sys 14, 3 Jul 18 2005 /dev/dsp

[主次设备号]

设备被划分出来的类别叫做主设备号,举例来说,所有的SCSI磁盘的主设备号为8。更进一步来说,

每一个单独的设备拥有一个次设备号,好比 /dev/sda,它的从设备号就是0。主次设备号用来作

为面向内核的设备标识符。

一句话:major number用来识别设备类别,而minor number用来区别每一个设备类型中的某个

具体的设备。

设备的文件名实际上只是按照约定和命名规范给出的一些缩写,我们可以通过下面的方式来查看主

次设备号:

ls -l /dev/sda

brw-rw---- 1 root disk 8, 0 May 5 2005 /dev/sda

这里的(8, 0)就是主次设备编号。

未完,待续...

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有