DOS变成Windows的方式是一样的吗?
我们似乎最终支持并开发了微软的三个平台,我不确定边界应该在哪里.
为什么不能将CLR的好处(例如类型安全,内存保护等)内置到Windows本身?
或者进入浏览器?为什么要完全是其他虚拟机?(我们现在要处理的虚拟机间接层是如何处理的?我们刚刚添加了Silverlight - 在Flash之前 - 在浏览器内运行可能是一个VM安装......)
我可以看到服务器的原始Windows,但为什么不能有工作站的CLR直接与硬件(或至少不是整个Windows传统的球和链)交谈?
(ooppp - 我在这里有两个问题.让我们这样做 - 为什么不能将.net内置到Windows中?我理解向后兼容性 - 但.NET中的内容的安全性至少可以在Windows本身中使用,不能不是吗?它只是众多API中的另一组?)
Factoid - 我记得IBM PC上针对MS-DOS销售的竞争对手架构之一是UCSD-pascal运行时 - 一个VM.
让我们不要忘记,DOS并没有变成Windows,至少不是我们今天所熟悉和喜爱的Windows.DOS是操作系统,Windows 3.1是一个GUI shell,位于所述操作系统之上.
当Windows 95出现时,确实没有更多盒装产品标记为"Microsoft DOS",但Windows 95在架构上是DOS 7.0,其中GUI shell保持在顶部.
这继续通过Win98和WinME(又名Win9X).
我们今天所知的Windows(XP,Vista,2003,2008)的核心来自Windows NT项目,这是一个完全独立的野兽.(虽然NT被设计为与3.1及更高版本,9x二进制文件兼容,并且使用了几乎相同但扩展的API.)
DOS不再变形为我们熟悉的Windows,而不是原来的Linux核心变形为KDE.
只要存在本地针对Windows构建的产品仍然处于支持周期中,这两个API将需要继续共存.考虑到Windows API仍然存在于Windows Server 2008和Windows 7中,这意味着至少2017年.说实话,它可能会更长,因为虽然托管代码是一件很棒的事情,但它并不总是最合适/最好的答案.
另外......作为一名程序员,你应该比任何人都更清楚:从外面看来,做一些事情从来都不是那么容易!
Windows是数百万行代码,其中大部分是C语言.这代表了数十年的巨大投资.它不断被维护(固定)给今天的用户.如果他们在C#中重写每一行十年,然后调试和优化另外十行,而不完全破坏他们的业务,那么完全不可能阻止这个世界.
理论上可以将一些现有代码编译为在CLR上运行,但这样做不会带来任何好处.可以将一大部分C编译到CLR(使用C++/CLI编译器),但它不会自动启用垃圾收集.你必须从头开始重新设计以获得它.
好吧,对于一个CLR不是一个操作系统.这是一个很重要的原因,为什么不...我的意思是即使是研究操作系统,Singularity,也不仅仅是CLR.我想你应该阅读一些关于Windows内核和一般操作系统的书籍.
微软仍然是一些远离它的Windows版本.
但他们会从像我想的奇点开始.