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

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

建议专业机构给予支援。




  

相关话题

  java的引用明明和指针没什么本质区别,java为什么还宣称没有指针并把这个当作语言的优点? 
  C/C++在函数调用时,为什么需要先将参数压栈? 
  电脑存在“熟悉”某项任务后运行变快的情况吗? 
  怎样用c语言画一个"三维的球体"? 
  如何看待微软的 Windows 10 Cloud? 
  苹果是PC品牌么? 
  影子系统的工作原理是什么? 
  C、C++、Java、JavaScript、PHP、Python、Ruby 这些语言分别主要用来开发什么? 
  为什么win10老断网,各种方法解决不掉,这么严重的问题,这么久微软也不打算修复么? 
  写库函数供他人用的原理是什么? 

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





© 2024-09-20 - tinynew.org. All Rights Reserved.
© 2024-09-20 - tinynew.org. 保留所有权利