Gnome

2025年03月17日 | 阅读 9 分钟

Gnome 是类 Unix 操作系统上的开源且免费的桌面平台。最初,Gnome 的意思是 GNU 网络对象模型环境。然而,这个缩写被避免了,因为它不再遵循 GNOME 项目的愿景。

Gnome 是 GNU 项目的一部分,并通过 GNOME 项目进行改进,该项目由付费和志愿者贡献者组成,最大的集体贡献者是Red Hat。Gnome 是一个国际项目,致力于开发软件开发软件框架,以整合软件的本地化、可用性和国际化工作。

Gnome 3 是多个广泛的 Linux 发行版的默认桌面平台,例如 Endless OS、Tails、SteamOS、Oracle Linux、Pop!_OS、CentOS、Red Hat Enterprise Linux、SUSE Linux Enterprise(私有)、Debian 和 Fedora,以及 Solaris,一个广泛的 Unix OS。Solaris 被列为官方 Manjaro 版本。GNOME 2 的持续演变版本,称为 MATE,是旨在低资源利用率的各种 Linux 发行版的默认版本。

Gnome 历史

Gnome 1

它由 Federico Mena 和 Miguel de Icaza 于 1997 年 8 月 15 日发起,作为开发桌面应用程序及其环境的免费软件项目。Gnome 1 的出现部分是由于 K Desktop Environment。这个 K Desktop Environment 正在获得普及,并且依赖于一个直到 2.0 版本(1999 年 6 月)才使用 Qt 小部件工具包的许可证。

GTK(Gnome 工具包,当时称为 GIMP 工具包)被选为 GNOME 的基础,取代了 Qt。GTK 应用了GNU Lesser General Public License(简称 LGPL),这是一个免费软件许可证,它允许软件链接到它,可以使用更广泛的许可证,例如软件许可证(专有)。GNOME 的库基于 LGPL,应用程序基于 GPL。

GNOME 2

GNOME 2 提供了与传统桌面界面非常相似的功能。它拥有一个通用的桌面,用户可以与各种虚拟对象如文件、图标窗口进行交互。GNOME 2 最初使用 Sawfish,但后来改为 Metacity 作为默认窗口管理器。在 GNOME 2 中,文件、应用程序和窗口的处理方式与现代桌面操作系统类似。

桌面包含一个启动器菜单,可快速访问 GNOME 2 默认配置中的文件位置和已安装的程序;打开的窗口可以通过屏幕底部的任务栏访问,屏幕右上角提供了一个通知区域,供程序在后台执行时显示通知。但是,这些优点可以转移到用户期望的几乎所有方向和位置,替换为其他功能,或完全移除。

截至 2009 年,GNOME 2 是 Open Solaris 的默认桌面。MATE 桌面环境是 GNOME 2 代码库的一个分支。

GNOME 3

GNOME 1 和 2 遵循传统的桌面隐喻。此外,GNOME 3 于 2011 年发布,并随 GNOME Shell 一起进行了修改,GNOME Shell 是一种更独立的隐喻,其中在称为概览的独立区域中切换不同的虚拟桌面和任务。

Mutter 取代 Metacity 作为默认窗口管理器。默认情况下,最大化和最小化按钮不出现,工具栏、菜单栏和标题栏通过一种机制(即客户端装饰)合并到一个水平栏中。Adwaita 取代 Clearlooks 作为默认主题。GNOME 的一些核心应用程序也进行了重新设计,以实现更持久的用户界面。

GNOME 40

即将发布的 GNOME 版本将命名为GNOME 40

批评

GNOME 3 的发布在 Linux 和 GNU 社区引起了巨大争议,尤其是在从传统任务栏和菜单栏的转变方面。许多开发人员和用户表达了对可用性的兴趣。一些项目已经启动,以继续 GNOME 2.x 的开发或修改 GNOME 3.x 以使其更类似于 2.x 的版本。

GNOME 3 致力于为平板电脑和台式机提供一个统一的界面。这意味着仅应用在这两种设备上都能工作的输入技术,需要放弃桌面用户习惯的可能概念,例如保存文件或在桌面上右键单击。

