C_and_CPP 板


LINE

我对C++不熟悉,熟悉的kernel或者作业系统只有GNU Linux 作业系统其实是很广泛的一个东西,可以指kernel上的变动,比如Debian 也可以指userspace的变动比如Android 我这篇文章专门讲Kernel层级的东西,我不熟悉的东西麻烦大家指正 : → bdvstg: 不同编译器装饰名称规则不同? 06/12 23:17 : → MOONRAKER: 有时要看你主要开发平台上有什麽好用 06/13 10:12 : 推 loadingN: ABI的问题吗? 06/13 10:42 对kernel其实不是很大的问题,毕竟Linux kernel很长一段时间都是只能用gcc编译的 Intel试过去支援,llvm也是一个。很多Marco或者struct declaiming无法相容许 ※ 引述《jobsdone (完工了)》之铭言: : 标题: Re: [问题] 为什麽作业系统都用C写? 而不用C++呢? : 时间: Wed Jun 12 22:20:09 2019 : fuchsia的kernel叫作zircon,是个microkernel : 看了档案名称,大部分是cpp结尾 : 看了一下原始码的内容,给我的感觉更像c而不是c++,至少跟modern c++差很多 : 虽然c++的弹性很大,想写成像c也可以 : 但是为什麽不乾脆写c就好呢? 问题就再於大家会问这个问题的人都太熟悉standard library了,可是在kernel space 下根本没有这种东西,更不要提基础的I/O操作了或者memory作业了。 C++在我的观点下,早期版本真的和C89很想,只是多了几个对struct上的重命名扩展(继承), 还有规定了一个struct的初始化与释放通用命名,允许对某个struct进行运算符重设定 多数C89不支援的功能,都可以用Marco定义来解决,其实没有多多少 仔细想以上上述的功能,到底有多少是必须的?好想也没有那麽多需求的 然後我们现在要处理这个多出来的继承功能,linker要大伤脑筋了,整个building的 速度就被拖下来了。这就要问为什麽要用C++了? 回头来看,C++後来的标准加入了一堆heap操作,atomic符号,signal/event处理, 这些东西对kernel space有什麽意义?compiler看了也不知道要怎麽做阿?那C++ 还真没什麽用处。结果又要为了这些功能挡掉一堆compiler的功能,不然就是拖慢 速度,可能别的小新开发者也会靠北靠母,为什麽自己想好好的程式这边不能用。 : 作业系统用c++写的也不是说没有,最近还有一篇论文是用go写作业系统 :



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 110.26.103.74 (台湾)
: ※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1560349211.A.234.html : 推 TitanEric: 之前看到有人用Rust写 06/12 23:34 : → firejox: 看过用haskell写的 06/13 03:14 : 推 CoNsTaR: 用 Rust 写问题会是什麽?目的码体积太大? 06/13 10:51 和Go的问题一样,他们语言的特性都没有了,这些语言设计的时候,就是没有考虑 过如果没有standard library的情况下会如何 Go还更糟糕,如果没有Go runtime,到底这个语言有什麽优势?programming model 都要大改了,顺便说一下thread什麽的,在kernel space其实一点意义都没有。 有人给我钱的话,我可以设计一个CPU可以吃Java bytecode或者Python。 -- 你比较喜欢哪一个? 当年不是党国大老但是被江浙财团捧红的中国帅哥 跟同样拥兵一方的诸侯约会裁军结果半途诸侯们爽约,平常有在写日记的庄严男人开始发飙 在旁边读着荒漠甘泉冷眼旁观看着蔷薇战争的人,为了中国的事情争吵 别国调侃是不是中国总统,义正词严的说着我是民族的灯塔的威严老先生 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 103.29.142.67 (香港)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1560409135.A.48F.html ※ 编辑: hizuki (103.29.142.67 香港), 06/13/2019 14:59:37
1F:→ MOONRAKER: 吃bytecode应该有过了 吃python比较霹雳 XD 06/13 15:14
ARM的ThumbEE或者Jazelle不完全是哦,不过被破梗了其实说来就这种东西 纯粹看能支援多少class而已 ※ 编辑: hizuki (103.29.142.67 香港), 06/13/2019 15:17:57
2F:推 CoNsTaR: Rust 的 std 不能算是语言特性吧 = = 06/13 17:18
3F:→ CoNsTaR: 现在有些 library 也都用 no_std + core 来拼效能,code 06/13 17:18
4F:→ CoNsTaR: 还是很 Rusty 啊 06/13 17:18
可是多数人理解的东西就是有std的情况阿,另外Rust我很不熟悉,想来和C++类似 ※ 编辑: hizuki (103.29.142.67 香港), 06/13/2019 17:27:02
5F:推 aria0520: Rust特性是安全相关吧 06/13 21:14
6F:推 TitanEric: 推 06/13 23:10
7F:推 CoNsTaR: Rust 从语意上来看像函数式语言,虽然语法上像物件导向, 06/14 01:55
8F:→ CoNsTaR: 我只能说和 C++ 的初衷实在差满多... 06/14 01:55
9F:→ CoNsTaR: 而且实际上有在用 Rust 都知道 std 常常不是最佳方案, 06/14 01:55
10F:→ CoNsTaR: 例如 hashmap 有 hashbrown (hashbrown 之前有 fxhash), 06/14 01:55
11F:→ CoNsTaR: channel 有 crossbeam 06/14 01:55
12F:→ CoNsTaR: 个人的感受,这个语言最大的特性是高度抽象化(例如有类 06/14 01:55
13F:→ CoNsTaR: 似GADT)的同时却仍在乎对硬体的低阶控制(例如copy或ref 06/14 01:55
14F:→ CoNsTaR: ,struct成员顺序、padding),没有肥大的GC或一些奇怪 06/14 01:55
15F:→ CoNsTaR: 的物件导向理论(亦即不需要一个runtime或std来做背後的 06/14 01:56
16F:→ CoNsTaR: 事情)却能在编译期保证没有 memory 或 interprocess 的 06/14 01:56
17F:→ CoNsTaR: 问题,不用编译成 C (which c++ kinda needs to) 却 nati 06/14 01:56
18F:→ CoNsTaR: vely 支援多平台多架构,而且拥有高效能 06/14 01:56
19F:→ CoNsTaR: 我不觉得这些语言特性和 std 有什麽关系,也不觉得没有 s 06/14 01:56
20F:→ CoNsTaR: td Rust 就不像 Rust,更不觉得它只是 yet another C++ 06/14 01:56
21F:推 TitanEric: 推楼上 想问一下Rust的定位像C还是C++? 06/14 12:43
22F:推 lc85301: 我觉得都不太像 06/14 14:56
23F:推 CoNsTaR: 我觉得有点像认清现实的 Haskell lol 06/14 16:28
24F:→ CoNsTaR: 如果只和 C C++ 比的话,纯 Rust(只包含 core 不包含 st 06/14 16:28
25F:→ CoNsTaR: d)写出来的东西语意上比较像只用 templates 和 std::var 06/14 16:28
26F:→ CoNsTaR: iant, std::optional, std::function..., c++2a concepts 06/14 16:28
27F:→ CoNsTaR: 的 C++ 06/14 16:28
28F:→ CoNsTaR: 但语法上其实没有 template, concepts 什麽的,你看到的 06/14 16:28
29F:→ CoNsTaR: 都是一般函数,loops,结构定义,结构实作,变数宣告 06/14 16:28
30F:→ firejox: atomic 还是有用处的,如果你是跑在多核心的环境下会需要 06/14 21:57
31F:→ firejox: 的 06/14 21:57
我的意思是atomic特性很难在语言层面保证
32F:推 lc85301: 认清现实的Haskell XDDDD 06/15 18:58
33F:推 TitanEric: 感谢C大认真解说 06/15 23:36
34F:推 yoco: 同 CoNsTaR 06/16 02:24
※ 编辑: hizuki (103.29.142.67 香港), 06/17/2019 16:30:01
35F:推 jimmytzeng: 有新创用RISC-V 设计自己cpu,然後移micropython上去 06/22 11:31







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP