-
1 # 微微一信3256
-
2 # 飛馳網
我就看不上一幫對計算機理論一知半解的噴子。全憑個人喜好,一廂情願、盲人摸象的評價作業系統,你自己犯傻不要緊,帶歪了一群新人,罪過就大了。
知道什麼是核心嘛?核心好壞和你的舉距離有多遠?當你知道這些,你就明白有些人的回答有多可笑。
核心指的是作業系統的一部分軟體功能,它主要負責協調計算機的各種基礎資源,和執行緒間的通訊。例如:鍵盤如何敲字顯示到螢幕、記憶體如何劃分各個區域、硬碟檔案如何儲存(包括磁碟格式的約定)、網絡卡如何通訊、音效卡如何發聲等等...
如果你是一名低階語言的程式設計師,我相信你從來都不會考慮上述問題,因為作業系統核心已經幫你幹了上面的工作(這就是底層的基礎工作)。
核心像一個翻譯和排程,把應用程式的需求翻譯成機器內碼去操作硬體裝置。所以核心其實就是一個安全的硬體訪問介面軟體。(有點繞口)
什麼是安全的硬體訪問介面?
如果你是個底層核心級低階語言程式設計師,你繞過作業系統核心,直接操作硬體,風險巨大—— 可能一個指令錯誤導致燒燬晶片、毀掉顯示卡、丟失磁碟內容都有可能。因為你必須根據板卡的驅動程式的約定去操作硬體裝置,各類板卡裝置品牌繁多、技術指標不同。你自己想想你繞過核心的幫助,在超級冗繁的步驟下操作硬體風險大不?
如果有了作業系統核心提供的安全的訪問介面,你就可以透過c語言等高階語言,優雅的安全的操作硬體。相當於你透過c語言的指令訪問作業系統核心介面,核心把你的指令翻譯成安全的指令去操作硬體。
在這方面無疑Windows是最好的,它提供了多層級訪問介面,例如:c語言可以以最接近系統核心的優勢直接操作硬體和操作作業系統底層功能。
basic、Delphi等語言離核心遠了一點:所以它對硬體和系統底層操作更安全一點。
Java、c#這類需要框架支援的語言,又離核心遠了一點,受制於框架的約定,這類語言幾乎不會損壞硬體,可以透過框架和核心進行有限尺度的通訊。所以不用擔心一個指令沒寫好,把裝置損壞了。這類語言擁有比底層語言更豐富和友好的開發體驗。
PHP之類的程式設計師,那就離核心十萬八千里了。
為什麼有人說Linux好呢,拋開“免費”這個概念不說,主要是因為它開源,尤其是搞硬體開發的朋友深有感觸,Linux可以根據要求裁剪,去到不需要的功能,甚至可以把Linux裁剪到幾m大小,使Linux在積體電路的晶片中執行,使智慧裝置有了長足發展。
你敢想象動輒幾十上百g的Windows能裁剪到幾m嘛?
所以尺有所長,寸有所短,Windows是桌面生產力的絕對一哥,無論是工作、娛樂、開發等領域,和核心介面的多樣性、支援的完善程度,無論哪方面不是Linux能相提並論的。
但Windows是商業軟體,不開源,你想把它裁剪到幾MB大小,裝到洗衣機上、裝到微控制器上,想都別想,這也註定它會失去這部分市場。
最後的結論:你問哪個核心最牛,其實你還得問自己的需求是啥。如果你想給一個晶片上寫一個智慧控制程式,無疑Linux最棒。
如果你想擁有最佳的桌面體驗,Windows最棒。
回覆列表
談不上牛不牛一說,核代越高,能幹的事也就越多,演算法最佳化的也越全。但體積越大,需要的硬體也就越高。現在華為正在乾的鴻蒙比linux核心更狠的事,針對不同的硬體和功能需求開發不同的核心,但這些核心又有共性,統一的標準,介面等。