GNOME

桌面环境和图形用户界面

GNOME/ɡˈnm/[6]/ˈnm/[7])是一个完全由自由软件组成的桌面环境。它的目标操作系统Linux,但是大部分的BSD系统亦支持GNOME。

GNOME
Web、Weather和GNOME Files在GNOME 42上运行
Web、Weather和GNOME Files在GNOME 42上运行
原作者GNOME基金会
开发者GNOME基金会(主要由Red Hat
首次发布1999年3月3日,​25年前​(1999-03-03[1]
当前版本
  • 46.0 (2024年3月20日;稳定版本)[2][3]
编辑维基数据链接
源代码库 编辑维基数据链接
编程语言C语言C++ValaPythonJavaScript[4]
操作系统类Unix系统(使用WaylandX11
语言38种语言[5]
类型桌面环境
许可协议 编辑维基数据链接
网站www.gnome.org/ 编辑维基数据

GNOME是由志愿贡献者和受雇贡献者组成的GNOME计划开发,其最大的公司贡献者为红帽公司[8][9]。它是一个为开发软件框架、基于这些框架来开发客户端软件及协调软件翻译和开发无障碍软件的项目。

GNOME最初是GNU网络对象模型环境(GNU Network Object Model Environment)的缩写,但是已经被废弃了。[10]

GNOME以前曾是GNU计划的一部分。但在2021年时,GNOME基金会的执行董事Neil McGovern在他的推特发文,表示已多次要求GNU将GNOME从GNU项目页面中移除[11],而GNOME基金会也在他们的官方推特中发布帖子,澄清GNOME不是GNU项目的一部分。[12]

历史 编辑

GNOME 1 编辑

 
GNOME 1,1999年

1996年KDE Plasma发布,但KDE所依赖的Qt当时并未使用GPL许可。出于这种考虑,两个项目在1997年8月发起:一个是作为Qt库替代品的“Harmony”,另外一个就是建立一个基于非Qt库的桌面系统,即GNOME项目。GNOME的发起者为米格尔·德伊卡萨费德里科·梅纳[13]

GIMP Toolkit(GTK+)被选中做为Qt toolkit的替代,担当GNOME桌面的基础。GTK+使用LGPL,允许链接到此库的软件(例如GNOME的应用程序)使用任意的许可协议。GNOME计划的应用程序通常使用GPL许可证[14]

在GNOME变得普及后,1999年Qt加入GPL许可[15][16]。Troll Tech在GNU GPLQPL英语QPL双重许可证下发布了Unix版的Qt库。Qt加入GPL许可后,在2000年年底Harmony项目停止了开发,而KDE不再依赖非GPL的软件。2009年3月,Qt 4.5发布,加入了LGPL许可作为第三选择。

“GNOME”这个名称最初是“GNU Network Object Model Environment”的缩写,以反映最初为了开发类似微软对象链接与嵌入的框架[17]。但这个缩写最后被放弃,因为它不再反映GNOME项目的远景[18]

加州初创企业Eazel公司英语Eazel于1999至2001年开发Nautilus文件浏览器米格尔·德伊卡萨纳特·弗里德曼英语Nat Friedman于1999年创立后来成为Ximian的Helix Code公司。该公司开发了GNOME的基础设施和软件,2003年被Novell收购。

GNOME 2 编辑

 
GNOME 2.32 (2010年9月),最后一版的GNOME 2,运行于Ubuntu 10.10

GNOME 2与传统桌面界面十分相似,拥有一个用户可以与不同例如窗口、图标、文件等虚拟对象交互的桌面环境。GNOME 2使用Metacity为它的默认窗口管理器。GNOME 2的窗口、程序和文件管理和一般的桌面操作系统十分相似。在默认的设置中,桌面有一个启动菜单,可以用以开启已安装的程序及文件;己存在的窗口在下方的任务栏列出;而在右上角则有一个通知区以显示在背景运行的程序。不过,这些功能可以随用户喜好而更改位置、取代或甚至移除。

GNOME 3 编辑

 
GNOME 3使用现代方法来设计用户界面和命名应用程序。此为在 3.14 版的GNOME Shell中执行GNOME Weather的屏幕截图(2014年9月)

在GNOME 3之前,GNOME是根据传统的桌面比拟而设计,但在GNOME 3便被GNOME Shell所取代,所有转换窗口及虚拟桌面都在“活动”画面中进行。此外,因为Mutter取代了Metacity成为默认的窗口管理器,最小化及放大按钮不再默认在名称列中。Adwaita英语Adwaita (design language)取代了Clearlooks英语Clearlooks成为默认主题。很多GNOME核心程序英语GNOME Core Applications都重新设计以提供更连贯的用户体验。

这些重大的改变最初引来了广泛的批评。MATE桌面环境项目由GNOME 2的源始码派生,目标为保留GNOME 2的传统界面,同时支持最新的Linux技术,例如GTK+ 3。Linux Mint团队则以开发“Mint GNOME Shell Extensions”一系列于GNOME 3上执行之插件解决此问题,这些插件使GNOME 3的界面变回传统比拟界面。最后,Linux Mint决定从GNOME 3的源代码派生另外一个桌面环境“Cinnamon”。

截至2015年 (2015-Missing required parameter 1=month!),对GNOME 3的整体评价已大致转为正面[19]。Linux发行版Debian于GNOME 3发布时把XFCE改成默认的桌面环境,但在Debian 8己改回默认使用GNOME 3[20][19]。Linux创始者林纳斯·托瓦兹于2013年已改回使用GNOME 3[19]

GNOME 40 编辑

GNOME 40 与GTK 4.0 于2021年3月同时发布。用户概览界面改为水平界面,与以往Gnome 3.X 的垂直界面不同。Dash 方向亦由垂直改为水平。并且新发布版本亦引进新的触摸板手势。

 
GNOME 40 界面

版本 编辑

组成 GNOME 计划的每一部分都有自己的版本号和发布规划,通过各模块的维护者之间的定期协调(六个月),建立一个完整的 GNOME 发布版本。下边的发布版本列表分类属于稳定版。提供给测试和开发者的不稳定版本并未列入。

Gnome 3.38 之后采用新编号方式,推出Gnome 40,下个版本将是Gnome 41,Gnome 40 稳定板发行后以40.1、40.2、40.3……等来发布更新。

设计 编辑

GNOME的目标是要简单易用[42]

GNOME Shell 编辑

 
1
2
3
4
5
6
7
GNOME Shell的“活动”界面
1
“活动”按钮
2
Dash面版
3
搜索框
4
通知区
5
状态栏
6
桌面列表
7
小工具栏

GNOME Shell是GNOME桌面环境的默认用户界面。它的上方有一条面版,里面有(由左至右)“活动”按钮、正使用程序的菜单、时钟及一个系统菜单[43][44]。程序菜单显示当前使用程序的名称及提供例如程序设置、关闭程序等的选项。状态栏有代表电脑不同状态的图标、往系统设置的快捷方式以及退出、转换用户、以及关机的选项。

按下“活动”按钮、把鼠标移动至左上角或按下超级键会进入“活动”画面[45]。“活动”画面让用户纵览现时在执行的程序,以及让用户转换窗口、桌面,和执行程序。左边的Dash面版里面有最爱程序的快捷方式、所有正在执行程序的图标及往所有已安装程序列表的按钮[43]。在上方出现一个搜索框及右边有一个列出所有桌面的桌面列。通知在按下上方中央的时钟后的列表内[46]

GNOME Classic 编辑

 
GNOME 3经典模式

从GNOME 3.8起,GNOME提供一个经典模式,提供一个较传统的接口(类似GNOME 2)[47]

兼容性 编辑

GNOME运行在X11之上,在GNOME 3.10后亦可在Wayland下执行[44]。在大部分Linux发行版上的GNOME都是默认桌面环境或可安装的,而在大部分BSD系统上为Ports

2011年5月伦内德·柏特菱英语Lennart Poettering建议把systemd列为GNOME运行需要的软件[48]。因为systemd是Linux独有,这个提议亦引起了未来停止支持其他平台的讨论。由GNOME 3.2起,多席位配置英语multiseat configuration只支持使用systemd的系统[49]。2012年11月GNOME发布小组结论,指非基本的功能可以依赖systemd[50]

Freedesktop.org与GNOME 编辑

Freedesktop.org是一项帮助在不同的X Window桌面——例如GNOME,KDE或者XFCE——之间实现互操作和共享技术的计划。尽管并非正式标准化组织,Freedesktop.org定义了X桌面的基本特征,包括程序之间的拖放、窗口管理器规范、菜单布局、最近文件列表、程序之间复制粘贴和共享的MIME类型数据库等等。遵从Freedesktop.org规范使得GNOME应用程序能够集成到其他桌面(反之亦然),并起到鼓励桌面环境之间的竞争和合作的作用。

人机界面指南 编辑

自GNOME 2以起,可用性是GNOME的主要焦点。所以,GNOME人机界面指南英语Human Interface Guidelines便开始发展。所有GNOME程序都有连贯的图形用户界面,但是不止于使用同一套控件(英语:GUI widgets)。因为GNOME接口的设计是由在指南中的概念所引导,而指南自身则发展自认知工效学英语cognitive ergonomics[51]。跟从人机界面指南,开发者可以创造优质、连贯和可用性高的接口程序,因为指南里由接口设计至接口布局亦有规定。

在GNOME 2的重新编程中,很多对大部分用户而言用途不大的选项都被移除。夏霍·边灵顿英语Havoc Pennington在他于2002年发布的文章“自由软件的用户界面”(英语:Free Software UI)中总结了关于GNOME可用性的工作,强调所有首选项都有它的代价。使软件功能在默认时操作畅顺,比在设置中加入选项才令软件操作和预期一样更好:

一个传统的自由软件是可配置的,使它集合所有在新旧所有同类软件所见的功能,或甚至可配置得拥有任何新旧软件的所有功能(Emacs*咳*)。
这会造成问题吗?它会造成问题。原来选项有它们的代价。当然,某些选项亦有重要的价值-亦可成为关键的界面功能。但是每一个都有它们的代价,要小心地衡量它们的价值。很多用户和开发者都不明白此代价,令他们的选项有很大的代价但只有微小的价值。

——夏霍·边灵顿[52]

无障碍 编辑

GNOME旨在使桌面环境对身心障碍者物理上认知英语Cognitive ergonomics上都符合人体工学。GNOME的人机界面指南尝试把此因素包个在内,但是某些个别问题使由须由特别的软件解决。

GNOME透过无障碍包英语Accessibility ToolkitATK应用程序接口以解决计算机辅助功能上的问题,它容许特别的输入法语音合成语音识别以改善用户体验。某些工具在ATK内透过辅助技术服务供应接口英语Assistive Technology Service Provider InterfaceAT-SPI)注册,以在整个桌面环境中都可以使用。几个辅助技术软件,例如Orca英语Orca (assistive technology)屏幕阅读器Dasher英语Dasher (software)输入法是针对在GNOME上使用而开发的。

软件 编辑

核心程序 编辑

使用GTK+编写或基于Clutter编写的程序多不胜数,由不同开发者开发[53]。自GNOME 3以来,GNOME计划开发了一系列的程序,为GNOME核心程序英语GNOME Core Applications。所有GNOME核心程序都是根据人机界面指南而设计的[51]

游戏 编辑

GNOME游戏有与GNOME核心程序外观,以及与GNOME软件版本周期同时发布。它们全部都已根据人机界面指南重写。

开发工具 编辑

Anjuta集成开发环境Glade用户界面设计工具及Devhelp英语Devhelp应用程序接口阅览器是为了促进开发与GNOME连贯的软件而开发的。Accerciser计算机辅助阅览器以及其他调试工具,包括Nemiver英语NemiverGtkInspector乌克兰语GtkInspector和Alleyoop亦是为了促进开发GNOME软件而开发[54][55]

与第三方软件集成,例如与NoFlo集成亦有提供[56]

组织 编辑

和大多数自由软件类似,GNOME组织也很松散,其关于开发的讨论散布于众多向任何人开放的邮件列表。为了处理管理工作、施加影响以及与同对开发GNOME软件有兴趣的公司联系,2000年8月成立了GNOME基金会。基金会并不直接参与技术决策,而是协调发布和决定哪些对象应该成为GNOME的组成部分。基金会网站将其成员资格定义为:

“按照GNOME基金会章程,任何对GNOME有贡献者都可能是合格的成员。尽管很难精确定义,贡献者一般必须对GNOME计划有不小帮助。其贡献形式包括代码、文档、翻译、计划范围的资源维护或者其它对GNOME计划有意义的重要活动 。”

基金会成员每年11月选举董事会,其候选人必须也是贡献者。

参见 编辑

参考文献 编辑

  1. ^ GNOME 1.0 Released!. March 3, 1999. (原始内容存档于2016-04-19). 
  2. ^ GNOME 46 Released With Improved Search, Experimental VRR & More Polish. 2024年3月20日 [2024年3月20日] (英语). 
  3. ^ GNOME 46 released. 2024年3月20日 [2024年3月21日] (英语). 
  4. ^ GNOME Languages. Ohloh. Black Duck Software. [May 22, 2014]. (原始内容存档于2014-05-22). 
  5. ^ Day, Allan. GNOME 3.28 Release Notes. The GNOME Project. [May 22, 2014]. (原始内容存档于2018-05-05). 
  6. ^ Introducing GNOME 3.12. You Tube (video). Google. 2014-03-26 [2014-07-02]. (原始内容存档于2014-05-23). 
  7. ^ Clinton, Jason D. GNOME 3: Fewer interruptions. The GNOME Project (video). YouTube. 2011-04-02 [2011-04-07]. (原始内容存档于2011-04-09). 
  8. ^ GNOME census (PDF), Neary, [2015-07-20], (原始内容 (PDF)存档于2012-01-20) .
  9. ^ Staring into the abyss. Gnome. 2012-07-27 [2014-03-15]. (原始内容存档于2014-06-29). 
  10. ^ Klapper, Andre. Re: GNOME -> Gnome. GNOME marketing list (邮件列表). 6 April 2010 [26 March 2017]. (原始内容存档于2014-12-28). 
  11. ^ Neil McGovern. "I asked (as ED for @GNOME ) GNU to remove us from that page multiple times. They have refused to do so.". 2021-04-14 [2024-01-02] –通过Twitter. 
  12. ^ GNOME. "Let's also clarify that here. GNOME is NOT a GNU project.". 2021-04-14 [2024-01-02] –通过Twitter. 
  13. ^ About Us | GNOME. [2013-03-10]. (原始内容存档于2011-12-16). 
  14. ^ The GNOME Project: "GNOME Foundation Guidelines on Copyright Assignment页面存档备份,存于互联网档案馆)". Accessed March 26, 2013.
  15. ^ Announcement: Qt version 2.0 released, 1999-06-25 [2014-04-16], (原始内容存档于1999-10-07) 
  16. ^ Stallman, Richard Stallman. Stallman on Qt, the GPL, KDE, and GNOME. 2000-09-05 [2005-09-09]. (原始内容存档于2012-04-19). 
  17. ^ Pennington, Havoc. GTK+ / Gnome Application Development. 1999 [2015-07-24]. (原始内容存档于2010-07-11).  |chapter=被忽略 (帮助)
  18. ^ Re: GNOME -> Gnome. [2011-12-10]. (原始内容存档于2012-04-06). 
  19. ^ 19.0 19.1 19.2 Hoffman, Chris. How GNOME 3.14 is winning back disillusioned Linux users. PC World. IDG TechNetwork. [2015-04-05]. (原始内容存档于2015-03-29). 
  20. ^ Tozzi, Christopher. Open Source GNOME 3 Desktop Environment Wins Back Fans. The VAR Guy. Penton. [2015-04-05]. (原始内容存档于2015-03-30). 
  21. ^ Michael Larabel. Eight Interesting Improvements In GNOME 2.22. phoronix. 2008-01-29 [2008-01-30]. (原始内容存档于2008-01-30). 
  22. ^ GNOME Roadmap. [2008-06-02]. (原始内容存档于2008-05-27). 
  23. ^ GNOME 2.22 Release Notes. [2008-06-02]. (原始内容存档于2008-06-01). 
  24. ^ Untz, Vincent. Celebrating the release of GNOME 2.26!. gnome-announce-list (邮件列表). 2009-03-18 [2009-03-18]. (原始内容存档于2019-04-28). 
  25. ^ http://library.gnome.org/misc/release-notes/2.28/index.html.zh_CN页面存档备份,存于互联网档案馆) GNOME 2.28发行注记
  26. ^ Holwerda, Thom. GNOME 2.30 Released. OS News. 2010-03-31 [2010-04-04]. (原始内容存档于2018-11-06). 
  27. ^ GNOME 2.32 Release Notes. [2010-10-31]. (原始内容存档于2012-12-22). 
  28. ^ GNOME 3.0 Release Notes. [2011-04-07]. (原始内容存档于2013-01-27). 
  29. ^ Wallen, Jack. GNOME 3.10 has resurrected what was once the darling of the Linux desktop. TechRepublic. 2014-03-28 [2015-07-23]. (原始内容存档于2014-03-28). 
  30. ^ GNOME 3.20. March 23, 2016 [2016-07-02]. (原始内容存档于2016-04-08). 
  31. ^ GNOME 3.22 Release Notes. [2018-06-16]. (原始内容存档于2017-09-19). 
  32. ^ GNOME 3.24 Release Notes. [2018-06-16]. (原始内容存档于2018-11-20). 
  33. ^ GNOME 3.26 Release Notes. [2018-06-16]. (原始内容存档于2017-12-22). 
  34. ^ GNOME 3.28 Release Notes. [2018-05-05]. (原始内容存档于2018-05-07). 
  35. ^ GNOME 3.30 Release Notes. [2019-06-14]. (原始内容存档于2019-06-25). 
  36. ^ GNOME 3.32 Release Notes. [2019-06-14]. (原始内容存档于2019-05-22). 
  37. ^ GNOME 3.34 Release Notes. [2020-09-22]. (原始内容存档于2020-08-17). 
  38. ^ GNOME 3.36 Release Notes. [2020-09-22]. (原始内容存档于2020-05-24). 
  39. ^ GNOME 3.38 Release Notes. [2020-09-22]. (原始内容存档于2020-09-16). 
  40. ^ GNOME 40 Release Notes. [2021-03-24]. (原始内容存档于2021-03-24). 
  41. ^ GNOME 41 Release Notes. [2021-09-22]. (原始内容存档于2021-09-22). 
  42. ^ GNOME 3. The GNOME Project. [2014-06-12]. (原始内容存档于2014-06-04). 
  43. ^ 43.0 43.1 Terminology for Gnome Shell. GNOME Wiki. The GNOME Project. [2014-05-22]. (原始内容存档于2014-05-22). 
  44. ^ 44.0 44.1 Day, Allan. GNOME 3.10 Release Notes. The GNOME Project. [2014-05-22]. (原始内容存档于2014-06-25). 
  45. ^ GNOME 3 Cheat Sheet. GNOME Wiki. The GNOME Project. [2014-06-13]. (原始内容存档于2014-06-01). 
  46. ^ GNOME Shell Design. The GNOME Project. [2011-12-03]. (原始内容存档于2011-11-26). 
  47. ^ Day, Allan. GNOME 3.8 Release Notes. The GNOME Project. [2014-06-13]. (原始内容存档于2014-06-21). 
  48. ^ 柏特菱, 伦内德. systemd as external dependency. desktop-devel (邮件列表). 2011-05-18 [2014-06-12]. (原始内容存档于2014-10-10).  }}
  49. ^ Vitters, Olav; Klapper, André; Day, Allan. GNOME 3.2 Release Notes. The GNOME Project. [2011-10-05]. (原始内容存档于2012-12-23). 
  50. ^ Peters, Frederic. 20121104 meeting minutes. release-team (邮件列表). 2012-11-06 [2014-06-12]. (原始内容存档于2014-09-07). 
  51. ^ 51.0 51.1 GNOME人機界面指南. [2015-07-23]. (原始内容存档于2015-09-11). 
  52. ^ Pennington, Havoc. Free Software UI. April 2002 [2011-12-04]. (原始内容存档于2011-08-23). 
  53. ^ Applications - GNOME. GNOME. The GNOME Project. [2015-07-13]. (原始内容存档于2015-07-02). 
  54. ^ Matthias Clasen. GtkInspector Author's blog entry. 2014-05-15 [2014-05-17]. (原始内容存档于2014-05-17). 
  55. ^ GtkInspector in GNOME wiki. 2014-05-15 [2014-05-17]. (原始内容存档于2014-05-24). 
  56. ^ Bergius: Flowhub and the GNOME Developer Experience. LWN.net. 2014-05-02 [2014-05-24]. (原始内容存档于2018-12-26). 

外部链接 编辑

官方网站
第三方站点
参与中文翻译
其他