回覆列表
  • 1 # 03479

    我本身是搞.NET的,但聽同事說過Linux上可以用Mono的來支援C#Mono是一個由Novell公司發起,一個致力於開創.NET在Linux上使用的開源工程。它包含了一個C#語言的編譯器,一個CLR的執行時,和一組類庫,並實現了 ADO.NET和ASP.NET。能夠使得開發人員在Linux用C#開發程式

  • 2 # IT斜槓中年

    哈哈,你這仿的有點那個意思了,我也來一個:

    據說蘋果的系統就是基於Linux開發的,為什麼Linus沒有做出Linux手機呢?

    補充:發現一堆回答的人,只有我一個認真看題了,哈哈。

  • 3 # 筱楓姊Z

    要是沒記錯,Linux比C++早5年左右吧,就算當時有C++,也不會用的,因為Linux核心要的是穩定和高效率,C++雖然相容C,但是臃腫,編譯器版本等問題不能寫核心,C++之父都明言,他都不能完全吃透C++。

  • 4 # 阿東探世界

    1.Linux釋出時間早於c#

    Linux釋出時間:

    c#釋出時間

    可以看到.Linux都有九年曆史之後c#才誕生.

    2.Linux上開源社群的.c#是微軟開發的.兩個範圍的東西.

    3.Linux採用c語言的原因最主要的是c語言執行效率高.

    而c#是微軟公司開發的,對效率沒有太大追求的語言.

  • 5 # 羅斯福亞丁

    這個問題問得過於外行,超出預料之外。不用C#的原因,是因為C#是基於.NET框架的語言體系,是微軟搞出來的一套開發語言。它是面向應用層的,建立在.NET框架上;而.NET又基於作業系統之上。所以,如果用它來寫作業系統,無異於在一個作業系統上安裝.NET框架後再寫一個作業系統,這個邏輯根本就行不通!能寫作業系統的一定是支援交叉編譯工具鏈的語言或者彙編,但凡需要框架支援的高階語言都沒戲。所以不要再問這種幼稚的問題了。

  • 6 # 聖希爾伯特

    這個方面,郭德綱是最專業的。他覺得是因為同行微軟不允許這麼做,擔心wibdows被搶了生意,所以,才不用c#的,畢竟c#也是微軟的。

  • 7 # Frank要加油

    因為作業系統是需要跟底層硬體打交道的,有些操作c語音都有心無力,還得調用匯編語言才能完成,更何況是更高階的語音,再說c#算個屁啊,為啥要拿他寫作業系統?

  • 8 # mwk金雕

    linus連c++都看不上,何況c井,linux的可移植性很大程度來自於c,c#這方面差距不是一般的大。另外從效能角度來說c#更是差了十萬八千里。用rust寫個作業系統也好過c#

  • 9 # 斯夫隨筆

    LINUS寫LINUX的時候還沒C#,而且作業系統只能拿C去寫,因為太底層了。。。WINDOWS的核心也應該是C寫的。。。

  • 10 # 墮落中的天使

    windows vista部分程式碼是c#寫的卡的一批,我覺得你這問題還不夠有深度,你應該問問linux,為啥不用微軟的畫板畫個系統出來。。。。幹嘛苦哈哈的寫那痛苦的c。

  • 11 # Beepbug

    第一,寫Linux時,還沒有C#,咱們不能讓女兒去生媽媽吧?第二,Linux是作業系統,最講究效率的,而C#只能開發不計效率的應用軟體。你要記住一個原則:微軟的東西都是低效率的,包括Windows。

  • 12 # 我也傳遞溫暖

    按照這觀點,彙編就壓根沒用了。不同層次有不同層次的需求,越往上,就是越來越封裝不能拆卸的模組,方便是方便了,浪費就大了。

  • 13 # 汛1

    這是出於執行效率考慮的,而不是其他。說C#出來的比Linux晚,這不是根本原因,如果C#更適合的話,完全可以用C#重構。現代的作業系統核心都是90%以上的C語言開發,另外不到10%是彙編。作業系統屬於底層的東西,是直接要管理硬體資源的,這個就要強調執行效率問題。而C語言是除組合語言之外,執行效率最高的語言。但為什麼不完全使用匯編開發,這個又是開發效率的問題了。去看這些得到認可,並且得到廣泛應用的作業系統。windows,linux,unix,bsd這些系統無一例外是使用C語言+組合語言開發的。再看看嵌入式,也都是使用C語言開發,而沒有選擇其它什麼語言。這些和硬體直接打交道的都會使用C語言,這也是C語言這麼多年在tiobe長期穩定排在1,2名的根本原因。

  • 14 # 三袋大菠蘿

    用C#開發和java開發在此例子中沒啥區別。

    用C#開發的成品,必須帶.net平臺。啥叫.net平臺?你可以認為是java虛擬機器。

    .net平臺解析C#編譯完的成品:byte-code。你可以理解為軟體做的的指令集,.net把它翻譯成硬體指令,然後程式才能跑。

    在還沒有任何作業系統的情況下,也就沒有.net,你C#所依賴的執行環境都沒有,怎麼去開發作業系統?

    所以作業系統必須是編譯結果為硬體指令級別的程式,例如彙編和C。

  • 15 # warensoft

    問這個問題,能看出題主在軟體行業涉世未深。

    一來,有linux那個年代,還沒有c#。第二呢,作業系統要用c來寫,才能保證速度,c#和java一樣,是跑在c編寫的執行時環境上的,做上層應用很爽,作業系統肯定不行了。

    一個典型的例子就是安卓系統,其本質是linux作業系統層和最上層應用之間,加入了不少java編寫的管理層程式碼。手機上用用還可以,時間長了,記憶體滿了,速度變得很慢,你可以重啟。但是,作伺服器,安卓是完全無法擔當的

  • 16 # 藍鳥啃蘋果

    其實Delphi語言是C#的前身,Anders Hejlsberg(安德斯-海森博格)是他們的生父,但是linux是1991年搞出來的,1995 Delphi才出現,到C#出來都什麼時候了;其實C#語言也不差如果徹底開源並且共享發行的話,搞個作業系統其實不難;不過目前C#和Java一樣鬱悶,Java馬上要開始割草了,C#還在解決普及的問題,從軟體自由度的考慮Rust是最有前途的搞出操作系統的

  • 17 # 皮蛋XXXXL

    因為當時沒有c#,c#也不適合,就這麼簡單。

    你這個問題就像在問,“為什麼劉邦沒有請諸葛亮出山”一樣。

  • 18 # VFSsoft

    所有有GC的需要都無法勝任編寫作業系統的任務。

    且不說實時作業系統,就通用作業系統來說都是很吃力的。沒有那個核心能接受週期性的停止所有操作,進行記憶體回收的機制。最簡單的,核心需要處理硬體中斷,而在硬體中斷的處理方法中是不能停止的,更無法接受記憶體變動。

  • 19 # 輝哥

    c#,java對於記憶體的管理不適合做作業系統,即使把gc改為了即時釋放(類似c++的share_ptr),就趨近於C++了,c++這種oop的語言也不合適,原因是物件的機制會讓作業系統及其API呼叫效率低下(建構函式+解構函式等那幾個預設的函式,以及多型性),這些語言帶來語法糖對搞作業系統的人來講,沒什麼意義,他們更關注效率,記憶體開銷以及體積,你看嵌入式Linux只是裁剪一些,保留的核心可以減到1M左右還可以五臟俱全,c就直截了當,都是過程函式,釋放與擁有都自己做主,不寫程式碼絕不多一個開銷。至於c++的作用域離開釋放變數(RAII)gcc裡面有有擴充套件可以實現,所以我現在基本上都不用c++了。實際上還是產品聚焦的點不一樣,越是底層變化越小。純應用需要滿足不同使用者需求,這麼快怎麼來,聚焦與業務。各有各的用

  • 20 # 使用者3777536419966311

    linux下開發的話首選Java其次PHPC#理論上可以多平臺,但.net framework沒有linux下的版本暫時還不能在linux下做C#TIPS:可以在linux下裝個虛擬機器,虛擬個windows,然後在虛擬機器上做開發(前提是你的硬體配置要給力才行)

  • 中秋節和大豐收的關聯?
  • 書法6尺與4尺斗方怎麼做?