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

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

建议专业机构给予支援。




  

相关话题

  Windows里有什么程序或部件是从很早开始就沿用至今的? 
  现在的编程语言越来越多,为什么 C 和 C++ 还没有被现在的时代淘汰呢? 
  英语不好能学C语言和C++么? 
  老师要求我只能使用C++、C或者Java写算法,如何看这种做法? 
  C 语言中的 double 类型所能表示的数的范围为什么这么大,不是说只占32(或64)位吗? 
  Windows系统控制台初始界面为什么是黑色的?用黑色的意义在哪? 
  汇编的ret怎么区分近返回还是远返回? 
  如何通俗地解释 C、C++、C#、Java、JavaScript、HTML、Python的用处? 
  x86/x64 的处理器和 32/64 位的系统有什么关系? 
  除了 Windows,macOS,类 Unix 之外还有别的选择么? 

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





© 2024-05-17 - tinynew.org. All Rights Reserved.
© 2024-05-17 - tinynew.org. 保留所有权利