百科问答小站 logo
百科问答小站 font logo



为什么 Windows 是用 C 语言编写的,却默认对文件大小写不敏感? 第1页

  

user avatar   jiangshengvc 网友的相关建议: 
      

因为要兼容DOS。

DOS是微软买的,不过DOS不分大小写是IBM定的,IBM要兼容CP/M。

DOS兼容CP/M,CP/M兼容RSTS/E,RSTS/E兼容DOS-11,DOS-11到底要兼容什么实在找不到了,不过之前DEC的东西,像TOPS-10,也是不分大小写的。

其实操作系统不装第三方软件的话,要改大小写敏感很容易,但是因为有三观不合就挂掉的第三方软件的原因,就算到现在微软都不默认打开NTFS的大小写敏感。这个还是因为大小写不敏感是早期行业标准(比如1963年版的ASCII)而大小写不敏感的代码仍然需要在Windows上跑。

古代打孔机的代码集可不是8位的,而是五位六位的,而大小写52个字母就占了6位的绝大部分,所以早期软件都没有小写支持。标点符号比小写字母更重要吧,即使是1963年版的ASCII规定了大于号和小于号,DEC和IBM的字符集RADIX 50和SQUOZE里仍然连大于号跟小于号都没有,当时的编程语言,比如Fortran,因为要兼容这些硬件,比较都是用.GT. 和 .LT.。1963年版的ASCII里都没有的小写字母,优先级则更加低。对于这些年代来的古董软件的移植者来说,移植到不分大小写的系统当然要比移植到分大小写的Unix要容易,这也是Unix一开始没有什么企业支持的原因,也造成了各行各业不分大小写的程序在Windows上仍然大量存在。

有点年头的操作系统文件是不是分大小写基本上就是看这系统祖上是不是要兼容商用大型机的操作系统(以及从这些大型系统上移植而来的程序)。DOS-11研发的时候C语言还没出生。C语言一开始是用来跑在PDP-11上,PDP-11的文件系统Files-11也是不分大小写的,操作系统的语言敏感性真的是跟开发语言无关的东西。

PS 8.3的文件名格式也是DEC定的……


user avatar   Ivony 网友的相关建议: 
      

提问者如果你觉得你这个问题的前半句和后半句构成了逻辑关系的话,那你基本上也告别编程了……


user avatar   pansz 网友的相关建议: 
      

这个问题透着一股邪乎味儿,怎么看怎么危险啊……

建议专业机构给予支援。




  

相关话题

  i=1,为什么 (++i)+(++i)=6? 
  c语言如何定义没有返回值的main函数? 
  《C专家编程》第六十页参数在传递时为什么会首先放到寄存器中? 
  windows10下载vb6.0.exe安装包时为什么显示下载失败? 
  Windows 10 上有什么值得推荐的软件? 
  同样是 ARM,为什么 Mac 用就是王炸,Win 用就担心明天的股价? 
  苹果公司为什么要推出 Mac 可安装 Windows 的 Boot Camp 功能? 
  C# 和 Java 哪个更像 C++? 
  Windows 平台的 15 寸笔记本上配置 4K 分辨率屏幕是否实用? 
  C标准库的行业地位是怎么形成的? 

前一个讨论
如何看待飞腾7月23号线上发布的腾云s2500?
下一个讨论
学校食堂一种薄薄一片像午餐肉但很紧实有腊味的东西是什么呀?





© 2024-12-22 - tinynew.org. All Rights Reserved.
© 2024-12-22 - tinynew.org. 保留所有权利