| |||||||||
Drive letter assignment is the process of matching volumes (active primary partitions and logical partitions) to letters in the root namespace of a file system as seen by a Microsoft operating system. The concept of drive letters might have originated in the CP/M operating system, in imitation of the device prefixes in the RSX-11 and VMS operating systems. However, IBM's VM/CMS, an even earlier operating system, also had drive letters, identifying minidisks attached to a user session; a full pathname would be composed of a filename, filetype and disk letter called filemode.
Unlike the concept of Unix mount points, where the user can create directories of arbitrary name and content in the root namespace, drive letter assignment implies that only letters are in this namespace, and they represent solely volumes. In other words, it is a process of naming the roots of the "forest" that represents the file-system (with each volume being an independent tree in it).
Drive letters are however not a compulsory way of accessing different volumes. MS-DOS offers a JOIN command which allows to mount a drive letter inside a directory, very much equivalent to the Unix mount command, and a SUBST command which allowed to create a drive letter from an existing directory. These commands were not always both available in later systems like OS/2 or Windows NT, but since Windows 2000, they are back again, SUBST as always and JOIN as LINKD (in the Windows Resource Kit) or as JUNCTION from http://www.sysinternals.com
Operating systems that use drive letter assignment:
Each of these operating systems assign drive letters according to the following algorithm:
The order can, alas, depend on whether a given disk is managed by a boot-time driver or by a dynamically loaded driver. For example, if the second or third hard disk is of SCSI type and on MS-DOS requires drivers loaded thru the CONFIG.SYS file (eg. the controller card does not offer on-board BIOS or using this BIOS is not practical), then the first SCSI primary partition will appear after all the IDE partitions on MS-DOS. Therefore MS-DOS and eg. OS/2 could have different drive letters, as OS/2 loads the SCSI driver earlier. A solution was not to use primary partitions on such hard disks.
In the operating systems below, the assignment nominally follows the algorithm above, but can be manually changed by the system administrator: