Ubuntu 也開始“銹化”
Righi 稱該項目初衷源自他的一個想法:在運行時熱插拔 Linux 內(nèi)核調(diào)度程序并將其替換為用戶空間程序 —— 之所以在用戶空間而非內(nèi)核空間,是因為前者可以提供更多的靈活性和安全性。
基于這個想法,Righi 最終采用 eBPF、sched-ext 和 Rust 在 Ubuntu 上創(chuàng)建了這個新的 Linux 調(diào)度程序。
-
eBPF 是 Linux 內(nèi)核提供的一項技術(shù),支持從用戶空間向內(nèi)核空間注入沙盒程序。
-
sched-ext 是 Linux 內(nèi)核中引入的一個新的調(diào)度類,它提供了一種將調(diào)度策略實現(xiàn)為 eBPF 程序的機(jī)制
編程語言方面,Righi 最終選擇 Rust 編寫這個調(diào)度程序,他認(rèn)為 Rust 可以提供極大的編碼靈活性和優(yōu)勢,例如內(nèi)存安全、零成本抽象和強(qiáng)大的類型系統(tǒng)。
Ubuntu 還沒有承諾將其作為發(fā)行版的一部分,Righi 也在博客表示這是一個實驗性內(nèi)核項目,用于探索 Rust 在 Ubuntu 的應(yīng)用,并談到了 未來 利用 Rust 和 eBPF 進(jìn)行 “微內(nèi)核設(shè)計” 的可能性 。Righi 在博客介紹稱,用 Rust 開發(fā)的內(nèi)核調(diào)度程序不僅為開發(fā)者提供了便利,還能讓用戶也受益,比如可以根據(jù)用戶的工作負(fù)載和其他特殊情況加載優(yōu)化的調(diào)度程序。
博客文章最后寫道:
“我們正朝著一種微內(nèi)核設(shè)計邁進(jìn) ,并有可能獲得 Linux 認(rèn)可:在上 述情況下,如果用戶空間調(diào)度程序崩潰,任務(wù)將無縫過渡到默認(rèn)的內(nèi)核調(diào)度程序,確保系統(tǒng)的持續(xù)可用性,而不會出現(xiàn)任何停機(jī)時間。
這表明,類似的方法也可用于其他子系統(tǒng),從而使 Linux 內(nèi)核能夠提供完全冗余和崩潰安全的系統(tǒng)。”
相關(guān)鏈接
https://github.com/sched-ext/scx/pull/161
https://github.com/sched-ext/scx/tree/main/scheds/rust/scx_rustland
https://ubuntu.com//blog/crafting-new-linux-schedulers-with-sched-ext-rust-and-ubuntu
往期推薦
我是 polarisxu,北大碩士畢業(yè),曾在 360 等知名互聯(lián)網(wǎng)公司工作,10多年技術(shù)研發(fā)與架構(gòu)經(jīng)驗!2012 年接觸 Go 語言并創(chuàng)建了 Go 語言中文網(wǎng)!著有《 Go語言編程之旅 》、開源圖書《 Go語言標(biāo)準(zhǔn)庫 》等。
堅持輸出技術(shù)(包括 Go、Rust 等技術(shù))、職場心得和創(chuàng)業(yè)感悟!歡迎關(guān)注「polarisxu」一起成長!也歡迎加我微信好友交流: gopherstudio
