The concept evolved through several steps: The important capability of hierarchical directories within each drive letter was initially absent from these systems.
This was a major feature of UNIX and other similar operating systems, where hard disk drives held thousands (rather than tens or hundreds) of files.
In file systems lacking such naming mechanisms, drive letter assignment proved a useful, simple organizing principle.
Some versions of DOS do not assign the drive letter, beginning with C:, to the first active primary partition recognized upon the first physical hard disk, but on the first primary partition recognized of the first hard disk, even if it is not set active.
Some late versions of the DR-DOS IBMBIO.COM provide a preboot config structure, holding bit flags to select (beside others) between various drive letter assignment strategies.
These strategies can be preselected by a user or OEM or be changed by a boot loader on the fly when launching DR-DOS.
For example, if the second or third hard disk is of SCSI type and, on DOS, requires drivers loaded through the CONFIG.SYS file (e.g. 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 DOS.
In Windows NT and OS/2, the operating system uses the aforementioned algorithm to automatically assign letters to floppy disk drives, optical disc drives, the boot disk, and other recognized volumes that are not otherwise created by an administrator within the operating system.
Users with administrative privileges can assign drive letters manually to overcome this problem.
In addition, Novell DOS 7, OpenDOS 7.01, and DR-DOS 7.02 genuinely support a CONFIG.SYS LASTDRIVE=32 directive in order to allocate up to 32 drive letters, named A: to Z:, [:, \:, ]:, ^:, _: and `:.
(DR-DOS 7.02-7.07 also supports HILASTDRIVE and LASTDRIVEHIGH directives in order to relocate drive structures into upper memory.)
Floating drives are implemented in the BDOS kernel, not in the command line shell, thus they can be used and assigned also from within applications when they use the "change directory" system call.
(For similar reasons, the appendage to the environment block associated with loaded applications under DOS 3.0 (and higher) contains a reference to the load path of the executable as well, however, this consumes more resident memory, and to take advantage of it, support for it must be coded into the executable, whereas DRI's solution works with any kind of applications and is fully transparent to users as well.)
In some versions of DR-DOS, the load path contained in the appendage to the environment passed to drivers can be shortened to that of a temporary substitute drive (e.g. SUBST B: C:\DIR) through the INSTALL[HIGH]/LOADHIGH option /D[:loaddrive] (for B:TSR.COM instead of, say, C:\DIR\TSR.COM).