В компьютерных хранилищах данных присвоение буквы диска — это процесс присвоения томам буквенных идентификаторов . В отличие от концепции точек монтирования UNIX , где тома именуются и располагаются произвольно в одном иерархическом пространстве имен, назначение буквы диска позволяет использовать несколько пространств имен самого высокого уровня. Таким образом, присвоение буквы диска — это процесс использования букв для обозначения корней «леса», представляющего файловую систему; каждый том содержит независимое «дерево» (или, для неиерархических файловых систем, независимый список файлов).
Концепция букв дисков, используемая сегодня, по-видимому, обязана своим происхождением семейству операционных систем IBM VM , восходящему к CP/CMS в 1967 году (и ее исследовательскому предшественнику CP-40 ), посредством Digital Исследования (DRI) CP/M . Концепция развивалась в несколько этапов:
A:README.TXT
. (Это была эпоха 8-дюймовых дискет , когда такие небольшие пространства имен не налагали практических ограничений.) На такое использование повлияли префиксы устройств, используемые в операционной системе TOPS-10 компании Digital Equipment Corporation (DEC) . [2]В этих системах изначально отсутствовала важная возможность иерархических каталогов внутри каждой буквы диска. Это была основная особенность UNIX и других подобных операционных систем, где на жестких дисках хранились тысячи (а не десятки или сотни) файлов. Увеличение емкости памяти микрокомпьютеров привело к их появлению, за которым в конечном итоге последовали длинные имена файлов . В файловых системах, где отсутствуют такие механизмы именования, назначение буквы диска оказалось полезным и простым принципом организации.
MS-DOS/PC DOS, начиная с версии 5.0 и более поздних операционных систем, назначает буквы дисков в соответствии со следующим алгоритмом: [4]
10h
) не являются таковыми.MS-DOS/PC DOS версий 4.0 и более ранних версий присваивает буквы всем дисководам перед рассмотрением жестких дисков, поэтому система с четырьмя дисководами будет называть первый жесткий диск E: . Начиная с DOS 5.0, система гарантирует, что диск C: всегда является жестким диском, даже если в системе имеется более двух физических дисководов.
Хотя без преднамеренного переназначения назначения букв дисков обычно фиксируются до следующей перезагрузки, однако Zenith MS-DOS 3.21 обновит назначения букв дисков при перезагрузке диска. Это может привести к изменению букв дисков без перезагрузки, если было изменено разделение жесткого диска.
MS-DOS на ПК Apricot присваивает жестким дискам буквы, начиная с A:, прежде чем рассматривать дисководы. Система с двумя дисками каждого типа будет называть жесткие диски A: и B: , а дискеты C: и D: .
На японском PC-98 , если система загружается с дискеты, специальная версия MS-DOS присваивает буквы всем дисководам перед рассмотрением жестких дисков; он делает обратное, если он загружается с жесткого диска, то есть, если ОС была установлена на жесткий диск, MS-DOS назначала бы этот диск диском «A:», а потенциально существующую дискету — диском «B:». . Японская версия программы SETUP для Windows 95 поддерживает специальную опцию /AT, позволяющую принудительно разместить Windows на диске C:.
Некоторые версии DOS не присваивают букву диска, начинающуюся с C:, первому активному основному разделу, распознанному на первом физическом жестком диске, а первому основному разделу, распознанному на первом жестком диске, даже если он не установлен активным. .
Если в таблице разделов имеется более одного расширенного раздела, обрабатываются только логические диски первого распознанного типа расширенного раздела.
Некоторые поздние версии DR-DOS IBMBIO.COM предоставляют структуру конфигурации перед загрузкой, содержащую битовые флаги для выбора (помимо других) между различными стратегиями назначения букв дисков. Эти стратегии могут быть предварительно выбраны пользователем или OEM-производителем или изменены загрузчиком на лету при запуске DR-DOS. В этих случаях загрузочный диск также может отличаться от A: или C:.
Порядок букв дисков может зависеть от того, управляется ли данный диск драйвером времени загрузки или динамически загружаемым драйвером. Например, если второй или третий жесткий диск имеет тип SCSI и в DOS требуются драйверы, загруженные через файл CONFIG.SYS (например, плата контроллера не имеет встроенного BIOS или использование этого BIOS нецелесообразно), тогда первый основной раздел SCSI появится после всех разделов IDE в DOS. Поэтому DOS и, например, OS/2 могут иметь разные буквы дисков, поскольку OS/2 загружает драйвер SCSI раньше. Решением было не использовать первичные разделы на таких жестких дисках.
В Windows NT и OS/2 операционная система использует вышеупомянутый алгоритм для автоматического присвоения букв дисководам гибких дисков , оптических дисков , загрузочному диску и другим распознаваемым томам, которые иначе не созданы администратором в операционной системе. Тома, создаваемые в операционной системе, указываются вручную, а некоторые автоматические буквы дисков можно изменить. Нераспознанным томам не присваиваются буквы, и операционная система обычно не трогает их.
Распространенная проблема, возникающая при назначении буквы диска, заключается в том, что буква, назначенная сетевому диску, может совпадать с буквой локального тома (например, недавно установленного привода CD/DVD или USB-накопителя). Например, если последний локальный диск — это диск D:, а сетевой диск был бы назначен как E:, то вновь подключенному запоминающему устройству USB также будет назначен диск E:, что приведет к потере соединения либо с общим сетевым ресурсом, либо с USB-устройство. Чтобы решить эту проблему, пользователи с правами администратора могут назначать буквы дисков вручную. [5] Еще одно условие, которое может вызвать проблемы в Windows XP, — это определенные сетевые диски, но в состоянии ошибки (как это было бы на ноутбуке, работающем вне сети). Даже если неподключенный сетевой диск не является следующей доступной буквой диска, Windows XP может не суметь подключить диск, и эта ошибка также может помешать подключению USB-устройства. [ нужна цитата ]
Применение описанной выше схемы в довольно современной системе на базе Windows обычно приводит к следующим назначениям букв дисков:
diskpart
. MS-DOS обычно использует параметры в драйверах устройств линейной загрузки внутри файла CONFIG.SYS .Буквы дисков в зависимости от случая:
\DEV
для файлов устройств под MiNT , MagiC и MultiTOS . [8] [9]Когда нет второго физического дисковода, диск B: можно использовать как «виртуальный» дисковод, сопоставленный с физическим дисководом A:, при этом пользователю будет предлагаться переключать дискеты каждый раз, когда требуется чтение или запись на ту, которая была необходима. наименее использованный из A: или B: . Это позволяет использовать большую часть функций двух дисководов на компьютере, у которого есть только один. Эта концепция использования нескольких букв дисков на одном физическом устройстве (возможно, с разными его «видами») не ограничивается первым дисководом, но может использоваться и для других дисководов, настраивая для них дополнительные блочные устройства с помощью стандартного DOS DRIVER.SYS в CONFIG.SYS .
Сетевым дискам часто присваиваются буквы в конце алфавита. Это часто делается для того, чтобы отличить их от локальных дисков: использование букв в конце снижает риск конфликта назначений. Это особенно верно, когда назначение выполняется автоматически по сети (обычно с помощью сценария входа в систему).
В большинстве систем DOS невозможно иметь более 26 подключенных дисков. Atari GEMDOS поддерживает только 16 букв дисков от A: до P:. Стек драйверов PalmDOS PCMCIA поддерживает буквы дисков 0:, 1 :, 2 :, ... для адреса слотов дисков PCMCIA.
Некоторые сетевые драйверы Novell для DOS поддерживают до 32 букв дисков в совместимых версиях DOS. Кроме того, Novell DOS 7, OpenDOS 7.01 и DR-DOS 7.02 действительно поддерживают LASTDRIVE=32
директиву CONFIG.SYS для выделения до 32 букв дисков с именами от A: до Z: , [: , \: , ]: , ^: , _: и `: . (DR-DOS 7.02-7.07 также поддерживает HILASTDRIVE
и LASTDRIVEHIGH
директивы для перемещения структур дисков в верхнюю память.) Некоторые прикладные программы DOS не ожидают букв дисков, выходящих за пределы Z:, и не будут с ними работать, поэтому рекомендуется использовать их для специальных целей или поиска дисков.
Процессор командной строки 4DOS от JP Software поддерживает буквы дисков, отличные от Z: в целом, но поскольку некоторые буквы конфликтуют с синтаксическими расширениями этого процессора командной строки, их необходимо экранировать, чтобы использовать их в качестве букв дисков.
В Windows 9x (MS-DOS 7.0/MS-DOS 7.1) также добавлена поддержка LASTDRIVE=32
и .LASTDRIVEHIGH=32
Если в Windows NT требуется доступ к большему количеству файловых систем, чем Z:, необходимо использовать точки монтирования тома . [11] Однако можно монтировать небуквенные диски, например 1: , 2: или !:, используя утилиту командной строки SUBST
в Windows XP или более поздней версии (т. е. SUBST 1: C:\TEMP
), но это официально не поддерживается и может привести к поломке программ. которые предполагают, что все диски имеют буквы от A: до Z: .
Буквы дисков — не единственный способ доступа к различным томам. DOS предлагает команду JOIN , которая позволяет получить доступ к назначенному тому через произвольный каталог, аналогично команде монтирования Unix . Он также предлагает команду SUBST , которая позволяет назначить букву диска каталогу. Одна или обе эти команды были удалены в более поздних системах, таких как OS/2 или Windows NT , но, начиная с Windows 2000 , обе снова поддерживаются: команда SUBST существует, как и раньше, а функциональность JOIN включена в LINKD (часть ресурсов Windows). Набор ). В Windows Vista для этой цели можно использовать новую команду MKLINK . Кроме того, Windows 2000 и более поздние версии поддерживают точки монтирования, доступные из панели управления .
Многие операционные системы, разработанные Digital Research, предоставляют средства для неявного назначения замещающих дисков, называемых плавающими дисками в терминологии DRI, с помощью команды CD/CHDIR в следующем синтаксисе:
Компакт-диск N:=C:\SUBDIR
DOS Plus поддерживает это для букв дисков N: , O: и P: . Эта функция также присутствует в Concurrent DOS , Multiuser DOS , System Manager 7 и REAL/32 , однако эти системы расширяют эту концепцию на все неиспользуемые буквы дисков от A: до Z:, за исключением зарезервированной буквы диска L:. [7] DR DOS 3.31–6.0 (только до обновлений 1992–11 гг. с BDOS 6.7) также поддерживает это, включая букву диска L:. Эта функция недоступна в DR DOS 6.0 (обновление 1992 г.), PalmDOS 1.0, Novell DOS 7, OpenDOS 7.01, DR-DOS 7.02 и выше. Плавающие диски реализованы в ядре BDOS, а не в оболочке командной строки, поэтому их можно использовать и назначать также из приложений, когда они используют системный вызов «изменить каталог». Однако большинство приложений DOS не знают об этом расширении и, следовательно, отбрасывают такие пути к каталогам как недействительные. Интерпретатор командной строки 4DOS от JP Software поддерживает плавающие диски в операционных системах, которые также поддерживают его.
Аналогичная функция Concurrent DOS, Multiuser DOS, System Manager и REAL/32 динамически назначает букву диска L: пути загрузки загруженного приложения, тем самым позволяя приложениям ссылаться на файлы, находящиеся в их каталоге загрузки на стандартизированном диске. буква вместо абсолютного пути. [7] Эта функция загрузочного диска упрощает перемещение установок программного обеспечения на диски и между ними без необходимости адаптировать пути к наложениям, файлам конфигурации или пользовательским данным, хранящимся в каталоге загрузки или последующих каталогах. (По тем же причинам дополнение к блоку окружения, связанному с загружаемыми приложениями в DOS 3.0 (и выше), также содержит ссылку на путь загрузки исполняемого файла, однако это требует больше резидентной памяти, и чтобы воспользоваться этим, его поддержка должна быть закодирована в исполняемом файле, тогда как решение DRI работает с любыми приложениями и полностью прозрачно для пользователей.) В некоторых версиях DR-DOS путь загрузки, содержащийся в придатке к среде, передается драйверам. может быть сокращен до диска временной замены (например, SUBST B: C:\DIR
) с помощью опции INSTALL[HIGH]
/ ( вместо, скажем, ). Это можно использовать для минимизации эффективного использования памяти драйвером , если исполняемый файл расположен в глубоком подкаталоге и резидентному драйверу больше не нужен путь загрузки после установки. [12] [13] [14] [15]LOADHIGH
/D[:loaddrive]
B:TSR.COM
C:\DIR\TSR.COM
MPDOSTIP.ZIP
коллекции автора, которая поддерживалась до 2001 года и в то время распространялась на многих сайтах. Предоставленная ссылка указывает на более старую версию файла, преобразованную в HTML NWDOSTIP.TXT
.)