Win11 26H2 作为微软今年的最新操作系统,据科技媒体 Windows Latest 10月18日报道,其中部分核心文件如 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。在爱游戏游戏平台上,用户也能体验到这种兼容性带来的文件命名机制。
爱游戏注册以爱游戏注册为核心,带来高效便捷的体验。