{eval=Array;=+count(Array);}
這個問題問得過于外行,超出預(yù)料之外。不用C#的原因,是因為C#是基于.NET框架的語言體系,是微軟搞出來的一套開發(fā)語言。它是面向應(yīng)用層的,建立在.NET框架上;而.NET又基于操作系統(tǒng)之上。所以,如果用它來寫操作系統(tǒng),無異于在一個操作系統(tǒng)上安裝.NET框架后再寫一個操作系統(tǒng),這個邏輯根本就行不通!能寫操作系統(tǒng)的一定是支持交叉編譯工具鏈的語言或者匯編,但凡需要框架支持的高級語言都沒戲。所以不要再問這種幼稚的問題了。
哈哈,你這仿的有點那個意思了,我也來一個:
據(jù)說蘋果的系統(tǒng)就是基于Linux開發(fā)的,為什么Linus沒有做出Linux手機呢?
補充:發(fā)現(xiàn)一堆回答的人,只有我一個認(rèn)真看題了,哈哈。
linus連c++都看不上,何況c井,linux的可移植性很大程度來自于c,c#這方面差距不是一般的大。另外從性能角度來說c#更是差了十萬八千里。用rust寫個操作系統(tǒng)也好過c#
1.Linux發(fā)布時間早于c#
Linux發(fā)布時間:
c#發(fā)布時間
可以看到.Linux都有九年歷史之后c#才誕生.
2.Linux上開源社區(qū)的.c#是微軟開發(fā)的.兩個范圍的東西.
3.Linux采用c語言的原因最主要的是c語言執(zhí)行效率高.
而c#是微軟公司開發(fā)的,對效率沒有太大追求的語言.
windows vista部分代碼是c#寫的卡的一批,我覺得你這問題還不夠有深度,你應(yīng)該問問linux,為啥不用微軟的畫板畫個系統(tǒng)出來。。。。干嘛苦哈哈的寫那痛苦的c。
用C#開發(fā)和java開發(fā)在此例子中沒啥區(qū)別。
用C#開發(fā)的成品,必須帶.net平臺。啥叫.net平臺?你可以認(rèn)為是java虛擬機。
.net平臺解析C#編譯完的成品:byte-code。你可以理解為軟件做的的指令集,.net把它翻譯成硬件指令,然后程序才能跑。
在還沒有任何操作系統(tǒng)的情況下,也就沒有.net,你C#所依賴的運行環(huán)境都沒有,怎么去開發(fā)操作系統(tǒng)?
所以操作系統(tǒng)必須是編譯結(jié)果為硬件指令級別的程序,例如匯編和C。
所有有GC的需要都無法勝任編寫操作系統(tǒng)的任務(wù)。
且不說實時操作系統(tǒng),就通用操作系統(tǒng)來說都是很吃力的。沒有那個內(nèi)核能接受周期性的停止所有操作,進行內(nèi)存回收的機制。最簡單的,內(nèi)核需要處理硬件中斷,而在硬件中斷的處理方法中是不能停止的,更無法接受內(nèi)存變動。
這個方面,郭德綱是最專業(yè)的。他覺得是因為同行微軟不允許這么做,擔(dān)心wibdows被搶了生意,所以,才不用c#的,畢竟c#也是微軟的。
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答