{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
回答