龍蜥操作系統:又一個 Linux 操作系統?
故事的開始
自從 CentOS 宣布 CentOS 8 將成為絕響,業界在一片嘆息和抗議之後,紛紛易弦更張,尋找別的替代品。這之後,開源社區和業界對 CentOS Stream 的討論並沒有如預期的增加。除了偶爾成立的幾個 Stream SIG 還能引來一些關注,很多人都已經將目光放到了其它的替代品上了,尤其是採用了兼容 RHEL/CentOS 技術路線的幾個國內外 Linux 發行版,在很短的時間內就獲得了快速發展和極大關注。
在這個形勢之下,國內有幾家以企業服務市場為目標的「新」 Linux 發行版紛紛湧現。其實說「新」也不新,這些發行版大多沿襲自它們的發行商原本的企業內的定製分支,甚至有的發行版在 CentOS 停更之前就公開發布過。但說它們「新」是因為在新的機遇之下,這些發行版一改過去低調發展、剋制迭代的風格,更主動地擁抱了市場和迭代新技術,並將其投放到更大的用戶市場。
這裡,我們要談談其中一個值得注意的企業級操作系統:龍蜥操作系統(Anolis OS)。作為由阿里巴巴所孵化出來,並迅速擁有了多家核心企業支持的 Linux 發行版,顯然是很具有話題性和影響力的,也不可避免的會遇到一些爭議和觀察。為此,我帶上問題和龍蜥社區的理事長馬濤聊了聊關於龍蜥操作系統背後的那些事情。
磨一劍,需十年
龍蜥操作系統並不是一個憑空誕生的發行版,相反,龍蜥操作系統更像是阿里巴巴十年磨一劍的產物,也是阿里巴巴和以統信及三大運營商等為代表的多家企業的技術沉澱。
早在十年前,淘寶內核組就基於 Linux 內核打造了一個阿里雲內部使用的 Linux 發行版。而隨著阿里巴巴集團業務的擴大,淘寶內核組從過去只服務於淘寶內部,變成了如今的阿里雲智能基礎軟體部,將過去只為阿里巴巴內部提供服務的技術,開放給了更廣泛的開發者使用。也正是因為這樣的變化,促成了龍蜥操作系統的誕生。
龍蜥操作系統最大的特色是除了社區多家生態企業的聯合推動,還有不少來自阿里巴巴及其用戶的多年技術實踐的沉澱。
在系統安全方面,除了基於阿里雲在網路安全領域的積累而做的操作系統層面的加固外,龍蜥操作系統還提供了基於 OpenSSL 衍生的 BabaSSL,為龍蜥操作系統提供了諸如國密演算法、QUIC API 等特性。它還內置了首個機密計算開源容器 Inclavare Containers,後者剛剛被捐贈給 CNCF 基金會孵化。這樣,在安全方面龍蜥操作系統從根本上奠定了解決可信、可控問題的基礎。
在系統管理方面,龍蜥操作系統則提供了一個全棧覆蓋內核與核心組件的跟蹤和診斷工具 sysAK,增強龍蜥操作系統在系統層面和應用層面的可觀測性和可靠性,讓業務的監控和診斷更加簡單易用。
此外, 還有 Java 虛擬機 Dragonwell、PolarDB、OceanBase等一系列阿里巴巴自研的技術,都可以在龍蜥操作系統中找到身影。
可以看出,阿里巴巴是想將龍蜥操作系統打造成一艘承載著阿里巴巴在 Linux 技術方面多年積澱的旗艦。
一個字,「穩」
對於龍蜥操作系統來說,穩定是第一要素。那就要看,龍蜥操作系統為何這麼穩定?
得益於淘寶和阿里雲多年的打磨,歷經多年的雙十一大促、阿里雲流量暴漲等事件的打磨,如今的龍蜥操作系統在穩定這件事情上,做到了極致。
龍蜥操作系統,是在國家有關主管部委的指導下,以阿里云為牽頭單位,聯合統信軟體等多家專業操作系統廠商、多家晶元廠商和大行業用戶共同推出的。這意味著它的演進速度、演進場景完全不同。相比於傳統的操作系統場景,龍蜥操作系統的演進往往是在各種大型流量和大量用戶群的場景下催生的。
CentOS 主流版本與Anolis OS 衍生版宕機率對比 出處:阿里雲
通過在真實的業務流量場景下運行龍蜥操作系統,並在發現問題後及時修復,將更新推送到最新的龍蜥操作系統。它背後的阿里雲,為龍蜥操作系統的迭代和升級提供了海量的修復案例,幫助它在更多問題發生之前就將其解決掉。
如果我們將龍蜥操作系統和一些傳統發行版的廠商相比,龍蜥操作系統更像是通過開源的範式來開發的一個操作系統:通過將操作系統放在海量的應用場景和實戰場景下,去儘可能多地發現問題、修復問題。而傳統發行版廠商則更像是發現一個問題,修復一個問題,見招拆招地處理問題。雖然也會有定期的修復升級,但發現問題的頻率和對迭代的訴求,顯然和擁有海量應用場景的龍蜥操作系統不同。
套殼還是換芯?
作為一個追求穩定的發行版,龍蜥操作系統成為 CentOS 轉為 Stream 模式後的一個不可忽視的選擇。也讓 龍蜥操作系統成為了眾矢之的:「既然宣稱兼容 CentOS,那是不是就是 CentOS 套殼?」
我用這麼一個尖銳的問題,來尋求馬濤的答覆。他沒有顧左右而言他,直接了當地給出了他的答覆:「**兼容不僅僅不是套殼,更是技術能力強的體現**」,並進一步解釋到:「**兼容性並不是一句簡單的大白話,背後包括了一整套兼容性分析體系,比如對語言運行時的分析、對系統參數和行為的分析、對內核的介面分析等等,是一個貫穿操作系統、從上到下的超級工程。另一方面,龍蜥操作系統是一個面向企業提供服務的發行版,穩定是第一要素。而對於目前的 CentOS 用戶來說,我們如果無法提供對 CentOS 的兼容,又有哪個企業敢於選擇龍蜥操作系統呢?**」
其實每一次提起國產的 Linux 發行版,難免都會提及「套殼」這個話題。也正好借著龍蜥操作系統的話題,來聊聊這個事情。
到底什麼才是「套殼」?我們似乎一直都沒有一個明確的定義,難道說用了 Linux 內核就是 Linux 的「套殼」么?顯然不是的。那所有使用 RPM 包的發行版都是 CentOS 「套殼」么?答案顯然也是否定的。
其實從 Linux 的發行版的發展來看,所有的發行版幾乎都可以稱之為「套殼」,除了 Arch Linux 、Gentoo 等幾個少數的發行版以外,大部分都在使用 Deb 、RPM 打包系統,很難跳出這兩個包管理器的世界,難道說這世界上只有兩個發行版么?
對於 Linux 發行版來說,我們如果真的要定義「套殼」,應該說那些是「基於某一個發行版,替換一下主題,更新一下軟體,替換一些字眼」的發行版才是「套殼」,而我們看到的,像 SESL、openSUSE 之類的這些發行版,它們更多是延續社區的成功經驗,沿襲 CentOS 既有的技術方向,但獨立發展,獨立迭代的獨立發行版。
Anolis OS != Another Linux OS
所以,我們認為,龍蜥操作系統不是「又一個 Linux 操作系統」。一方面,這不是「又一個簡單複製」,套個殼的 Linux 發行版;另一方面,龍蜥操作系統承載的也不僅僅是 Linux 操作系統,在其上還搭載著各種安全、容器、應用服務等最新技術,是一艘久經風浪的、穩定的不沉之舟。
花絮:我問馬濤,到底龍蜥操作系統的英文名稱 「Anolis OS」 是什麼縮寫?他說:Anolis is Not Only LInux System。嗯,這很 GNU(is Not Unix)!
支持,還是支持
CentOS Linux 的落幕,源自其失去了企業的支持,源自單方面的付出沒有回報讓企業失去了支持下去的勇氣。而這個問題,其實對於任何一個發行版來說,都是存在的。龍蜥操作系統能夠獲得什麼樣的長期支持,才是它長期發展下去的原生動力。
就此問題,我對馬濤進行了「逼問」,龍蜥操作系統可以承諾多少年的支持?
馬濤給了我一個明確的承諾:10 年!
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive