Почему в ОС Windows нельзя создать папку "con": тайны именования файлов

Многие пользователи Windows сталкивались с ошибкой при попытке создать папку с именем "con". Этот на первый взгляд бессмысленный запрет корнями уходит в историю создания операционной системы MS-DOS. Давайте разберемся, откуда взялось это ограничение и почему оно до сих пор действует.

История создания MS-DOS

Первая версия операционной системы MS-DOS была выпущена компанией Microsoft в 1981 году. За ней последовали версии 1.1 в 1982 году и 2.0 в 1983 году. Каждая новая версия добавляла новые возможности и улучшала работу системы.

MS-DOS изначально разрабатывалась как операционная система для персональных компьютеров на базе процессоров Intel 8080/8085/8086. Наша цель была создать простую в использовании, но в то же время мощную ОС для широкого круга пользователей.

В то время персональные компьютеры только начинали набирать популярность. Для того, чтобы к ним можно было подключать разные устройства ввода-вывода (принтеры, сканеры, дисководы и т.д.), эти устройства должны были иметь специальные драйверы. Но драйверы не могли работать с железом напрямую, для этого использовались виртуальные файлы. Схема работы выглядела так:

Файлы виртуальных устройств нужны были для упрощения работы драйверов. Эти файлы получали зарезервированные системой имена:

  • CON
  • PRN
  • AUX
  • NUL

Регистр букв при этом не имел значения. Пользователь не мог создавать файлы или папки с такими именами, иначе возникали конфликты с системными файлами. Вот почему в MS-DOS нельзя было создать папку "con".

Операционная система MS-DOS

Зарезервированные имена в MS-DOS

Как уже было сказано выше, в MS-DOS некоторые имена файлов были зарезервированы системой. Рассмотрим их подробнее.

  1. CON - сокращение от CONSOLE, использовался для доступа к консоли.

  2. PRN - адрес параллельного порта принтера.

  3. AUX - адрес последовательного порта.

  4. NUL - "ничто", данные, записанные в этот файл, безвозвратно терялись.

Например, чтобы вывести данные на принтер, нужно было перенаправить вывод в файл PRN:

echo "Текст для печати" > PRN

А чтобы считать данные с последовательного порта:

copy AUX: input.txt

Таким образом, зарезервированные имена использовались для упрощения доступа к оборудованию из MS-DOS.

Переход ограничений в Windows

Хотя первая Windows 1.0 вышла еще в 1985 году, по сути это была всего лишь графическая оболочка для MS-DOS. Настоящей операционной системой Windows стала только начиная с версии 3.1, выпущенной в 1992 году.

Но даже будучи самостоятельной ОС, Windows оставалась тесно интегрирована с MS-DOS. Ведь для запуска старых DOS-приложений требовалась обратная совместимость. Поэтому ограничения на имена файлов перешли из MS-DOS в Windows.

Можно сказать, что MS-DOS являлась фундаментом, на котором строилась Windows. И как всякий фундамент, она накладывала определенные ограничения на структуру постройки.

Вот почему даже в современных версиях Windows по-прежнему нельзя создать папку "con" - это дань истории и обеспечение обратной совместимости со времен MS-DOS.

Обход ограничения в современных Windows

Ошибка при создании папки "con"

Хотя по историческим причинам в Windows нельзя создать папку "con", это ограничение можно обойти несколькими способами.

В командной строке Windows можно выполнить команду:

md \\?\c:\con

Это позволит создать папку "con" в корне диска C:. Но будьте осторожны, не удаляйте эту папку стандартными средствами Windows, это может привести к ошибкам.

Другой способ - найти в реестре Windows раздел с зарезервированными именами и удалить оттуда "con". После этого можно будет создать папку стандартным образом. Но опять же, это может дестабилизировать систему.

Разработчики могут создавать папку "con" программно, используя WinAPI функции вроде CreateDirectory(). Но после этого нужно следить, чтобы ее не удалили ошибочно.

Таким образом, хотя напрямую папку "con" создать нельзя, есть несколько хитрых способов это обойти в современных Windows.

Назначение ограничений имен

Почему нельзя создать папку "con" и зачем вообще нужны эти ограничения в Windows?

  • Стабильность системы. Зарезервированные имена файлов нужны для стабильной работы операционной системы. Если создать папку "con", это может нарушить доступ к консоли Windows.
  • Предотвращение конфликтов. Ограничение помогает избежать конфликтов имен между системными файлами и пользовательскими. Это предотвращает многие проблемы.
  • Обратная совместимость. Как уже говорилось, запрет нужен для запуска старых приложений MS-DOS в современных Windows.

Таким образом, хотя папку "con" создать нельзя, эти ограничения играют важную роль в работе ОС Windows.

Статья закончилась. Вопросы остались?
Комментариев 33
Подписаться
Я хочу получать
Правила публикации
0
"В Windows нельзя создать файл или папку под названием "Con", ибо у Билла Гейтса в детстве была прозвище Con - ботаник. И он постарался чтобы в его системе отсутствовали такие файлы и папки". Когда мне это прислали в первый раз неделю назад, я ещё улыбался. Но когда такое у себя в ЖЖ пишут уважаемые мной девушки - это полный Пэ. Поэтому, чтобы хотя бы те, кто меня читает, не позоролись, расскажу историю.
В давние времена, когда не было Windows Vista, был MS-DOS. Серые буквы на чёрном фоне. Люди
Копировать ссылку
0
ахахах,так много людей пришли с этим вопросом в настоящее время , интересненько
Копировать ссылку
0
Ну если это Билл так придумал, из-за того что его ботаником называли... ну что ж, хозяин-барин)
Копировать ссылку
0
и все полезли проверять))) действительно, у меня пишет "указано не верное имя устройства" и не даёт создать папку с таким именем).
Копировать ссылку
0
Неловко, что Билла называли ботаником 😃
Копировать ссылку
Редактирование комментария возможно в течении пяти минут после его создания, либо до момента появления ответа на данный комментарий.