微软解释Win11保留8.3命名规则原因

资讯 驱动中国 陆离 1,415次阅读
分享 微 Q 信
AI摘要
由 AI 生成 · 仅供参考

驱动中国10月18日消息,Windows 11 26H2中kernel32.dll等核心文件仍沿用MS-DOS时代8.3命名规则,微软解释称这是为了兼容历史程序,文件名变化会影响DLL链接,因此该规则数十年未被彻底移除。

驱动中国10月18日消息,Windows 11 26H2中的部分核心系统文件仍沿用MS-DOS时代的8.3命名规则,微软将这一安排与兼容性需求联系起来。相关规则涉及文件名长度、字符范围、大小写处理以及程序链接机制。

科技媒体Windows Latest提到,Windows 11 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实际上指向同一文件。

微软资深员工Raymond Chen对8个字符和3个字符的由来作出说明。他表示,这一限制沿袭自CP/M。Raymond Chen称,他本人并不知道CP/M为什么选中这两个数字。CP/M的目录格式中有两个保留字节,理论上可以将文件名长度扩展至10.3。

Raymond Chen还推测,微软数十年没有更改文件名的原因,在于程序可能通过文件名与某个DLL建立链接。如果文件名发生变化,程序将无法找到对应文件。

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

进入21世纪之后,长文件名仍带来历史包袱。Windows可以为每个长文件名生成短文件别名。如果安装程序要将shellstyle.dll复制到一个已经存在shellstuff.dll的文件夹中,新文件很可能会被命名为SHELLS~2.DLL。

版权声明:本文由驱动中国整理发布,转载需注明出处与原文链接。如有疑问请联系 editor@qudong.com。
来源:驱动中国 · 原文链接:https://www.qudong.com/article/526520.html
本文价值 ★★★★★ 4 4 人已评
登录后为本文打分
网友评论0 条评论
正在回复 的评论取消
评论加载中…
🔐

登录后参与互动

评论、点赞均可赚积分
连续签到、邀请好友也有奖励 🎁

电脑端: 微信扫码登录 微信内: 一键登录

微信扫一扫

打开微信「扫一扫」,分享本文到朋友圈或好友