Chinaunix首页 | 论坛 | 博客
  • 博客访问: 570339
  • 博文数量: 80
  • 博客积分: 2393
  • 博客等级: 大尉
  • 技术积分: 1434
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-03 21:46
个人简介

己所不欲勿施于人!

文章分类

全部博文(80)

文章存档

2017年(1)

2016年(9)

2014年(1)

2013年(17)

2012年(5)

2011年(13)

2010年(9)

2009年(8)

2008年(17)

分类: LINUX

2012-07-17 07:40:08

在unix/linux系统中,一切都是文件。所有硬盘、软盘、键盘等设备都用文件来代表,对应着/dev下面的文件。对于应用程序来说,可以像对待普通文件一样打开,关闭、读写这些设备文件。

但是这种文件名,比如/dev/sda、/dev/raw/raw1都是用户空间名称,OS Kernel根本不知道这个名称指的是什么。在内核空间是通过major、minor device number 来区分设备的。

       major device number可以看作是设备驱动程序,被同一设备驱动程序管理的设备有相同的major device number.这个数字是几时Kernel中device driver table 的索引,这个表保存着不同设备驱动程序。

       而minor device number用来代表被访问的具体设备。也就是说Kernel根据major device number 找到设备驱动程序,然后再从minor device number 获得设备位置等属性。

        所有这些major device number 是已经预先分配好的。

        比如裸设备是162,scsi块设备是8

clipboard

        在我的系统中,raw1 的major、minor device number 分别是162,1

clipboard[1]

         而raw1绑定到 major8,minor 17

clipboard[2]

          我们看到major 8,minor 17 对应的是 sdb1.

阅读(4300) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~