复杂度3/5
机密度3/5
最后更新2021/04/17
要解释这个问题,我们要倒过来看。
首先,AIX是一个Unix变种,也就是所有的设备管理和操作都是基于文件的。文件操作有5大基本操作和一个控制操作:open/close, read/write, seek,这些是基本操作;ioctl是控制操作。(最新的一些Unix,例如Linux已经有趋势把ioctl打包到read/write操作里面,AIX还是比较老的方案)所有的设备,无论是真实的,虚拟的,物理的,逻辑的,都至少有一个文件与之对应,通常这个文件在/dev下保存,供用户操作。
此处插播一下,这个文件是设备驱动程序搞出来,为方便使用和管理而创造,并不是必须的,你当然可以不用简单的文件操作去访问、控制这个设备,而直接操作该设备的驱动程序。其实,对这个文件操作也会被AIX内核管理转换为对应的设备驱动程序操作,这个对应关系就是Major / Minor Number,以后有专门的章节介绍。
有了这个设备文件的概念之后,介绍AIX中VG, LV, Disk, SCSI, Device这些东西之间的关系就比较容易理解了。贯穿这些东西,或者叫做逻辑设备的核心是SCSI CDB:scsi command descriptor block。对任何SCSI(类)设备操作,都会把命令打包为CDB格式,这是一个定长的结构(块),具体内容就不在这分析了,只是说它包含了目标设备标识,读或写,目标数据位置(数据在目标设备的偏移量,以设备自身块为单位),源数据位置ÿ