我们就在当前位置创建出一个与 /dev/hda一样的、可以访问第一个IDE设备主硬盘的文件,文件名叫做harddisk。
使用下面命令可以查看设备编号:
#file /dev/hda
/dev/hda: block special (3/0)
|
其中Block代表/dev/hda是系统的Block型(块型)设备文件,它的主设备编号为3,辅设备编号为0。
#ls -l /dev/hda /dev/hdb
brw-rw---- 1 root disk 3, 0 Sep 15 2003 /dev/hda
brw-rw---- 1 root disk 3, 64 Sep 15 2003 /dev/hdb
|
使用ls -l也可以看到设备编号,/dev/hdb代表第一个IDE接口的从设备(Slave)也是Block设备,编号为(3/64),还有另外一种设备文件是/dev/tty*。使用如下命令:
#echo "hello tty1" > /dev/tty1
|
将字符串“hello tty1”输出到/dev/tty1代表的第一个虚拟控制台上,此时按“Alt + F1”可以看到该字符出现在屏幕上,这个特殊的文件就代表着我们的第一虚拟控制台。
#file /dev/tty1
/dev/tty1: character special (4/1)
|
由上可以看到,它的类型为Character 型(字符型)设备文件,主设备号为4,辅设备号为1。同样,/dev/tty2代表着第二个虚拟控制台,是Character设备,编号为 (4/2)。
当将/dev/cdrom加载到/mnt/cdrom中时,只要访问/mnt/cdrom系统就会自动引入到/dev/cdrom对应的驱动程序中,访问实际的数据。
有关设备文件的编号可以看内核文档/usr/src/linux-2.*/Documentation/devices.txt 文件(在Kernel的源文件解包后的Documentation目录中),其中详细叙述了各种设备文件编号的意义。
3.使用/proc目录中的文件监视驱动程序的状态
通过设备文件怎样访问到相应的驱动程序呢?它们中间有一个桥梁,那就是proc文件系统,它一般会被加载到/proc目录。访问设备文件时,操作系统通常会通过查找/proc目录下的值,确定由哪些驱动模块来完成任务。如果proc文件系统没有加载,访问设备文件时就会出现错误。
Linux系统中proc文件系统是内核虚拟的文件系统,其中所有的文件都是内核中虚拟出来的,各种文件实际上是当前内核在内存中的参数。它就像是专门为访问内核而打开的一扇门,比如访问/proc/cpuinfo文件,实际上就是访问目前的CPU的参数,每一次系统启动时系统都会通过 /etc/fstab中设置的信息自动将proc文件系统加载到/proc目录下:
# grep proc /etc/fstab
none /proc proc defaults 0 0
此外,也可以通过mount命令手动加载:
# mount -t proc none /proc
|
通过/proc目录下的文件可以访问或更改内核参数,可以通过/proc目录查询驱动程序的信息。下面先让我们看一下/proc目录中的信息:
# ls /proc
1 4725 5032 5100 5248 5292 crypto kcore partitions
14 4794 5044 5110 5250 5293 devices kmsg pci
2 4810 5075 5122 5252 5295 dma ksyms self
3 4820 5079 5132 5254 5345 driver loadavg slabinfo
4 4831 5080 5151 5256 6 execdomains locks stat
4316 4910 5081 5160 5258 7 fb lvm swaps
4317 4912 5082 5170 5262 70 filesystems mdstat sys
|
|