「自主可控」的系統 —— Gentoo Linux

老波哥來了 發佈 2023-06-01T06:07:18.570042+00:00

最近,陸陸續續寫了一些關於作業系統的小文。比如這篇 「一群人的倔強——開源Windows系統 https://www.toutiao.com/article/7235242944700891709/ 「,收穫了不少的批評和指正。


最近,陸陸續續寫了一些關於作業系統的小文。比如這篇 「一群人的倔強——開源Windows系統 https://www.toutiao.com/article/7235242944700891709/ 「,收穫了不少的批評和指正。



其實在日常的工作和學習中,我使用的是一款叫做「Gentoo Linux」的發行版。說起Linux,更為大家所熟知的可能是Fedora、CentOS、UBUNTU、SUSE等等。那麼Gentoo又是誰呢?它有什麼特點呢?


在眾多 Linux 發行版中,Gentoo可以說是最有個性的一個,與其說他是一個發行版,不如說他其實可以說不是一個發行版。Gentoo Linux 具有高度可定製、靈活性和強大的軟體包管理功能。

甚至說這是一個「自主可控」的 Linux作業系統也不為過。


時間退回到20世紀末的1999年,當時的軟體工程師Daniel Robbins從BSD的Ports機製得到靈感,開始了他的 Linux 定製之旅,為此創建了 Enoch Linux 這一定製發行版。根植於 Enoch 項目中的初衷是賦予用戶充分的定製權限、展現 Linux 的靈活性以及提升系統性能。然而,由於開發資源有限,Enoch 項目未能走出實驗階段。


隨著對定製化需求的進一步挖掘,Daniel Robbins 決定將 Enoch 改進為一個更出色的Linux。在2002年,Enoch Linux 迎來了新生,源於一種叫 Gentoo 的南極企鵝,Gentoo Linux 被賦予了敏捷與迅速的特質,這也標誌著系統發展中的一個重要階段。


在2004年,Daniel Robbins 辭去了 Gentoo 基金會的職務,但其發展並無絲毫停滯。如今,Gentoo Linux 已在 Linux 發行版中獨樹一幟,贏得了許多忠實擁躉。


儘管創始人 Daniel Robbins 離開了 Gentoo 基金會,但是這個廣受好評的發行版依然在社區成員的共同努力下持續發展。


2007年,Gentoo 社區創立"Gentoo/Alt"計劃,以支持如 PPC、MIPS、Alpha 和 SPARC 等非 x86 或非 amd64 的。


2013年,Gentoo 社區成立了 Systemd 項目組,致力於在社區範圍內支持和維護最新的 Linux init 系統 Systemd。與傳統 init 系統相比,Systemd 提供了更高效的系統引導過程、依賴關係管理以及並行啟動服務的能力。


2015年,Gentoo 社區發布了新的「Hardened Gentoo」計劃,旨在加強系統安全。


2018年:GitHub 發生一起針對Gentoo的攻擊事件。攻擊者通過對Gentoo官方GitHub主頁的惡意修改,企圖分發受損代碼。儘管此次攻擊沒有給用戶造成嚴重損失,但它讓社區意識到了維護和加固代碼庫安全的重要性。在攻擊事件發生後,Gentoo 社區採取了一系列措施提高代碼庫的安全性。



Gentoo Linux 以獨特的 Portage 軟體包管理系統、高度靈活的可定製性和豐富的文檔資源為用戶提供了個性化、專業的 Linux 使用體驗。



(一)Portage軟體包管理


作為Gentoo Linux 的核心組件之一,Portage 是一個獨特的軟體包管理系統,它與其他幾乎所有的Linux的包管理系統完全不同,它靈感來源於 FreeBSD 的 Ports。Portage 使用 Ebuild 腳本管理軟體包,每個 Ebuild 腳本均包含了從原始碼構建、測試、安裝到卸載的完整過程。通過 Portage,用戶可以相對「輕鬆地」從原始碼安裝、更新、刪除和查找軟體包,同時處理版本依賴關係等問題。


Portage 的功能相當豐富,主要包括以下幾個方面:


1. 原始碼構建:Portage 根據用戶自定義的 USE flag 設置,自動編譯、安裝軟體包,使用戶可以根據自己的需求和硬體針對每個軟體包進行個性化定製。


2. 依賴關係管理:Portage 會自動解析軟體包的依賴關係,包括必備依賴和可選依賴。用戶無需手動解決依賴問題。


3. 更新和升級:通過 Portage,用戶可以隨時從 Gentoo 官方或第三方軟體倉庫更新軟體包的 Ebuild 腳本,從而輕鬆升級整個系統。


(二)靈活性和可定製性


Gentoo 的靈活性和可定製性是其最引人注目的特點。從系統安裝到單個軟體包設置,Gentoo 都賦予用戶充分的控制權。對於這個特點,可以從以下幾點更好地理解:


