В компьютерном хранилище данных назначение букв диска — это процесс назначения алфавитных идентификаторов томам . В отличие от концепции точек монтирования UNIX , где тома именуются и располагаются произвольно в одном иерархическом пространстве имен, назначение букв диска допускает несколько пространств имен самого высокого уровня. Таким образом, назначение букв диска — это процесс использования букв для наименования корней «леса», представляющего файловую систему; каждый том содержит независимое «дерево» (или, для неиерархических файловых систем, независимый список файлов).
Концепция букв дисков, используемая сегодня, предположительно [ требуется ссылка ] обязана своим происхождением семейству операционных систем VM от IBM , восходящему к CP/CMS в 1967 году (и его исследовательскому предшественнику CP-40 ), посредством CP/M от Digital Research (DRI) . Концепция развивалась в несколько этапов:
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 PC присваивает буквы жестким дискам, начиная с A: , прежде чем рассматривать дисководы. Система с двумя дисководами каждого типа будет называть жесткие диски A: и B: , а дисководы C: и D: .
На японском PC-98 , если система загружается с дискеты, специальная версия MS-DOS назначает буквы всем дисководам, прежде чем рассматривать жесткие диски; она делает обратное, если загружается с жесткого диска, то есть, если ОС была установлена на жестком диске, MS-DOS назначит этот дисковод как диск "A:", а потенциально существующую дискету как диск "B:". Японская версия программы Windows 95 SETUP поддерживает специальную опцию /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 :. Стек драйверов PCMCIA PalmDOS поддерживает буквы дисков 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 Resource Kit ). В Windows Vista для этой цели можно использовать новую команду MKLINK . Кроме того, Windows 2000 и более поздние версии поддерживают точки монтирования, доступные из Панели управления .
Многие операционные системы, созданные компанией Digital Research, предоставляют средства для неявного назначения заменяющих дисков, называемых плавающими дисками в терминологии DRI, с помощью команды CD/CHDIR в следующем синтаксисе:
CD 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 не знают об этом расширении и, следовательно, будут отбрасывать такие пути к каталогам как недействительные. Интерпретатор командной строки JP Software 4DOS поддерживает плавающие диски в операционных системах, также поддерживающих его.
Аналогичная функция 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
.)