明敏 克雷西 發(fā)自 凹非寺
量子位 | 公眾號 QbitAI
蕪湖~在AI重塑智能終端這個關(guān)鍵時刻,首個適用于嵌入式和移動設(shè)備的開源Rust內(nèi)核,來了!
vivo最新宣布,開源自研藍河操作系統(tǒng)內(nèi)核
它完全由Rust語言編寫,從根本上解決了傳統(tǒng)C語言在內(nèi)存安全、維護成本上的長期難點。
而且更加輕量化,對硬件資源要求低;兼顧通用性,支持ARM、RISC-V架構(gòu)。
這不僅是國產(chǎn)操作系統(tǒng)的一次突破——在Linux等內(nèi)核以外另辟蹊徑;也是對國產(chǎn)操作系統(tǒng)的一次創(chuàng)新——使用新興的Rust編程語言,構(gòu)建內(nèi)存安全的操作系統(tǒng)內(nèi)核。
![]()
為了更進一步推動Rust生態(tài)發(fā)展,第三屆vivo藍河操作系統(tǒng)創(chuàng)新賽也即將啟動,面向行業(yè)及高校,為廣大開發(fā)者們提供學(xué)習(xí)交流平臺,并給予豐厚的獎勵;同時,vivo也將持續(xù)與行業(yè)伙伴一起,共同推動Rust語言在中國的推廣和普及。
vivo這一波,一石多鳥啊。
但問題是,引爆這一切的藍河內(nèi)核,究竟能做什么?
安全、輕量、通用
此次開源的部分是vivo自研藍河操作系統(tǒng)(BlueOS)的核心。
作為行業(yè)首個從內(nèi)核到系統(tǒng)框架全棧使用Rust語言編寫的操作系統(tǒng),藍河操作系統(tǒng)本身就具備天生更智慧、天生更流暢、天生更安全的特性——
智慧,指的是藍河操作系統(tǒng)架構(gòu)設(shè)計深度融合藍心智能,支持多種AI算法;流暢,是指藍河通過一系列高性能技術(shù),充分發(fā)揮了軟硬件資源的利用效率;安全,則是藍河操作系統(tǒng)全棧使用能保障內(nèi)存安全的Rust語言,從源頭確保安全性。
![]()
而這次vivo開源了藍河操作系統(tǒng)重中之重的部分——藍河內(nèi)核。它是行業(yè)首個適用于嵌入式和移動設(shè)備的開源Rust內(nèi)核,兼具安全、輕量和通用三大優(yōu)勢。
![]()
選擇Rust,天生更安全
首先說安全,在操作系統(tǒng)開發(fā)中,內(nèi)存安全一直是核心關(guān)注點。
統(tǒng)計數(shù)據(jù)顯示,傳統(tǒng)以C/C++編寫的系統(tǒng)中高達70%的嚴(yán)重安全漏洞源自內(nèi)存使用不當(dāng)。這導(dǎo)致諸如緩沖區(qū)溢出、空指針引用、Use-After-Free(UAF)等漏洞頻發(fā),嚴(yán)重威脅系統(tǒng)安全。
例如Dirty COW(臟牛)是Linux內(nèi)核中的一個本地提權(quán)漏洞,其名稱源自問題出現(xiàn)于內(nèi)核內(nèi)存管理的“拷貝-寫”機制,導(dǎo)致非法獲得root權(quán)限。
在Windows操作系統(tǒng)及其組件中,也有Use-After-Free(UAF)類漏洞屢見不鮮。攻擊者可能利用懸空指針訪問,從而執(zhí)行任意代碼或控制系統(tǒng)。
這樣的例子不勝枚舉,但都與內(nèi)存相關(guān)。
修復(fù)漏洞自然是操作系統(tǒng)安全工作的一個重要環(huán)節(jié),但這種模式治標(biāo)不治本,需要從更底層的維度,從根本上避免漏洞的出現(xiàn)。
藍河操作系統(tǒng)內(nèi)核選擇的Rust,就是這種從源頭實現(xiàn)天生更安全的技術(shù)路線。
藍河選用的Rust引入了所有權(quán)(Ownership)和借用檢查(Borrow Checker)機制,在編譯期間強制保證對內(nèi)存的合法訪問,可以防止緩沖區(qū)溢出,同時禁止空指針和懸空引用并避免重復(fù)釋放,減少內(nèi)存泄漏。
Rust不僅在編譯期杜絕大部分內(nèi)存錯誤,運行時也通過智能指針等機制確保安全高效的內(nèi)存管理。
這種模式下,內(nèi)存分配和釋放都有明確的生命周期,模塊間共享內(nèi)存也在類型系統(tǒng)約束下進行,安全可靠。
除了內(nèi)存安全方面的先天優(yōu)勢,藍河內(nèi)核在架構(gòu)上也采用了權(quán)限控制與特權(quán)分離、模塊隔離與安全擴展等多種安全設(shè)計策略,為系統(tǒng)提供了全面的防護。
![]()
不只安全,運行也要高效
在安全的基礎(chǔ)之上,藍河操作系統(tǒng)內(nèi)核還具備輕量化和跨平臺通用的特性。
操作系統(tǒng)開發(fā)者希望內(nèi)核及系統(tǒng)占用盡可能少的內(nèi)存。
一方面,許多終端設(shè)備(如物聯(lián)網(wǎng)設(shè)備、可穿戴設(shè)備)內(nèi)存容量有限,操作系統(tǒng)若過于龐大將擠占應(yīng)用運行空間;另一方面,較小的內(nèi)存占用也有助于降低設(shè)備成本。
針對這一需求,藍河操作系統(tǒng)內(nèi)核在設(shè)計時強調(diào)精簡和高效。得益于Rust語言的內(nèi)存安全和零成本抽象特性,藍河內(nèi)核避免了不必要的內(nèi)存開銷,最小內(nèi)核堆內(nèi)存占用僅13KB。
藍河內(nèi)核還通過精簡內(nèi)核架構(gòu)和減少依賴,在系統(tǒng)上電后需要初始化的組件更少,從而加快了引導(dǎo)過程。
整體而言,藍河內(nèi)核的輕量化設(shè)計有效滿足了開發(fā)者對快速啟動的期待,讓終端設(shè)備可以“即開即用”。
![]()
跨越平臺,兼容多種硬件架構(gòu)
隨著RISC-V架構(gòu)的興起以及ARM架構(gòu)在移動和IoT領(lǐng)域的廣泛應(yīng)用,操作系統(tǒng)若能同時支持多架構(gòu)將大大方便開發(fā)者的移植工作。
而且開發(fā)者習(xí)慣了POSIX標(biāo)準(zhǔn)等通用接口規(guī)范,希望新系統(tǒng)能兼容這些規(guī)范以重用現(xiàn)有的軟件和經(jīng)驗。
藍河操作系統(tǒng)內(nèi)核在設(shè)計之初就考慮了跨架構(gòu)的通用性,兼容RISC-V、ARM等多芯片架構(gòu),可滿足開發(fā)者在不同平臺的業(yè)務(wù)需要。
![]()
Rust語言編譯器支持從嵌入式芯片到高性能處理器的眾多架構(gòu),再加上沒有與平臺強綁定的匯編代碼負擔(dān),使內(nèi)核代碼本身極具可移植性。
藍河操作系統(tǒng)內(nèi)核的接口也支持POSIX標(biāo)準(zhǔn),提供統(tǒng)一規(guī)范的系統(tǒng)調(diào)用接口,呈現(xiàn)出統(tǒng)一的接口給上層軟件。
隨著其內(nèi)核現(xiàn)在開源并吸引社區(qū)參與移植優(yōu)化,為開發(fā)者提供了更大的自主空間。
從功能上看,藍河內(nèi)核配齊了操作系統(tǒng)最關(guān)鍵的核心功能:包括系統(tǒng)調(diào)度、內(nèi)存管理、文件系統(tǒng)、網(wǎng)絡(luò)和設(shè)備驅(qū)動等。
并且這些功能支持的模式廣泛、工作效率高,同時最大程度地適應(yīng)了開發(fā)者原有的開發(fā)習(xí)慣,可以說對開發(fā)者非常友好。
總之,vivo從底層方方面面出發(fā),用Rust構(gòu)建了全新的操作系統(tǒng)內(nèi)核。
目前,開發(fā)者可通過登錄以下網(wǎng)址獲取藍河內(nèi)核的開源代碼:
? AtomGit:https://atomgit.com/vivoblueos
? GitHub:https://github.com/vivoblueos
登錄藍河內(nèi)核官方網(wǎng)站(https://blueos.vivo.com/kernel)也可以了解相關(guān)信息。
![]()
但問題來了,為何非要這么做,而且開源?必要性是什么?背后用意如何?
全力推動國產(chǎn)Rust生態(tài)發(fā)展
個中影響因素,還要從技術(shù)本身、產(chǎn)業(yè)發(fā)展以及國家戰(zhàn)略幾個維度來分析。
首先,用Rust編寫系統(tǒng)內(nèi)核,本身就具備先天優(yōu)勢。
盡管成熟操作系統(tǒng)核心多由C/C++編寫(比如Linux),但存在一些老生常談的問題,比如引入內(nèi)存漏洞、UAF(Use After Free)、緩沖區(qū)溢出等,系統(tǒng)穩(wěn)定性依賴于極其嚴(yán)密的工程規(guī)范和人力經(jīng)驗。
Rust作為新一代編程語言,以內(nèi)存安全和高效率著稱,可以從源頭上避免更多安全隱患,長遠來看漏洞更少、可維護性更高。
根據(jù)Stack?Overflow的開發(fā)者調(diào)查,目前Rust已經(jīng)連續(xù)9年成為全球開發(fā)者最喜愛的編程語言。
并且,在系統(tǒng)軟件中引入Rust也已經(jīng)成為行業(yè)共識
比如谷歌已經(jīng)在Android中引入Rust模塊,Linux社區(qū)已經(jīng)接受Rust驅(qū)動模塊的主線集成,微軟嘗試用Rust替代Win 32驅(qū)動模塊……
這意味著,用Rust全棧重寫操作系統(tǒng)內(nèi)核并非重復(fù)造輪子,而是“單車變摩托”的升級。
![]()
其次,從產(chǎn)業(yè)層面來看,操作系統(tǒng)自主可控的呼聲一直很高,但長期以來國產(chǎn)操作系統(tǒng)對Linux內(nèi)核依舊有強依賴。
這就好比,盡管我們能用更好的材料和設(shè)計理念造出漂亮房子,但房子的關(guān)鍵房梁還是不可控。
因此,自研操作系統(tǒng)、掌握核心底層架構(gòu),一直是產(chǎn)業(yè)界需要共同突破的問題。一旦實現(xiàn)這一突破,則意味著對底層系統(tǒng)架構(gòu)話語權(quán)的重構(gòu),也重新定義了國產(chǎn)廠商以及開發(fā)者的創(chuàng)新邊界。
最后,vivo選擇將藍河內(nèi)核開源,這也更符合Rust生態(tài)以及中國操作系統(tǒng)產(chǎn)業(yè)生態(tài)良性發(fā)展的需求。
Rust雖然一直以來受到開發(fā)者們的歡迎,但是開發(fā)群體仍是少數(shù)。這意味著Rust語言還需要進一步推廣、壯大生態(tài),才能更充分發(fā)揮其優(yōu)勢,幫助產(chǎn)業(yè)鏈廠商提高競爭力。
vivo此次開源藍河內(nèi)核,也是在盡可能推動Rust生態(tài)建設(shè)。
開源操作系統(tǒng)≠開源內(nèi)核,比如很多廠商只開放UI或者SDK層,并不開放底層資源調(diào)度邏輯,這在一定程度上會限制創(chuàng)新發(fā)展。比如一個封閉的內(nèi)核,即使存在漏洞也難以及時審查與修復(fù)。
開源內(nèi)核則能吸引開發(fā)者與產(chǎn)業(yè)鏈共建,覆蓋硬件廠商、系統(tǒng)開發(fā)者以及高校開源社區(qū)等群體。這意味著,不只是vivo一家終端廠商可以用,所有感興趣的行業(yè)伙伴,都可以基于藍河內(nèi)核做創(chuàng)新。
比如在底層芯片上,藍河內(nèi)核兼容多芯片架構(gòu)支持多種平臺的內(nèi)聯(lián)匯編,就是為了進一步滿足開發(fā)者的實際需求。以及當(dāng)下Linux內(nèi)核依舊占主導(dǎo)地位,驅(qū)動代碼量近2000萬行,占比超過60%;藍河內(nèi)核既支持Rust開發(fā)驅(qū)動,也兼容已有C語言驅(qū)動,支持漸進式遷移驅(qū)動生態(tài)。
![]()
據(jù)了解,vivo計劃聯(lián)合開放原子開源基金會和高校,每年舉辦一屆藍河操作系統(tǒng)創(chuàng)新賽,并通過社區(qū)及多種其他方式,提供Rust學(xué)習(xí)、交流和課程開發(fā)平臺。
而我國的操作系統(tǒng)產(chǎn)業(yè),正需要這樣繁榮旺盛的開發(fā)生態(tài),才能從根本上實現(xiàn)自主創(chuàng)新可控。
加之大模型浪潮下AI原生終端興起,Agent、本地模型推理等對底層系統(tǒng)提出更高要求,包括實時性、安全性、高效資源調(diào)度等。用Rust全棧構(gòu)建的操作系統(tǒng)內(nèi)核,也更符合當(dāng)下開發(fā)需求,能夠為AI應(yīng)用大爆發(fā)提供更堅實可靠的底座。
如此種種也就不難理解,為何vivo要在此時此刻選擇開源藍河內(nèi)核。
天時地利人和,方方面面,都已到了最佳節(jié)點。
而能夠做到這一切,也不容忽略vivo自身的長期積累與一以貫之的技術(shù)信仰。甚至是縱觀全球,在Rust語言的研究、產(chǎn)品化落地和開源實踐上,vivo都已經(jīng)步入行業(yè)前列,是Rust發(fā)展的先行者和中堅力量。
藍河內(nèi)核的開源值得關(guān)注,不過最關(guān)鍵的還是為開發(fā)者們帶來了新機遇。
AI重塑終端,底層系統(tǒng)、上層應(yīng)用都將被全新重構(gòu),移動互聯(lián)網(wǎng)時代應(yīng)用爆發(fā)、百花齊放的局面,勢必將再次上演。
vivo趕在大爆發(fā)前開源,搶先為大家搭建好用底層平臺。
新語言、新內(nèi)核、新風(fēng)口。
開發(fā)者朋友們,新的金礦已經(jīng)來到眼前了。





京公網(wǎng)安備 11011402013531號