1. 系統安裝:Gentoo 的安裝過程完全可定製。用戶可以根據硬體、目標用途和性能需求選擇適合自己的內核選項和驅動程序。


2. 內核定製:Gentoo 允許在安裝過程中選擇相應的內核及定製。預先定製好的內核選項可以靈活地適應各種硬體設備,提升系統性能,當然,用戶也可以完全自定義所有的內核選項自行編譯Linux內核。


3. USE flags:Gentoo 用戶可通過設定 USE flags,對軟體包進行進一步定製。例如,可以選擇是否支持不同的程式語言、不同的庫版本、圖形用戶界面工具集、文件系統、系統組建等功能。


以 Remmina 這款著名的遠程桌面客戶端軟體為例,它支持多重協議(如 RDP、VNC 和 SSH 等)。在 Gentoo 中,我們可以通過設置 USE flags 的方式來決定安裝該軟體時啟用哪些協議。

例如,默認的 USE flags 可能如下所示:


app-misc/remmina -RDP -SSH -VNC -XDMCP


這表示,默認安裝時不啟用 RDP(Remote Desktop Protocol)、SSH(Secure Shell)、VNC(Virtual Network Computing)和 XDMCP(X Display Manager Control Protocol)協議。


如果想要在安裝 Remmina 時啟用 VNC 和 SSH 支持,則可以在 /etc/portage/make.conf 或 /etc/portage/package.use 中把相應的 USE flags 設置為如下:


app-misc/remmina -RDP SSH VNC -XDMCP

這樣,在 Portage 自動編譯 Remmina 時,就會啟用 VNC 和 SSH 協議支持。 通過合理設置 USE flags,用戶不僅可以定製軟體包的功能,還可以為軟體包精簡不必要的依賴,從而減小系統的占用空間和提升運行效率。這也是 Gentoo Linux 高度自定義和靈活特性的一個典型體現。


(三)文檔和資源


作為一款社區驅動的Linux,Gentoo 擁有詳盡的官方文檔和豐富的社區資源。以下為一些值得關注的文檔和資源:


1. Gentoo 官方文檔:Gentoo Handbook 提供了從系統安裝、軟體更新、系統維護到高級設置等方面的詳細指導,幫助用戶充分了解和掌握 Gentoo 的基本操作。[Gentoo Handbook]( https://wiki.gentoo.org/wiki/Handbook:Main_Page )


2. Gentoo Wiki:涵蓋了各種技術問題的說明、常見問題解答及解決方案等信息,幫助用戶解決日常使用 Gentoo 遇到的問題。[Gentoo Wiki]( https://wiki.gentoo.org/ )


3. 社區論壇:Gentoo 社區論壇匯聚眾多熱衷於 Gentoo 的用戶,大家互相幫助、討論問題,激發新的想法。


4. 非官方資源:當然除了官方資源外,還有不少諸如 blog、學習指南、教程和錄播視頻等非官方資源,可以幫助用戶更深入地了解和學習 Gentoo Linux。


Gentoo Linux 的上述特點如原始碼構建、靈活性、可定製性以及詳盡的文檔和資源,使其在眾多 Linux 發行版中獨樹一幟,深受技術愛好者的青睞。


由於 Gentoo 支持高度定製和優化,一些企業和開發者選擇 Gentoo 作為伺服器環境。利用 USE flags 特性,用戶可以僅安裝最小必須的軟體包,實現伺服器的精簡配置。此外,Gentoo 的原始碼編譯構建方式可根據硬體特性進行優化,從而實現更優的性能。Gentoo 在網絡、資料庫、存儲等各類伺服器上表現出色,可以應用於數據中心、Web 伺服器和企業級應用伺服器等場景。



給予同樣的原因,Gentoo 也非常適用於嵌入式系統。其靈活性允許用戶根據硬體資源和軟體需求進行定製,從而適配各種類型的嵌入式硬體平台。對於資源受限的設備,通過優化 USE flags 和編譯選項,可實現系統的瘦身精簡。此外,Gentoo 還提供了 crossdev 工具,方便用戶進行交叉編譯。基於這些特點,Gentoo 也可以成為智能硬體、物聯網設備、工控系統等領域的理想選擇。



除了伺服器環境與嵌入式系統,Gentoo 的靈活定製性還使其在科研、教育、個人使用等場景中備受青睞。用戶可以根據自己的喜好和需求來定製系統,實現個性化的桌面環境、多媒體應用或特定的開發環境。例如,在科研領域,利用 Gentoo 的優化特性可以為高性能計算或複雜模擬等需求提供支持。


相傳,在美國能源部的橡樹嶺實驗室的超級計算機上也運行著gentoo linux作業系統。


Gentoo Linux 的意義在於彰顯了 Linux 多樣性和定製性。它為開發者、企業、教育、科研等各領域的用戶提供了一個高度可定製的、具有極高性能優化潛力的作業系統。同時,Gentoo 豐富的文檔和活躍社區也反映了 Linux 開源生態的繁榮與發展。


關鍵字: