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