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/m.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/m.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燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP