ТехноСводка

Софт

Рэймонд Чен объяснил, почему в Windows 11 сохранились имена файлов в стиле MS-DOS

Ветеран Microsoft Рэймонд Чен объяснил, что формат имён «8.3» в Windows 11, например kernel32.dll и ntoskrnl.exe, сохраняется ради обратной совместимости.

Правило 8.3 пришло из MS-DOS: до восьми символов в имени и до трёх в расширении. Его унаследовали от CP/M, как писал Чен ещё в 2009 году в блоге «The Old New Thing». Он добавляет, что и сам не знает, почему в CP/M выбрали именно такие числа, и предполагает, что восьмёрка была просто удобным выбором.

Насколько можно судить по объяснению Чена (в 2007 году он оговаривал, что это не официальная позиция Microsoft), главная причина в том, что имя DLL нельзя менять, пока к нему привязаны другие программы. Переименование user32.dll сломало бы множество приложений. NTFS при этом давно поддерживает длинные имена, а Windows работает с ними с середины 90-х.

У коротких псевдонимов есть издержки: например, загрузчик может воспринять короткое и длинное имена одной DLL как два разных модуля и загрузить две копии в память. Некоторые программы жёстко прописывают такие псевдонимы, например C:\PROGRA~1. Но, по словам Чена, проблемы 8.3 хорошо изучены и находятся под контролем, а переход только на длинные имена создал бы новые сложности, не сделав систему быстрее или безопаснее.

  • 8.3: до 8 символов имени и до 3 в расширении
  • Формат унаследован от CP/M через MS-DOS

Источники

Текст подготовлен автоматически по материалам источников и может содержать неточности.