Skip to content
WONGCW 網誌
  • 首頁
  • 論壇
  • 微博
  • 壁紙下載
  • 免費圖床
  • 視頻下載
  • 聊天室
  • SEO工具
  • 支援中心
  • 表格製作
  • More
    • 在線名片
    • 網頁搜索
    • 天氣預報
    • 二維碼生成器
  • Search Icon

WONGCW 網誌

記錄生活經驗與點滴

六年前關於是否將Linux核心從C語言轉換為現代C++語言的討論再次被提及

六年前關於是否將Linux核心從C語言轉換為現代C++語言的討論再次被提及

2024-01-12 Comments 0 Comment

關於將Linux 核心轉換為支援現代C++ 程式碼的前景,一個已有六年歷史的Linux 核心郵件列表討論再次被點燃。現有的Linux 核心主要由C 程式碼和各種手動編寫的彙編語言構成,加上Linux 核心支援Rust 的工作也不斷增加。雖然目前還不清楚是否有足夠的力量將其變為現實,但Linux 核心社群郵件列表已重啟討論,探討未來將Linux 核心C 程式碼轉換為C++ 的可能性。

image.webp

早在2018 年4 月1 日,紅帽工程師大衛-豪威爾斯(David Howells)就提出了一組45 個補丁,開始將核心轉換為C++。這將允許主線核心使用內聯模板函數、內聯重載函數、類別繼承以及其他目前Linux 核心的C 程式碼不支援的功能。那天很難進行認真的討論,最終這些補丁在Linux 核心郵件列表上停留了六年,沒有引起太多討論。

但昨天,長期從事Linux 開發的彼得安文(H. Peter Anvin)回應了內核郵件列表的主題。Anvin 寫了一篇長長的LKML 帖子,圍繞為什麼Linux 核心的C++ 最終可能是正確的時機提出了他的理由:

「安德魯-平斯基(Andrew Pinski)最近知道了這個主題。我知道它是在2018 年4 月1 日發布的,要么是個玩笑,要么可能被當成了玩笑。不過,我認為它有其合理性,我將在此嘗試激發我的觀點。”

自1999 年以來,C 和C++ 都有了長足的發展,而事實上,在我個人看來,C++ 終於”長大”了,對於作業系統核心所體現的嵌入式程式而言,它是一種更好的C 語。我是作為內核中大量巨集和內聯彙編Hacks的作者才這麼說的。

讓我這麼說的真正原因是,我們最近提出的許多針對gcc 擴充的要求,其實在標準C++ 中很容易實現,而且在許多情況下,無需修改全域程式碼即可改進基礎架構。

在我看來,C++14 是擁有合理元編程支持的”最低”版本,它擁有大部分元編程支持,卻沒有早期版本的類型地獄(C++11 擁有大部分元編程支持,但C ++14 填補了一些關鍵缺失)。

在我看來,C++20 才是真正改變遊戲規則的主要因素;雖然早期版本可以使用大量SFINAE hacks,但它們也提供了完全無用的錯誤訊息。C++20 增加了一些概念,這使得真正獲得合理的錯誤訊息成為可能”。

對於那些可能會提出”用Rust 重寫C 代碼!”的人,Anvin 在他的信息中主動補充道:

“現在,為什麼不使用Rust 呢?首先,Rust 使用的是不同的語法(在我看來,往往是無端的),不僅所有內核開發人員都需要非常熟悉,才能獲得與C 相同的”感覺”,而且將C 程式碼轉換為Rust 並不是一件可以零敲碎打的事情,而現有的C 程式碼經過一些清理就可以編譯為C++。”

SUSE Lans 的Jiri Slaby 表示支援Linux 核心的C++ 計畫。最初發布內核補丁的紅帽公司的David Howells 也表示支持這項討論。

我們將拭目以待LKML 討論的結果,以及在2024+ 年是否最終有足夠的動力支援現代C++ 程式碼–或至少是一些定義的C++14~20 子集–在Linux 核心中的應用。Linus Torvalds 過去一直熱衷於反對C++,但如果他對最近的C++ 標準更加滿意,或者他仍然堅持使用C 語言來維護Linux 內核,那麼我們就能看到潮流是否最終轉向了。

直到2022 年,Linux 核心才開始從C89 轉向C11。特別是如果達成共識,允許在核心中使用C++14/C++20 程式子集,那麼在提高基本編譯器要求之前,可能還需要一段時間才能通過,以便推出更廣泛的編譯器支援。

