Ubuntu 也開(kāi)始“銹化”
Righi 稱該項(xiàng)目初衷源自他的一個(gè)想法:在運(yùn)行時(shí)熱插拔 Linux 內(nèi)核調(diào)度程序并將其替換為用戶空間程序 —— 之所以在用戶空間而非內(nèi)核空間,是因?yàn)榍罢呖梢蕴峁└嗟撵`活性和安全性。
基于這個(gè)想法,Righi 最終采用 eBPF、sched-ext 和 Rust 在 Ubuntu 上創(chuàng)建了這個(gè)新的 Linux 調(diào)度程序。
-
eBPF 是 Linux 內(nèi)核提供的一項(xiàng)技術(shù),支持從用戶空間向內(nèi)核空間注入沙盒程序。
-
sched-ext 是 Linux 內(nèi)核中引入的一個(gè)新的調(diào)度類,它提供了一種將調(diào)度策略實(shí)現(xiàn)為 eBPF 程序的機(jī)制
編程語(yǔ)言方面,Righi 最終選擇 Rust 編寫(xiě)這個(gè)調(diào)度程序,他認(rèn)為 Rust 可以提供極大的編碼靈活性和優(yōu)勢(shì),例如內(nèi)存安全、零成本抽象和強(qiáng)大的類型系統(tǒng)。
Ubuntu 還沒(méi)有承諾將其作為發(fā)行版的一部分,Righi 也在博客表示這是一個(gè)實(shí)驗(yàn)性內(nèi)核項(xiàng)目,用于探索 Rust 在 Ubuntu 的應(yīng)用,并談到了 未來(lái) 利用 Rust 和 eBPF 進(jìn)行 “微內(nèi)核設(shè)計(jì)” 的可能性 。Righi 在博客介紹稱,用 Rust 開(kāi)發(fā)的內(nèi)核調(diào)度程序不僅為開(kāi)發(fā)者提供了便利,還能讓用戶也受益,比如可以根據(jù)用戶的工作負(fù)載和其他特殊情況加載優(yōu)化的調(diào)度程序。
博客文章最后寫(xiě)道:
“我們正朝著一種微內(nèi)核設(shè)計(jì)邁進(jìn) ,并有可能獲得 Linux 認(rèn)可:在上 述情況下,如果用戶空間調(diào)度程序崩潰,任務(wù)將無(wú)縫過(guò)渡到默認(rèn)的內(nèi)核調(diào)度程序,確保系統(tǒng)的持續(xù)可用性,而不會(huì)出現(xiàn)任何停機(jī)時(shí)間。
這表明,類似的方法也可用于其他子系統(tǒng),從而使 Linux 內(nèi)核能夠提供完全冗余和崩潰安全的系統(tǒng)?!?/span>
相關(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)驗(yàn)!2012 年接觸 Go 語(yǔ)言并創(chuàng)建了 Go 語(yǔ)言中文網(wǎng)!著有《 Go語(yǔ)言編程之旅 》、開(kāi)源圖書(shū)《 Go語(yǔ)言標(biāo)準(zhǔn)庫(kù) 》等。
堅(jiān)持輸出技術(shù)(包括 Go、Rust 等技術(shù))、職場(chǎng)心得和創(chuàng)業(yè)感悟!歡迎關(guān)注「polarisxu」一起成長(zhǎng)!也歡迎加我微信好友交流: gopherstudio
