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