# Почему Windows 11 до сих пор использует имена файлов из эпохи MS-DOS

> Источник: 404 Media. Канонический URL: https://404-media.ru/tehnologii/pochemu-windows-11-do-sih-por-ispolzuet-imena-faylov-iz-epohi-ms-dos

Формат 8.3 сохранился в Windows из-за обратной совместимости и особенностей загрузки DLL, хотя NTFS давно поддерживает длинные имена.

- Рубрика: Технологии (https://404-media.ru/tehnologii)
- Опубликовано: 2026-10-20T09:31:36+03:00
- HTML: https://404-media.ru/tehnologii/pochemu-windows-11-do-sih-por-ispolzuet-imena-faylov-iz-epohi-ms-dos
- Markdown: https://404-media.ru/tehnologii/pochemu-windows-11-do-sih-por-ispolzuet-imena-faylov-iz-epohi-ms-dos.md
- llms.txt: https://404-media.ru/llms.txt

![Почему Windows 11 до сих пор использует имена файлов из эпохи MS-DOS](https://storage.yandexcloud.net/404-media/media/2026/10/rq9KSFjxaR8TSuhm9cbXGFErZg7VqLYEqqGh8LDO.jpg)

В Windows 11 по-прежнему используются системные файлы с именами вроде **kernel32.dll**, **user32.dll** и **ntoskrnl.exe**. Их названия соответствуют старому формату 8.3, который появился ещё до Windows и сегодня сохраняется главным образом ради совместимости с программами прошлых десятилетий.

![Почему Windows 11 до сих пор использует имена файлов из эпохи MS-DOS](https://storage.yandexcloud.net/404-media/media/2026/10/Z26jTHxJZIsuDXzepoKmpeMenuGSmETUoZVjYWIP.jpg)

Фото: Хабр

Правило 8.3 ограничивает имя восемью символами до точки и тремя после неё. В таком имени может быть только одна точка, запрещены пробелы, а набор допустимых символов изначально ограничивался ASCII. В общей сложности имя вместе с точкой может занимать до 12 символов.

Формат использовался в MS-DOS, а его корни уходят ещё дальше — в операционную систему CP/M, созданную Гэри Килдаллом в 1974 году для ранних микрокомпьютеров. MS-DOS стремилась сохранить совместимость с CP/M, в том числе на уровне структуры имён файлов. Ветеран Microsoft Рэймонд Чен отмечал, что не знает, почему в CP/M выбрали именно ограничение в восемь символов: зарезервированные байты теоретически позволяли использовать схему 10.3, но число 8, вероятно, оказалось просто удобным.

В старых системах имена отображались заглавными буквами, поэтому запись **KERNEL32.DLL** может быть знакома пользователям компьютеров 1990-х. Современная Windows по умолчанию не различает регистр: **kernel32.dll** и **KERNEL32.DLL** обозначают один и тот же файл.

## Главная причина — обратная совместимость

Файловая система NTFS давно поддерживает длинные имена, а Windows работает с ними с середины 1990-х. Однако системные DLL нельзя без последствий переименовать: множество приложений обращается к ним по конкретным названиям. Если изменить имя **user32.dll** или **kernel32.dll**, старые программы перестанут находить необходимые компоненты.

Исторические ограничения особенно заметны в Windows 95. Системный диск этой версии не обязан был поддерживать длинные имена, в частности из-за совместимости с серверами, которые использовались для перемещаемых профилей пользователей. Поэтому системные файлы Windows 95 должны были укладываться в формат 8.3. По оценке Чена, в Windows NT использование системного диска с FAT допускалось вплоть до Windows 2000, а обязательная поддержка длинных имён появилась только в Windows XP.

Даже после перехода на длинные имена Windows продолжила создавать для них короткие псевдонимы. Например, если в каталоге уже находится файл **shellstuff.dll**, то для нового **shellstyle.dll** может появиться имя вроде **SHELLS~2.DLL**. Некоторые программы напрямую полагаются на такие обозначения. Чен приводит в пример распространённую ссылку на каталог Program Files как **C:\PROGRA~1**.

Такая совместимость создаёт отдельный риск: один и тот же DLL-файл способен фигурировать в системе под длинным и коротким именами. Загрузчик Windows может воспринять их как два разных модуля, из-за чего в адресном пространстве процесса окажутся две копии библиотеки. У каждой могут быть собственные глобальные переменные, что приводит к трудноуловимым ошибкам.

По словам Чена, связанные с форматом 8.3 проблемы хорошо изучены и находятся под контролем. Полный отказ от коротких имён не сделал бы Windows быстрее или безопаснее, зато мог бы нарушить работу большого числа старых приложений.

Эта логика распространяется не только на имена DLL. Microsoft постепенно переводит старые диалоговые окна на WinUI 3, но даже обновлённые интерфейсы должны учитывать сторонние программы, которые добавляют в них собственные вкладки. Переименование системной библиотеки имело бы куда более серьёзные последствия, чем исчезновение отдельных элементов интерфейса.

Чен неоднократно отмечал, что совместимость — одна из причин, по которым Windows сохраняет устаревшие решения. Ещё в 2003 году он писал, что крупные [компании](/biznes) неохотно принимают изменения интерфейса: переобучение тысяч сотрудников может стоить миллионы. В случае системных файлов цена отказа от привычных имён была бы ещё выше.