这些重大修改最初引起了广泛的批评。MATE 桌面环境已通过 GNOME 2 代码库进行分支,目的是维护 GNOME 2 的传统界面,同时保持与 GTK 3 等现代 Linux 方法的兼容性。

Linux Mint 团队通过创建 Mint GNOME Shell Extensions 另一种方式定义了这个问题,这些扩展在 GNOME Shell 顶部区域执行,并允许其通过传统的桌面隐喻使用。最终,这导致了 Cinnamon 用户界面的开发,该界面通过 GNOME 3 的代码库进行分支。

在 GNOME 3 的早期发布批评者中,包括Linux 内核创建者 Linus Torvalds。Torvalds 在 GNOME 3.0 发布后一度排斥 GNOME。Torvalds 普遍表示,他遇到的挑战与许多他认识的 Linux 开发人员一样。

Torvalds 建议将 GNOME Tweak Tool 集成到 GNOME 3 中。
截至 2015 年,收到的评价更加积极。例如,一个 Linux 发行版 Debian,历史上一直使用 GNOME 2,在 GNOME 3 发布时切换到 Xfce,但为 Debian 8 Jessie 版本重新接受了 GNOME 3。

发布周期

在 GNOME 项目中,所有组件软件产品都有发布时间表和版本号。但是,单个模块维护者会结合他们的努力,在大约每六个月的计划中创建一个完整的、一致的 GNOME 版本,以及像 GLib 和 GTK 这样的库。

一些实验性项目被拒绝纳入库。
GNOME 的版本号遵循 v.xx.yy 方案。在此方案中,v 是主版本,可能包含大的修改,如 ABI 破坏。

这类方案没有连续的计划,出现是为了应对大规模修改的需求。xx 是次版本,大约每月在上述计划发布一次,其中 1 位或 2 位数字表示发布类型。yy 是点发布(3.20.6)。它们每周发布一次,以包含非破坏性的增强功能、修复问题等。

GNOME 的发布被创建到主 FTP 服务器,以源代码的形式,并附带配置脚本,这些脚本由操作系统供应商编译并整合到分发版中。

大多数供应商仅使用经过测试和稳定的 GNOME 版本,并以预编译包的形式提供,易于安装。

所有开发版和稳定版的 GNOME 源代码都存储在一个名为 GNOME git 源代码存储库的存储库中。

提供了几个构建脚本(例如以前的 GARNOME 或 JHBuild)来支持自动化源代码编译过程。

GNOME 的特性

Gnome

用户界面设计

自 GNOME 2 以来,生产力一直是 GNOME 的主要关注点。为了满足这一要求,开发了GNOME 人体学界面指南。每个 GNOME 程序都提供了一个系统的图形用户界面模式,但不限于使用相似的 GUI 小部件。相反,GNOME GUI 设计由 GNOME HIG 中指定的原则指导。

开发人员可以通过遵循 HIG 来开发可用、一致且高质量的 GUI 程序。因为它定义了从 GUI 设计到推荐小部件像素级布局的一切。

在重写 GNOME 2 时,删除了许多对大多数用户意义不大的设置。Havoc Pennington 在其 2002 年的文章“Free Software UI”中详细介绍了采用的工作。

它侧重于这样一个理念:每个偏好设置都有成本,并且默认情况下,让软件表现正确比包含一个 UI 偏好设置来获得期望的行为更好。

可访问性

GNOME 致力于为残障人士保持和创造认知和物理上符合人体工程学的桌面平台。GNOME HIG 尽最大努力考虑这一点,但具体问题由独特软件解决。

GNOME 通过使用辅助功能工具包应用程序编程接口来解决计算机辅助功能的问题。它允许通过利用独特的语音识别、语音合成和输入方法软件来增强用户体验。

通过 ATK 和辅助技术服务提供商接口(简称 AT-SPI)注册了一些实用程序,并已在桌面环境中得到普遍应用。一些方法,如Dasher 输入Orca 屏幕阅读器方法,是专门为与 GNOME 一起使用而开发的。

本地化和国际化