分享此文:

  • 按一下即可分享至 X(在新視窗中開啟) X
  • 按一下以分享至 Facebook(在新視窗中開啟) Facebook
  • 分享到 WhatsApp(在新視窗中開啟) WhatsApp
  • 按一下以分享到 Telegram(在新視窗中開啟) Telegram
  • 分享到 Pinterest(在新視窗中開啟) Pinterest
  • 分享到 Reddit(在新視窗中開啟) Reddit
  • 按一下即可以電子郵件傳送連結給朋友(在新視窗中開啟) 電子郵件
  • 點這裡列印(在新視窗中開啟) 列印

相關


Linux資訊

Post navigation

PREVIOUS
Proba-3衛星組合執行編隊航行任務以前所未有的方式觀測太陽大氣層
NEXT
在緊急情況下YouTube將引導您觀看正確的急救視頻

發表迴響取消回覆

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料。

More results...

Generic filters
Exact matches only
Search in title
Search in content
Search in excerpt
Filter by 分類
網站公告
Featured
限時免費
Windows 軟件下載
系統軟件
辦公軟件
圖像處理
影音媒體
網絡軟件
應用軟件
Mac 軟件下載
安卓軟件下載
網絡資訊
Mac資訊
Linux資訊
VPS資訊
NASA資訊
WordPress資訊
WeChat資訊
PHP資訊
教學資源
開源程序
網頁工具
SEO工具
醫療健康
其他資訊
Content from
Content to
2024 年 1 月
一 二 三 四 五 六 日
1234567
891011121314
15161718192021
22232425262728
293031  
« 12 月   2 月 »

分類

  • 網站公告
  • 限時免費
  • Windows 軟件下載
  • 系統軟件
  • 辦公軟件
  • 圖像處理
  • 影音媒體
  • 網絡軟件
  • 應用軟件
  • Mac 軟件下載
  • 安卓軟件下載
  • 網絡資訊
  • Mac資訊
  • Linux資訊
  • VPS資訊
  • NASA資訊
  • WordPress資訊
  • WeChat資訊
  • PHP資訊
  • 教學資源
  • 開源程序
  • 網頁工具
  • SEO工具
  • 醫療健康
  • 其他資訊

彙整

近期文章

  • 消息稱Manus母公司擬融資1億美元資金用於發展中國業務 2025-05-14
  • Unity威脅撤銷《DayZ》開發者工作室的軟體授權 2025-05-14
  • 特斯拉煥新Model Y遇冷:上市即促銷沒有”新”賣點 2025-05-14
  • 從太空俯瞰的生態警報:高山植物基因庫正加速流失 2025-05-14
  • 宇宙壽命大縮水科學家將毀滅倒數提前萬億倍 2025-05-14
  • 疫苗難產、藥物稀缺人類與真菌的戰鬥正陷入困境 2025-05-14
  • AI顛覆製藥業:數月設計抗體藥物挑戰傳統研發 2025-05-14
  • 大疆確認Mavic 4 Pro將不會在美國上市 2025-05-14
  • 京東CEO:騎手工服嚴重缺貨正在趕工 2025-05-14
  • 白宮大幅削減小額包裹關稅稅率美國業界卻有另一番見解 2025-05-14

熱門文章與頁面︰

  • 您可以在Windows 11 24H2 中找回WordPad
  • 傳三星2nm良品率逐漸提高英偉達及高通都有下單意向
  • 宇宙壽命大縮水科學家將毀滅倒數提前萬億倍
  • 新研究發現輔助駕駛技術更容易導致駕駛分心
  • 傳NVIDIA全球總部將設在台灣黃仁勳將於下周宣布選址
  • 富士闢謠拍立得相紙停產:仍在生產停產說法並不屬實
  • 滴滴寵物出遊:已有近200萬隻寵物完成檔案註冊正嘗試接入順風車運力
  • 航太六院140噸級重複使用液態氧甲烷引擎首次整機試驗成功
  • 國務院關稅稅則委員會公佈公告調整對原產於美國的進口商品加徵關稅措施
  • 商務座駕玩起未來風新寶馬5系列曝光

投遞稿件

歡迎各界人士投遞稿件到admin@wongcw.com

請提供以下資料:

1.你的名字

2.你的電郵

3.分類目錄

4.文章標題

5.文章摘要

6.文章內容

7.文章來源

 

聯繫我們

查詢,投稿,商務合作:
​admin@wongcw.com
​技術支援:
​support@wongcw.com
​客户服務:
​cs@wongcw.com

QQ群:833641851

快帆

MALUS

極度掃描

DMCA.com Protection Status

WONGCW 網誌

  • 免責聲明
  • 捐助我們
  • ThemeNcode PDF Viewer
  • ThemeNcode PDF Viewer SC
  • Events

服務器提供

本站使用之服務器由ikoula提供。

聯繫我們

查詢,投稿,商務合作:
​admin@wongcw.com
​技術支援:
​support@wongcw.com
​客户服務:
​cs@wongcw.com

QQ群:833641851

© 2025   All Rights Reserved.