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

看板C_and_CPP作者 (完工了)時間6年前 (2019/06/12 14:20), 編輯推噓8(8015)
留言23則, 12人參與, 6年前最新討論串36/37 (看更多)
這篇文章十周年了,最近看到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 的優缺嗎 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 110.26.103.74 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1560349211.A.234.html

06/12 23:17, 6年前 , 1F
不同編譯器裝飾名稱規則不同?
06/12 23:17, 1F

06/12 23:34, 6年前 , 2F
之前看到有人用Rust寫
06/12 23:34, 2F

06/13 03:14, 6年前 , 3F
看過用haskell寫的
06/13 03:14, 3F

06/13 10:12, 6年前 , 4F
有時要看你主要開發平台上有什麼好用
06/13 10:12, 4F

06/13 10:42, 6年前 , 5F
ABI的問題嗎?
06/13 10:42, 5F

06/13 10:51, 6年前 , 6F
用 Rust 寫問題會是什麼?目的碼體積太大?
06/13 10:51, 6F

06/13 14:36, 6年前 , 7F
C比較低階的緣故吧我猜...
06/13 14:36, 7F

06/13 16:26, 6年前 , 8F
挖了一下source 我看著覺得很多地方很modern呀....XD
06/13 16:26, 8F

06/13 16:29, 6年前 , 9F
zircon/system/ulib/下有一個fbl的library
06/13 16:29, 9F

06/13 16:30, 6年前 , 10F
裡面有整套拿template刻的intrusive structure
06/13 16:30, 10F

06/13 16:31, 6年前 , 11F
跟linux比的話用macro作抽象的頻率也低了很多
06/13 16:31, 11F

06/13 16:36, 6年前 , 12F
整個coding style就是C with templates
06/13 16:36, 12F

06/13 16:37, 6年前 , 13F
當然有不少地方還是寫得很C沒錯 不過以kernel負責的工
06/13 16:37, 13F

06/13 16:37, 6年前 , 14F
作來講要寫得不像C也很難
06/13 16:37, 14F

06/13 18:28, 6年前 , 15F
因為c就是拿來寫os的
06/13 18:28, 15F

06/15 08:55, 6年前 , 16F
Rust 當然可以實作 OS,Redox OS 就是了
06/15 08:55, 16F

06/15 08:57, 6年前 , 17F
C++ 實作的 OS 可以看看 haiku
06/15 08:57, 17F

06/15 08:59, 6年前 , 18F
過十年還能吵這個,C 真的是被過度神話的語言
06/15 08:59, 18F

06/16 19:03, 6年前 , 19F
目前只要能讓人寫出堪用的東西就算是好語言你看看Java
06/16 19:03, 19F

06/16 19:03, 6年前 , 20F
像C這樣務實的語言相比真的算很好了
06/16 19:03, 20F

06/17 13:55, 6年前 , 21F
可能高階的API可以用C++寫 但是底層跟Assembly通的還是要C吧
06/17 13:55, 21F

06/18 11:27, 6年前 , 22F
我猜是因為name(signature) mangling的關係
06/18 11:27, 22F

06/18 11:28, 6年前 , 23F
不過這問題應該主要是會卡linux系列的kernel
06/18 11:28, 23F
文章代碼(AID): #1T0GeR8q (C_and_CPP)
討論串 (同標題文章)
完整討論串 (本文為第 36 之 37 篇):
文章代碼(AID): #1T0GeR8q (C_and_CPP)