GNOME 软件的本地化和国际化取决于区域设置。

Desktop (桌面版)

GNOME 为桌面提供了三种不同的登录会话类型,如下所示:

GNOME Classic

从 GNOME 3.8 版本开始,Gnome 正式提供了一组支持的 GNOME Shell 扩展,该扩展在顶部栏上提供了“位置”菜单“应用程序”菜单(基本上是一个启动菜单),以及屏幕底部的面板和窗口列表,可以快速恢复和最小化打开的窗口。此外,它还在右下角提供虚拟桌面,在左下角提供“显示桌面”按钮。

GNOME Flashback

官方来说,它是 GNOME 3 版本的会话。GNOME Flashback 基于 Metacity(窗口管理器)和 GNOME 面板,轻量级。与 GNOME 相比,它对硬件的要求更少,使用的系统资源(CPU 和内存)也更少。

Shell。

它提供了一个高度可定制的传统面板(任务栏),包含多个插件,打包在一个包(gnome-applets)中,例如可自定义的开始菜单

GNOME Flashback 为 GNOME 2.x 系列提供了相同的用户体验,并内置了自定义范围。

它包含以下组件:

  • gnome-applets:一组有用的 GNOME 面板小程序
  • GNOME Panel:一个高度可配置的任务栏
  • Metacity(窗口管理器)

GNOME Shell

此桌面会话基于 Mutter(窗口管理器)和 GNOME Shell。它是默认会话,提供类似移动设备的模型来启动各种应用程序以及访问虚拟桌面和打开的窗口。

由于 GNOME Shell 和每个扩展都使用了 JavaScript,此桌面会话使用了更多的 CPURAM

GNOME Shell 是默认的 GNOME 图形 Shell。

它提供了一个顶栏,其中包含应用程序菜单、活动按钮、集成的时钟和系统状态菜单。

其中,应用程序菜单显示应用程序名称,并提供访问各种功能的权限,例如创建新应用程序窗口、关闭应用程序以及访问应用程序的偏好设置。

状态菜单包含许多系统设置的快捷方式、多个系统状态指示器以及会话操作,例如挂起计算机、锁定屏幕、切换用户和注销。

移动端

可以使用一个名为 libhandy 的库在 GNOME Shell 上创建响应式界面,该界面可以动态地适应设备。

GNOME 的应用程序

Gnome

核心应用程序

有大量由不同作者编写的基于 Clutter 和 GTK 的程序。GNOME 项目致力于开发一套程序,这套程序构成了 GNOME 3.0 版本以来的 GNOME 核心应用程序。

这些核心应用程序的共同点是遵循现代 HIG 并与 GNOME 的底层紧密集成,例如 GOA(gnome-online-accounts)设置、GVfs(GNOME 虚拟文件系统)、使用 Google Photos 的 GNOME Photos 和使用 Google Drive 的 GNOME Files。

简单来说,一些是现有的程序,经过改进的用户界面和新名称,而另一些则从头开始编写。

游戏

GNOME 游戏具有 GNOME 核心应用程序的感觉和外观。它们与 GNOME 同时发布。每个都经过重新设计,以符合现代 GNOME 人体学界面指南 (HIG)。

开发工具

许多程序员已经开发了与 GNOME 桌面一致的开发工具。此外,它还提供了 GNOME 软件开发。

GNOME Builder 是一个较新的集成开发环境,而 Anjuta 是一个较旧的版本。Glade Interface Design 软件使用 GTK 中的图形控件来构建图形界面。Accercised 是一个辅助功能浏览器,Devhelp 是 API 浏览器。

此外,还有 Alleyoop、GtkInspector、Nemiver 等各种调试工具,用于提供 GNOME 软件开发。

还存在与其他开发工具(例如

NoFlo)的集成选项。BuildStream 是一个可扩展且灵活的框架,用于在 Python 中指定的 YAML 格式的 CI 管道和构建建模。Beaver 是它的吉祥物,因为海狸在河流中建造东西。

一个名为 libsoup 的库使 GNOME 应用程序能够访问许多 HTTP 服务器。


下一主题抄袭检测工具