Re: [問題] 為什麼作業系統都用C寫? 而不用C++呢?

作者: jobsdone (完工了)   2019-06-12 22:20:09
這篇文章十周年了,最近看到Google新的作業系統 fuchsia想再來討論看看這個話題
fuchsia的kernel叫作zircon,是個microkernel
看了檔案名稱,大部分是cpp結尾
作業系統用c++寫的也不是說沒有,最近還有一篇論文是用go寫作業系統
但是由於是Google新的作業系統,讓我多思考了一下
看了一下原始碼的內容,給我的感覺更像c而不是c++,至少跟modern c++差很多
雖然c++的彈性很大,想寫成像c也可以
但是為什麼不乾脆寫c就好呢?
看了hacker news上的討論,大家好像共識也是在寫kernel這塊c還是比c++好
我自己這塊還不算太熟,有沒有人可以以自身經驗來猜測Google選用c++來開發新的kernel
的優缺嗎
作者: bdvstg (bdvstg)   2019-06-12 23:17:00
不同編譯器裝飾名稱規則不同?
作者: TitanEric (泰坦)   2019-06-12 23:34:00
之前看到有人用Rust寫
作者: firejox (Tangent)   2019-06-13 03:14:00
看過用haskell寫的
作者: MOONRAKER (㊣牛鶴鰻毛人)   2019-06-13 10:12:00
有時要看你主要開發平台上有什麼好用
作者: loadingN (sarsaparilla)   2019-06-13 10:42:00
ABI的問題嗎?
作者: CoNsTaR ((const *))   2019-06-13 10:51:00
用 Rust 寫問題會是什麼?目的碼體積太大?
作者: user1120 (使用者)   2019-06-13 14:36:00
C比較低階的緣故吧我猜...
作者: sarafciel (Cattuz)   2019-06-13 16:26:00
挖了一下source 我看著覺得很多地方很modern呀....XDzircon/system/ulib/下有一個fbl的library裡面有整套拿template刻的intrusive structure跟linux比的話用macro作抽象的頻率也低了很多整個coding style就是C with templates當然有不少地方還是寫得很C沒錯 不過以kernel負責的工作來講要寫得不像C也很難
作者: wahaha279 (哇哈哈:3)   2019-06-13 18:28:00
因為c就是拿來寫os的
作者: littleshan (我要加入劍道社!)   2019-06-15 08:55:00
Rust 當然可以實作 OS,Redox OS 就是了C++ 實作的 OS 可以看看 haiku過十年還能吵這個,C 真的是被過度神話的語言
作者: CoNsTaR ((const *))   2019-06-16 19:03:00
目前只要能讓人寫出堪用的東西就算是好語言你看看Java像C這樣務實的語言相比真的算很好了
作者: y3k (激流を制するは静水)   2019-06-17 13:55:00
可能高階的API可以用C++寫 但是底層跟Assembly通的還是要C吧
作者: Killercat (殺人貓™)   2019-06-18 11:27:00
我猜是因為name(signature) mangling的關係不過這問題應該主要是會卡linux系列的kernel

Links booklink

Contact Us: admin [ a t ] ucptt.com