{eval=Array;=+count(Array);}
这个问题问得过于外行,超出预料之外。不用C#的原因,是因为C#是基于.NET框架的语言体系,是微软搞出来的一套开发语言。它是面向应用层的,建立在.NET框架上;而.NET又基于操作系统之上。所以,如果用它来写操作系统,无异于在一个操作系统上安装.NET框架后再写一个操作系统,这个逻辑根本就行不通!能写操作系统的一定是支持交叉编译工具链的语言或者汇编,但凡需要框架支持的高级语言都没戏。所以不要再问这种幼稚的问题了。
哈哈,你这仿的有点那个意思了,我也来一个:
据说苹果的系统就是基于Linux开发的,为什么Linus没有做出Linux手机呢?
补充:发现一堆回答的人,只有我一个认真看题了,哈哈。
linus连c++都看不上,何况c井,linux的可移植性很大程度来自于c,c#这方面差距不是一般的大。另外从性能角度来说c#更是差了十万八千里。用rust写个操作系统也好过c#
1.Linux发布时间早于c#
Linux发布时间:
c#发布时间
可以看到.Linux都有九年历史之后c#才诞生.
2.Linux上开源社区的.c#是微软开发的.两个范围的东西.
3.Linux采用c语言的原因最主要的是c语言执行效率高.
而c#是微软公司开发的,对效率没有太大追求的语言.
windows vista部分代码是c#写的卡的一批,我觉得你这问题还不够有深度,你应该问问linux,为啥不用微软的画板画个系统出来。。。。干嘛苦哈哈的写那痛苦的c。
用C#开发和java开发在此例子中没啥区别。
用C#开发的成品,必须带.net平台。啥叫.net平台?你可以认为是java虚拟机。
.net平台解析C#编译完的成品:byte-code。你可以理解为软件做的的指令集,.net把它翻译成硬件指令,然后程序才能跑。
在还没有任何操作系统的情况下,也就没有.net,你C#所依赖的运行环境都没有,怎么去开发操作系统?
所以操作系统必须是编译结果为硬件指令级别的程序,例如汇编和C。
所有有GC的需要都无法胜任编写操作系统的任务。
且不说实时操作系统,就通用操作系统来说都是很吃力的。没有那个内核能接受周期性的停止所有操作,进行内存回收的机制。最简单的,内核需要处理硬件中断,而在硬件中断的处理方法中是不能停止的,更无法接受内存变动。
这个方面,郭德纲是最专业的。他觉得是因为同行微软不允许这么做,担心wibdows被抢了生意,所以,才不用c#的,毕竟c#也是微软的。
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答