Строка «Локальный диск (C:)» в проводнике настолько привычна, что почти никто не задаётся вопросом, откуда взялась именно эта буква. Логично было бы ожидать литеру A, ведь она первая в алфавите, а не третья. Разгадка спрятана не в современной Windows, а в устройстве персональных компьютеров начала восьмидесятых годов, когда жёсткого диска в машине могло не быть вовсе, а единственным способом загрузить систему и сохранить файл служила гибкая дискета. Причём вопрос про исчезнувшие буквы A и B за последние годы стал звучать чаще, а не реже: выросло целое поколение пользователей, которые дискету видели разве что на иконке сохранения файла, и разрыв между привычным символом и реальным устройством за ним превратился в занятную загадку компьютерной археологии.
Как дисководы для дискет получили буквы A и B ещё до появления жёстких дисков
Традиция обозначать накопители буквами возникла не в MS-DOS, а раньше, в операционной системе CP/M, которую разработал Гэри Килдалл для восьмиразрядных компьютеров середины семидесятых. В CP/M диски получали буквенные имена начиная с A, и когда в 1980 году программист Тим Патерсон написал систему 86-DOS для компании Seattle Computer Products, он во многом опирался именно на логику CP/M, чтобы программы для прежних машин переносились с минимальными переделками. Позже права на 86-DOS выкупила Microsoft, система превратилась в MS-DOS 1.0 и в августе 1981 года вышла вместе с первым персональным компьютером IBM PC модели 5150.
У этого компьютера в базовой комплектации не было жёсткого диска вообще, зато предусматривалось до двух дисководов для пятидюймовых дискет. Первому дисководу автоматически доставалась буква A, второму B, и это происходило ещё на уровне BIOS, а MS-DOS просто наследовала уже готовую нумерацию. Ёмкость такой дискеты по современным меркам кажется анекдотичной: односторонняя модель вмещала около 160 килобайт, двусторонняя версия чуть позже выросла до 360 килобайт, и всё же для текстовых редакторов и первых деловых программ этого объёма вполне хватало.
Интересная деталь: даже в машинах с одним-единственным дисководом система всё равно резервировала букву B как виртуальный второй накопитель. Благодаря этому пользователь мог копировать файлы с одной дискеты на другую при помощи всего одного физического дисковода, просто вынимая и вставляя разные дискеты по запросу системы, которая формально считала, что работает сразу с двумя разными буквами. На экране в такой момент появлялось характерное приглашение вставить дискету для диска B, хотя дисковод во всём компьютере стоял только один, и именно этот незаметный трюк много лет спустя объясняет, почему буква B закрепилась за дисководами настолько прочно, что её не отдали даже первому жёсткому диску.
Почему первый жёсткий диск в персональном компьютере получил именно букву C
Жёсткие диски пришли в массовые персональные компьютеры в 1983 году вместе с моделью IBM PC XT, которая получила встроенный накопитель объёмом 10 мегабайт, произведённый компанией Seagate. По тем временам эта цифра выглядела почти фантастической: одна такая машина заменяла собой стопку из десятков дискет и избавляла пользователя от необходимости постоянно менять носители при каждом запуске программы. К этому моменту буквы A и B уже прочно закрепились за дисководами гибких дисков на аппаратном уровне, поэтому новому типу устройства просто досталась следующая свободная буква по алфавиту, то есть C. Никакого специального технического обоснования для выбора именно этой литеры не существовало, разработчикам достаточно было продолжить уже существующую последовательность, не ломая совместимость с программами, которые обращались к дисководам по буквам A и B напрямую.
Даже на компьютерах, где физического второго дисковода никогда не было и в помине, системный жёсткий диск всё равно получал именно C, а не B, потому что виртуальная буква B оставалась зарезервированной под ту самую эмуляцию второго дисковода. Так сложилась последовательность, которая на первый взгляд выглядит нелогичной, а на деле отражает вполне прагматичную инженерную экономию: зачем менять то, что уже работает у миллионов пользователей. Позже, когда в один компьютер стали устанавливать по два и более жёстких диска, второй накопитель и его логические разделы продолжили получать буквы уже после C, а сами дисководы гибких дисков по прежнему числились первыми в очереди, даже если ими давно никто не пользовался.
Как MS-DOS и BIOS закрепили эту нумерацию на десятилетия вперёд
Присвоение буквы происходило на этапе загрузки: BIOS предоставлял прерывание int 13h как программный интерфейс для работы с дисками, а операционная система вызывала это прерывание, чтобы опросить список подключённых устройств, сначала находя дисководы гибких дисков, затем жёсткие диски, и уже сама присваивала им итоговые буквы. Такая последовательность зашивалась не только в саму DOS, но и в тысячи прикладных программ, которые писались с расчётом на то, что системный раздел всегда находится именно на диске C. Постепенно этот порядок превратился в негласный стандарт индустрии, который пережил переход от MS-DOS к Windows 95, затем к линейке Windows NT и дожил до Windows 11, хотя современная архитектура давно способна назначать буквы куда гибче прежнего.
Стоило одному-единственному жёсткому диску разделиться на несколько логических томов, как та же логика продолжила действовать без изменений: каждый новый раздел получал следующую свободную букву по алфавиту, будь то дополнительный раздел на том же физическом диске, второй жёсткий диск целиком или, много позже, привод для компакт-дисков. Программисты, писавшие софт для DOS и ранних версий Windows, настолько привыкли к этому порядку, что многие установщики программ буквально жёстко прописывали путь через диск C в своём коде, вместо того чтобы спрашивать систему, куда именно она сама себя установила.
Что произошло с буквами A и B после исчезновения дисководов для дискет
Физические дисководы для трёх с половиной дюймовых дискет постепенно исчезли из настольных компьютеров и ноутбуков в течение двухтысячных годов, когда флеш-накопители и оптические диски полностью вытеснили гибкие носители по удобству и вместимости. Одна флешка объёмом даже в скромные 128 мегабайт превосходила по вместимости почти сотню дискет, а перезаписываемый компакт-диск и вовсе делал разговор о хрупких магнитных пластинках бессмысленным. Производители компьютеров один за другим начали убирать разъём для дисковода из стандартной комплектации, и уже к середине двухтысячных найти новый настольный компьютер со встроенным флоппи-дисководом стало скорее исключением, чем правилом.
Windows при этом не стала автоматически переиспользовать освободившиеся буквы A и B для других устройств. Система по прежнему держит эти литеры в резерве специально для флоппи-дисководов, даже если физически такого устройства в компьютере никогда не было, а операционная система устанавливалась уже во времена, когда дискеты стали музейным экспонатом. Разработчики Microsoft объясняли такое поведение заботой о совместимости: часть корпоративного и специализированного программного обеспечения, написанного ещё во времена MS-DOS, продолжала эксплуатироваться в девяностых и двухтысячных годах на новых версиях Windows, и внезапная переустановка привычной нумерации рисковала сломать именно те системы, которые бизнес меньше всего хотел трогать.
Можно ли сегодня освободившиеся буквы A и B назначить обычному накопителю
Современная Windows позволяет вручную назначить буквы A и B любому подключённому диску или флешке, если в системе действительно не зарегистрирован ни один флоппи-дисковод. Делается это через встроенную оснастку управления дисками или через diskpart, и общий порядок действий выглядит так:
- Открыть управление дисками сочетанием клавиш Windows и X, выбрать соответствующий пункт меню;
- Щёлкнуть правой кнопкой по нужному разделу и выбрать пункт изменения буквы диска;
- Указать свободную литеру A или B из выпадающего списка и подтвердить изменение.
После такой операции накопитель действительно отобразится в проводнике под буквой A или B, и никакой ошибки система не выдаст, поскольку технических препятствий для этого в современной архитектуре Windows не осталось, есть только историческая привычка резервировать эти буквы под устройства, которых давно не существует.
Практической пользы от такой смены обычно немного, а вот путаницы она может добавить изрядно: часть старых утилит для диагностики оборудования до сих пор пытается опросить буквы A и B в первую очередь именно как флоппи-дисководы, и если на эти литеры внезапно назначен обычный жёсткий диск или флешка, программа способна отреагировать непредсказуемо, вплоть до зависания на этапе опроса несуществующего дисковода. Поэтому опытные системные администраторы обычно советуют не трогать буквы A и B без конкретной причины, а оставлять их пустующими точно так же, как их оставляла сама Windows все эти десятилетия.
Почему букву C нельзя просто взять и поменять в современной Windows
С системным разделом ситуация обратная. В оснастке управления дисками пункт смены буквы для загрузочного и системного тома попросту недоступен, кнопка изменения остаётся неактивной. Причина в том, что буква C прописана в огромном количестве мест: в реестре, в путях к установленным программам, в переменных окружения и конфигурационных файлах множества приложений, которые ожидают найти системные библиотеки именно по этому адресу. Технически сменить букву всё же возможно через прямое редактирование раздела реестра с параметрами смонтированных устройств, но Microsoft не поддерживает такой сценарий официально, а результатом чаще всего становится россыпь сломанных ярлыков, неработающих программ и служб, которые продолжают искать файлы по старому пути.
Показателен пример с переменной окружения, которая указывает на системную папку Windows: по умолчанию она выглядит как C:\Windows, и это значение вшито не только в реестр, но и во множество сценариев автоматизации, командных файлов и служебных заданий по расписанию. Стоит этой букве измениться, и любой из таких скриптов, написанный без расчёта на переменные окружения, перестанет находить нужную папку, а часть системных служб откажется запускаться вовсе. Именно поэтому даже спустя четыре десятилетия после выхода первого IBM PC буква C остаётся едва ли не единственной по настоящему неприкосновенной деталью во всей системе именования дисков Windows.
Как Windows выбирает буквы для новых дисков и флешек сегодня
При подключении нового накопителя современная система просматривает уже занятые литеры и присваивает следующую свободную по алфавиту, начиная поиск сразу после буквы, отведённой под системный раздел. Буквы A, B и C при этом фактически выведены из общего оборота: первые две ожидают несуществующие дисководы, а третья закреплена за системой, поэтому первый внешний диск или флешка на подавляющем большинстве компьютеров получает букву D, следующий накопитель E, и так далее по алфавиту вплоть до буквы Z. Пользователь может вручную переопределить любую из этих букв, кроме системной, но по умолчанию Windows просто продолжает традицию, заложенную ещё при выходе первого персонального компьютера IBM больше четырёх десятилетий назад.
На практике на буквы влияет ещё один слой сложности, о котором редко задумываются: сетевые диски, подключаемые в корпоративных сетях через протокол общего доступа к файлам, тоже забирают себе буквы из общего латинского алфавита, причём администраторы нередко назначают им литеры ближе к концу алфавита вроде Z, Y или X, чтобы заведомо не столкнуться с буквами локальных накопителей компьютера. Из за этого на рабочей станции в офисе список дисков в проводнике порой выглядит внушительно: системный C, привод для оптических дисков, пара флеш-накопителей и следом несколько сетевых ресурсов с самыми разными буквами, доставшимися им по правилам, которые не менялись с восьмидесятых годов прошлого века, разве что дисководов для дискет среди них давно уже нет.