天天看点

“自主可控”的系统 —— Gentoo Linux

作者:老波哥来了

最近,陆陆续续写了一些关于操作系统的小文。比如这篇 “一群人的倔强——开源Windows系统 “,收获了不少的批评和指正。

“自主可控”的系统 —— Gentoo Linux

其实在日常的工作和学习中,我使用的是一款叫做“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 使用体验。

“自主可控”的系统 —— Gentoo 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]( )

2. Gentoo Wiki:涵盖了各种技术问题的说明、常见问题解答及解决方案等信息,帮助用户解决日常使用 Gentoo 遇到的问题。[Gentoo Wiki]( )

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 开源生态的繁荣与发展。

“自主可控”的系统 —— Gentoo Linux

继续阅读