精简指令集为什么用硬布线控制,到底用了什么技术( 二 )


我做过windows下的开发,用户态和内核态都有 。相比其他平台,windows的兼容性真的有点变态 。我曾经在网上找了一个97年(貌似)的象棋软件,但是它仍然运行在最新的win10中没有任何问题(近20年) 。至于为什么windows的兼容性这么变态,我觉得有以下几个原因:1 。被迫:windows不仅仅是一个系统,而是一个生态,微软的windows只是这个生态的核心(它控制着标准的制定) 。在这个生态中也有大量的硬件制造商(the 。如果你是微软,你要和那么多厂商协调,你也一样,会做到极致的兼容 。否则,新系统一发布,就会出现一大堆问题 。同时,微软深深意识到,如果没有兼容性,就没有微软 。这个可以参考牙膏厂的cpu 。蹩脚的32位设计是兼容16位的,然后amd的64位又要兼容32位,这是个很别扭的设计 。2.主观原因前面提到了 。以下是windows如何做到这一点 。从api的角度来看(因为api是一个系统与另一个系统进行通信的标准语言),windows API(无论是内核层还是应用层)充斥着大量基本不使用的兼容性API,windows API本身的设计就有很好的兼容性考虑 。例如,许多结构中的第一个字段是cbsize,它用于标识该结构的长度 。一旦将来字段扩展势必改变cbsize,底层api实现可以通过这个字段做不同的兼容性处理;3.我讲了生态学和api 。这里先说一下微软的文档,它是链接海量开发者和系统核心的最重要的渠道 。微软的文档是我见过最好的,基本上可以涉及到开发的方方面面 。也有很多例子 。我经常跟其他兄弟说的一句话是,想做好windows开发,看msdn里的文档就行了,不要找什么csdn的现成代码(这里没有贬义csdn) 。最后,我想说,我现在从事的是国产化替代相关的工作,现在网络上到处都是为国产化叫好的话 。当然,我是核心技术国产化替代的坚定支持者,但不得不说任重道远 。无论是国家相关主管部门,还是我们开发商,紧跟国家战略固然重要,但还是要沉下心来好好设计(自己想想[傻笑]) 。

推荐阅读