百科问答小站 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 网友的相关建议: 
      

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

建议专业机构给予支援。




  

相关话题

  c语言程序经过编译后,每条指令都有一个内存地址,那两个程序如果有相同内存地址的指令怎么办? 
  开源代码里某个函数很长,这种代码能否认为是好的? 
  C语言 下面哪个定义是合法的? 
  如何评价"Null reference - my billion-dollar mistake"? 
  你工作中最推荐的 C/C++ 程序库有哪些,为什么? 
  微软会继续改善 Windows 10 的更新策略吗? 
  如何将 C 语言发挥到极致? 
  为什么没有国产 Windows 的诞生? 
  Windows 10 数字许可证是否会影响微软应用商店自动下载第三方应用? 
  fopen()的第二个参数为什么会采用字符串形式? 

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





© 2024-11-23 - tinynew.org. All Rights Reserved.
© 2024-11-23 - tinynew.org. 保留所有权利