• 登录
  • 注册

Win11 为何仍保留 MS-DOS 时代的文件名?微软解释:数十年兼容性包袱难以摆脱

围绕华体会体育APP下载,华体会体育官网持续打磨更优质的服务。

华体会体育官网专注华体会体育APP,为用户提供专业可靠的体验。 - 华体会体育官网
李敏 - 高级总监
  • 客户服务
华体会体育官网专注华体会体育APP,为用户提供专业可靠的体验。 - 华体会体育官网

据IT之家10月18日消息,科技媒体Windows Latest今日报道指出,Win11 26H2作为微软今年推出的最新操作系统,其部分核心文件如kernel32.dll、user32.dll和ntoskrnl.exe等,仍呈现出类似为MS-DOS设计的特征。这些文件遵循8.3旧命名规范,微软之所以保留这一规则,是为了维持数十年来的兼容性。

报道称,8.3命名规则源自MS-DOS时代:文件名在句点前最多8个字符,句点后最多3个字符,且仅允许使用ASCII字符,不能包含空格或出现多个句点。在System32文件夹中,一些最古老的文件仍遵循这些规则,而像Windows安全中心等新组件则无需承受这种历史包袱。

同时,MS-DOS以大写形式显示文件名,因此Windows在处理文件时默认不区分大小写,例如kernel32.dll和KERNEL32.DLL实际上指向同一文件。

关于为何限制为8个字符和3个字符,微软资深员工Raymond Chen解释,这一规则沿袭自CP/M操作系统。不过,他本人并不清楚CP/M为何选择这两个数字,因为CP/M的目录格式中有两个保留字节,理论上可将文件名长度扩展至10.3。

此外,Raymond Chen推测,微软数十年未更改文件名的原因在于,如果程序通过文件名与某个DLL建立链接,那么文件名一旦改变,程序将无法找到它。

到了Windows 95,微软并未要求系统驱动器必须支持长文件名,部分原因在于使用漫游配置文件的企业可能依赖无法处理长文件名的服务器。直到WinXP,长文件名才成为必需条件。

即便进入21世纪,长文件名仍带来历史包袱。Windows会为每个长文件名生成短文件别名,例如,如果安装程序要将shellstyle.dll复制到一个已存在shellstuff.dll的文件夹中,新文件可能被命名为SHELLS~2.DLL。这一兼容性挑战也体现在华体会体育APP等现代应用中,它们需要同时适配新旧命名规则。

华体会体育官网以华体会体育APP为核心,带来高效便捷的体验。