The upper level drivers maintain the kernel side of the OS interface for the logical class of devices they represent (e.g. disks). They are also responsible for managing certain kernel and SCSI subsystem resources such as kernel memory and SCSI command structures. Applications in the user space access these drivers by opening a special file (block or char) typically found in the /dev directory tree.
Two types of SCSI devices are accessible via the sd driver:
"direct access" devices which are usually magnetic disks. [SCSI peripheral device code is 0]
"Optical memory devices" which are often called MOD disks. [SCSI peripheral device code is 7]
The sd driver is a block device which means that it is closely associated with the block subsystem. It also supports the concept of partitions. [man sd dates from 1992.]
The sd driver is capable of recognizing 128 disks when it is loaded at kernel boot time or later as a module. However, once it is loaded, it will only recognize a fixed number of additional disks. The number of additional disks that can be accommodated is set by the kernel configuration parameter CONFIG_SD_EXTRA_DEVS whose default value is 40.