03.06 仿頭條之問:為什麼當年Linus不用c#去寫Linux系統?是這樣嗎?

點灬小點


你好,我是程序員老馬。

我很高興能夠回答這個問題,希望能夠幫助到你。

為什麼當年Linus不用c#去寫Linux系統?這個確實一個楞住了,因為有點不合常理。

一、時間上的不對等

我們從下面的截圖中可以看到,Linux的作者是1991年發佈了0.01版本。最新的版本是2019年11月21日。

然後我們再對比一下C#語言的發佈時間。他是2000年發佈。最新穩定版本是2019年9月23日

顯然,從圖片可以看出C#比Linux晚了大約9年的時間才出來。這個時間上是不對等的,所以Linux的作者無法使用C#來開發Linux系統。

二、那麼C#出來後,可以用C#來編寫Linux系統嗎?

答案:理論是可以的。

因為C#也一樣可以做底層編譯為機器代碼,所以,沒有C#不能做的操作系統,差別更多的可能是在其它領域的方面。

三、那麼既然C#也能開發Linux,為什麼不做個C#版的Linux系統呢?

那是因為Linux是一種自由和開放源碼的類UNIX操作系統。

該操作系統的內核由1991年10月5日首次發佈,在加上用戶空間的應用程序之後,成為Linux操作系統。

Linux也是自由軟件和開放源代碼軟件發展中最著名的例子。只要遵循GNU 通用公共許可證(GPL),任何個人和機構都可以自由地使用Linux的所有底層源代碼,也可以自由地修改和再發布。

而C#是有版權的,屬於微軟件公司的版權。那麼一個以自由開放為宗旨的操作系統,就不太可能再去開發一個需要C#版權的系統了。

三、那麼C#後來不是有.net core開源的呢,能不能做呢?

答案:不能做。

如上圖,.net core出來的日期是2016年6月27日,如果這時候還來做操作系統,可能有點養魚的意思了。Linux系統早已經自成體系,完全沒有必要再開發一份了。你說是嗎?

希望我的回答能幫助到你,祝你好運。

謝謝。


春風扇


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


筱楓姊Z


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


Frank在努力生活


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


羅斯福亞丁


1.Linux發佈時間早於c#

Linux發佈時間:

c#發佈時間

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

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

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

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


阿東探世界


第一,Linux誕生的時候還沒有C#,Java也沒有。

第二,操作系統要和硬件打交道,當時只能用匯編和C語言


創業永不晚


機器碼之上是彙編,再到C語言。做操作系統,彙編比C更直接,執行效率更高。

所以底層操作系統用匯編更有效率。

安卓,IOS這些圖像界面,不能稱之為系統,應該稱之為系統界面。底層還是LINUX,UNIX這些系統。

圖形界面更友好些。應用開發更方便些。


不花錢降溫工程


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


墮落中的天使


C#不能用來寫操作系統,微軟也沒有用C#來寫windows,操作系統是硬件之上的系統,是原生態的。Linux是模仿unix的,unix是用C語言寫的,Linux寫的時候還沒有C#。


用戶5312843382781


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


分享到:


相關文章: