Unity 是基于
GNOME桌面环境的用户界面, 由Canonical公司开发,主要用于
Ubuntu操作系统。
软件简介
Unity 最初出现在Ubuntu Netbook 10.10中。它最初的目的是更有效地利用上网本有限的屏幕尺寸。和 GNOME,
KDE 不同,Unity并非一个完整桌面程序安装包,而采用了现有的方案。
Unity 环境利用了来自 GNOME 3 中的一些关键组件,包括 Mutter 混合型窗口管理器和 Zeitgeist活动记录引擎。其启动器使用 Clutter 建立,这与构建
GNOME Shell所用的图形框架相同。虽然底层的技术相似,但 Unity 用户界面完全是不同的实现,它并没有使用来自 GNOME Shell 的任何代码。
Unity 这个新 Shell 主要被设计成可更高效的使用屏幕空间,与传统的桌面环境相比,消耗的系统资源更少。Unity 将成为 Ubuntu Netbook 版本及新的 Ubuntu Light 即时(instant-on) 计算平台的关键组件。Unity 环境打破了传统的 GNOME 面板配置。它的左边包括一个类似 Dock 的启动器和任务管理面板;而顶面板则由应用程序 Indicator、窗口 Indicator、以及活动窗口的菜单栏组成。截至2010年Unity开发人员使用的一个名叫Nux的工具替代了Clutter,实现了Unity变成了
Compiz的
窗口管理器一个插件,且运行速度要比Mutter快。2011年1月14日又发布了一个技术预览版规范的基于Qt的Unity 2D版本。
Ubuntu原本使用的是完整的GNOME桌面环境。由于Ubuntu创始人Mark Shuttleworth对用户体验的哲学理念与GNOME团队有不同的理解,从2011年4月的Ubuntu 11.04起,Ubuntu使用Unity作为默认的用户界面,而不采用全新的GNOME Shell。但Ubuntu可通过PPA来安装GNOME Shell 。
移植
因为Unity和Ayatana项目的开发主要是针对Ubuntu,所以最新的版本应用在Ubuntu上面。除Ubuntu之外,其他Linux发行版也尝试通过Ayatana项目将Unity移植相应
Linux版本。 由于移植Ayatana组件需要修改其他应用程序,这增加了移植的复杂性。
Arch Linux提供了许多的Ayatana组件,包括Unity和Unity 2D,但到2011年4月为止,这些都是陈旧的版本。
Fedora开发者宣布有意把Unity导入Fedora, 但这项计划被推迟到 Fedora 15,现已因无进展而取消。
Frugalware采用了Ayatana,包括Unity和Unity 2D,将作为即将到来的Frugalware版本的开发分支的一部分,但该项目已停止。
openSUSE提供了许多可用于GNOME的的Ayatana组件。由于Compiz不能完善解决的问题,开发者已被搁置了移植Unity的计划。
区别
Cononical同时维护两个独立的Unity版本,包括Unity和Unity 2D,两者的用户界面在视觉上几乎没有区别,但技术和实现方式是不同的。
Unity作为Compiz的插件,是使用
C++和Vala编程语言实现的,并使用了不常用的Nux的
OpenGL工具包。作为Compiz的一个插件,Unity的GPU加速性能可以广泛支持不同的硬件体系。
Unity 2D是一组单独的应用程序,采用Qt框架构建
图形用户界面语言QML来实现。 Unity 2D默认情况下,使用Metacity的窗口管理器,但也可以使用加速的窗口管理器,如 Compiz 或 KWin。 在Ubuntu 11.10上,Unity 2D使用了基于Xrender合成器的Metacity实现透明效果。从Ubuntu的11.10起,Unity 2D取代了经典的GNOME面板,提供给不能运行的Compiz的硬件系统。
2012年10月发布的Ubuntu 12.10不再包含Unity 2D,因为3D版已经能够更好地支持低配置的硬件系统。
评价
人们对Unity的评价褒贬不一。Unity的设计和部署一直存在争议,一些评论者认为部分软件在Unity上不能正常运行或功能遭到限制,另外一些评论者怀疑Unity相比于GNOME 2没太大的改进。2012年4月26日发布Ubuntu 12.04之后,Unity的统一接口更加成熟,也得到更多人的积极评价。