SCSI子系统总是被编译到Linux内核的,其初始化入口函数为init_scsi,在文件drivers/scsi/scsi.c中。它使用宏subsys_initcall定义,依次调用:
• scsi_init_queue——初始化聚散列表等所需要的存储池;
• scsi_init_procfs——初始化proc文件系统中与SCSI有关的目录项;
• scsi_init_devinfo——设置SCSI动态设备信息列表;
• scsi_init_hosts——注册shost_class类,这将在sys/class/目录下创建scsi_host子目录;
• scsi_init_sysctl——注册SCSI系统控制表;
• scsi_sysfs_register——注册SCSI总线类型以及sdev_class类;
• scsi_netlink_init——初始化SCSI传输netlink接口,netlink是Linux内核与用户空间进行通信的一种机制。



