重新认识Ubuntu Unity(上):Unity之降临

这个月末,也就是4月26日,Ubuntu的第三个LTS(长时期支持版本)----12.04就要正式发布。对其而言,最受挑战的,将是「Unity桌面」。

为何?因为Unity桌面自从问世以来一直饱受争议,尽管我很喜欢它,但我不得不正视这个现实----作为支持力度长达五年的面向个人、企业以及服务器的Ubuntu 12.04,首次在LTS上采用了Unity这个新桌面环境,它究竟能不能保证质量和可用性?

因此,我决定回顾一下过去,从Unity的出现、设计、发展、变化入手,探讨一下关于开发一个图形系统背后的种种。从一个100%的观察者的角度,全面剖析Unity桌面。

文字可能有点多,请大家慢慢读 :D

Unity的出现

让我们回到2010年的5月份,也就是整整两年以前。Ubuntu创始人----Mark Shuttleworth先生在他的Blog上宣布了首次宣布了Unity桌面,文章是《Unity, and Ubuntu Light》。

从标题看,除了Unity之外,大家应该还注意到了「Ubuntu Light」这个概念,但是我相信大多数人应该都忘记它了,连Canonical也不再提了,为何?这要从当时的时代背景出发。

当时上网本流行正在迎来它最后的「辉煌」(如果你说它从来没辉煌过我也同意这个说法),iPad的发布与流行直接宣布了上网本的死刑。而当时Ubuntu Light便是一套面向上网本双启动的解决方案,它为上网本专门优化界面,并提供快速的双引导机制。

尽管Unity最先采用在Ubuntu 10.10的上网本上,并且部署在双引导机器上的这个愿景从来没有达成,但是Mark的愿景不仅仅是这么简单,他在blog上也写到,Unity是面向:Netbook和Desktop。

在当时预览版出来的时候,作为新事物的积极体验者的我的当然不会错过,也狠狠地试用并评测了一把,当时还写了这么篇文章《Ubuntu Unity看起来很美!》。请注意当时我用了「看起来很美」这个词,因而当时我对其还是持保留意见,也许是又一个失败的项目。

当时的截图,可以看出Unity基本元素已经定形了:

  • 上面板:在12.04当中Logo已经移至了Launcher,Google搜索框也不见,Indicator继续保留;
  • 左侧Launcher基本保持一致
  • Expose效果,由点击面板的Ubuntu Logo触发。

Ubuntu Unity 01

Launcher的右键菜单

Ubuntu Unity 02

动画效果

Ubuntu Unity 03

支持拖曳。

Ubuntu Unity 04

可以说,这个预览版的Unity已经有模有样了,在2010年的10月份,Unity做了更多改进,增加了支持搜索的Dash,并且在当时成为Ubuntu 10.10 Netbook Edition的默认桌面。

这个时候,技术将是一个绕不过的话题,当时的Unity实际上比较稳定----除了比较慢。当时Unity的技术实现是:

  • Mutter窗口管理器:也就是与GNOME Shell是同一个窗口管理器。Mutter虽然是一套新的窗口管理器,但是它早就应用至了Intel的Moblin(后来变成MeeGo),因此稳定性和可靠性方面比较好。
  • Clutter图形工具库:也是由Intel收购的一家软件公司开发,能方便快速地实现简单的动画效果,跟GTK的用法差不多,不需要对OpenGL有什么了解也能做出漂亮的3D动画效果。

也就是说,利用这两项比较成熟的技术,Canonical快速地实现了设计中的Unity桌面,并率先在Ubuntu 10.10 Netbook Edition上得以采用,除了运行效率不高,用户量也不高,这个时候的Unity,更多只是一个把想法快速实现出来的过程,或者说设计的demo。

然而,变化来的比任何时候都要快……

Unity接受公众检阅的时代

Ubuntu有着严格的发布周期,每半年一个常规版本,每两年一个LTS长时期支持版本。在发布完Ubuntu 10.10之后,Canonical又要马不停蹄的准备下个版本----Ubuntu 11.04了。正如你所知,这个版本,Unity桌面被正式采用作为桌面版本的默认的桌面环境,从此Desktop和Netbook大一统,Ubuntu Unity饱受争议,也从这个时候开始了。

也许是受到了iPad的冲击,也许是Mark Shuttleworth的蓝图本来也不在Netbook上,又或许是Mark本身是一个非常会变通的人,他做了将在Ubuntu 11.04默认使用Unity桌面环境的决定。这个决定的背后,仍然由技术选型决定了其最终质量,而这个技术变化的背后,有太多的纠结在里面。

大家都知道Compiz这个又炫又酷的Linux 3D桌面的代表作吧,本人也是因为这么炫酷的东西而进入Linux世界。然而Compiz的发展一直不是特别顺利,因为开发者们开发与设计理念的分岐,Compiz在出世后不久,就fork出了一个Beryl,继续走又炫又酷的插件化扩展机制。Beryl发展了一段时间后,双方又觉得理念还是一致的,不需要做重复劳动,于是又合并成了新的「Compiz Fusion」,再过一段时间后,有开发人员的不断进来与离去,Compiz Fusion又最后恢复了原始的名字:Compiz。而其最近的开发者与维护者Sam,则花费了大量的精力继续为Compiz添砖加瓦。大概是基于开发者少或者个人练习等原因,他在这段时间把Compiz重新用C++实现了一遍……就是在Ubuntu 10.10正式发布这段时间,他也正式被Canonical雇用(见:A bright new future for Compiz),开始了Compiz与Unity的集成之路。至于为什么要换成基于Compiz并且雇用其开发者,很简单,Ubuntu桌面版本身是一直基于经典Compiz与GNOME混合的,雇用核心的开发力量才能主导桌面环境的进一步开发。

之前我提到Unity最初是基于Mutter与Clutter发布了,要把Unity移植至Compiz,说难也不难,说容易也不容易,偏偏在Compiz用C++重写以后这段时间,它还完全没有接受稳定性方面的考验,于是……接下去这段历史就为大家所知了。

在半年的时间内,Unity成功地被移植至了基于Compiz管理器,并用了大量了OpenGL实现替换原先的Clutter以实现更多的自定义效果,同时还开发了Nux这个基于OpenGL的图形库以供Unity使用。然而,在短时间内开发一个成熟且可用的图形桌面系统真的不是一件容易的事情,我还清楚的记得当时Unity的实现方式:

  • 从Mutter的插件转变成了Compiz的插件;
  • 从Clutter变成了以OpenGL为主(可能还带有少量Clutter);
  • 代码几乎是C、C++、Vala的混合;

开发时间这么短,又经历了如此大的移植与重写,又是依赖于不成熟的Compiz(C++版),以致于在Ubuntu 11.04正式发布的前几周,Ubuntu开发人员仍在纠结到底要不要把这个还不成熟的Unity桌面推出来。那段时间我也第一时间用着这个几乎天天崩溃好几次的Unity桌面,作为用户也在纠结着,当时我的想法是:不成熟,一定不要作为默认桌面集成,可以供用户选择。

可是,Mark Shuttleworth很执着,既然开发出来了,不经历一下用户的狂风暴雨,怎么能证明Unity是好是坏呢?更何况,Ubuntu 11.04还不是LTS,它有试错的机会 :)

终于,2011年4月28日,Ubuntu 11.04 Natty Narwhal,正式批装上阵了……风风雨雨就此展开。

当时世界各大媒体都在关注Ubuntu 11.04,有人觉得这是Linux桌面的革命,也有人唱衰它…当然这不防碍相对客观的媒体去评测Unity,比如我最喜欢看Ars Technica的文章(话说他们把艺术与科技结合的很好),他们写了篇全面剖析Ubuntu 11.04的文章(不仅仅是Unity),见此:Riding the Narwhal: Ars reviews Unity in Ubuntu 11.04

这篇文章从Unity的操作与使用,把这个新的桌面环境几乎完整的展现给了大家。当然,写的再好的文章,看看终究是看看,Unity还是要自己用过才知道。现实是,大量的用户报告Unity经常不稳定崩溃,反应缓慢,使用不习惯,旧的应用兼容性不好…Unity受到了广泛的怀疑,包括 ----我!

我对Ubuntu开发者执意在Ubuntu 11.04默认采用了Unity就很有意见,加上Unity的不稳定,更是生气。但是我想冷静一来,好好地去使用并习惯一下Unity,究竟是何能让Mark先生如此坚定地推Unity桌面。于是我当时本着客观的原则,在2011年5月那段在家休息的时间里,并拿Mac OS X做为对比,写下了这篇三篇文章:

尽管标题是:细数Unity的好与坏,但是两篇是写「坏」,只有一篇是写「好」。而且我再也没有去写第四篇,因为写到后来我悲伤地发现:「坏」远远比「好」多,特别是对我这样对细节要求很高的人,有很多的不完美。更令人悲剧的是,中文用户直接被抛弃了 ----Ubuntu 11.04 Unity的Dash根本不支持中文搜索!

当然不得不提的是,Ubuntu的Indicator一直是我觉得做的最好的地方,比Mac OS X的同类事物都要好:

比如当时可以方便的发Twitter,尽管这个功能已经被去掉了。

Ubuntu Indicator 01

就这样,在Ubuntu 11.04正式发布至Ubuntu 11.10发布的这段时间,Ubuntu 11.04就像一个外星孤儿降临地球(实在不知道怎么来描述了),被大家无情的耻笑及怀疑着:你来地球的终极目的到底是神马?!

就在这段时间,我一边继续体验着这个有点坏掉的Unity,一边慢慢地领会到了Unity的设计思想,以及未来的道路…尽管我不知是否与Mark的愿景一致,但是我希望在下篇文章中,我对Unity的理解与愿景,能让大家对它有一个全新的认识。

下篇再见 :)

<推广> 本站架设于 Linode 东京机房,同时使用 云梯 进行科学上网

29 Comments

  1. 有好久没用ubuntu了,不过写的确实很长

  2. 不知道 Compiz 现在怎么样了……

  3. peter

    博主好文章,顶! 就是觉得旁边的那个fav bar太不好用了,怀念以前的上下两个bar。我也在想为啥mark要硬推unity啊。。

  4. Zack

    我也是在11.04的时候因为Unity的原因停用了Ubuntu。期待你的下一篇文章!!

  5. Gothack

    等下篇。。觉得下面才是重点。。

  6. Lin-X

    已经尝试去适应Unity,也许习惯不同,我更适应Gnome3,这也是为啥我还有一个坚持Ubuntu的理由...

  7. 就这样,在Ubuntu 11.04正式发布至Ubuntu 11.10发布的这段时间,Ubuntu 11.04就像一个外星孤儿降临地球(实在不知道怎么来描述了),被大家无情的耻笑及怀疑着:你来地球的终极目的到底是神马?!
    这段总结很精彩,其实大多数人都是不愿一抛弃自己的固有习惯,所以对于Unity的批评中,一部分确实是bug很多,另一部分就是习惯带来的偏见。话说回来,现在的Unity真的已经进步很多,真心希望有更多的人来尝试接受。

  8. “比如当时可以方便的发Twitter,尽管这个功能已经被去掉了。”
    有没有插件加回这个功能呢?

  9. 读了一边,好长篇~ ~~ 期待下部曲~~

  10. 没有觉得Unity不好用
    用了大半年
    觉得Dash能搜索是最实用的功能
    后来频繁看到Gnome的更新
    叛逃到Gnome发现Gnome也能搜索

  11. palytoxin

    为了使用稳定方便,Unity是装在台机上的,第一次用确实因为左侧的Dock而感到不爽,因为我自己定义的dock都在上方或者右边。
    觉得Unity这种为了开发而开发的行为,感觉没有一个统一的设计思想来保证Unity开发。我用的时候也在想,我用这货就是图了什么?以至于我给别人推荐ubuntu的时候也直接推荐lts版,只要说:“lts稳定,官方有着超长的时间支持,升级软件不用愁~”,而我也是知道compiz能把系统搞那么炫才适用U,觉得让别人直接一用Unity对这个系统说不定就没兴趣了。

    原版Gnome+Dock+不知道什么感觉混合起来的设计实在是意味不明,因为win的习惯大家都会尽量以自己的习惯使用。所以说我更偏向与重新设计一种使用方法,而不是像这种重复造轮子的行为……

    唯一觉得不错的是Unity这种充分利用侧栏空间的方式,因为1366*768这种狗屎分辨率的普及,上下栏实在是容不下更多东西了(像office2010设计成那样是找死,MD文档可是面积都不如工具条大了!
    以上都是个人想法,不喜莫喷= =

  12. xt

    期待下篇

  13. hongy19

    good article!

  14. lukmy

    期待下篇。。

  15. abellong

    unity 的 indicator 无法定制, 这是最大的问题

  16. 我用KDE桌面的~~!!

  17. xgdgsc

    (下),要等多久?这可是重点.
    个人感觉ubuntu非lts版都不够稳定,日常使用总时不时出点问题,像11.04的unity,直接导致我转向arch+kde,现在12.04的unity就好多了,很棒,想转回ubuntu,喜欢全局菜单,arch更新太快了,维护浪费时间.然而lts版很多软件又慢慢的变得太老,不知道ppa和backports对新软件支持如何?

  18. mattmonkey

    用ubuntu的理由就是它有unity。

    1、几乎不用配置,热键对窗口控制的能力就相当强。不同工作区也可以独立操作

    2、indicator的设计相当舒服。第一眼就折服了,受不了那么多菜单栏白花花的在你眼前

    2、indicator接口非常简单,几句话就可以挂上菜单。写自己想要的功能

    4、想不到更好的,gnome3的桌面太烂了,除了卖相完全不如gnome2,其他的太丑

  19. mattmonkey

    楼主截图最好把左边栏的数字一起截出来,介绍下。

    发现很多人根本不会用这功能。

  20. 虽然已经很久不用 Ubuntu 了,但是还是持续关注的。期待系列的下一篇文章!

  21. 用了一个月实在受不了这玩意,再加上那老爷T60也有点不给力,最终改用openbox+tint2+gmrun

  22. 原来你是这篇博文的作者呀,在CB上看到你的大作,佩服!

  23. Max

    unity是啥?一坨文明用语呗!gnome 3才是希望

  24. xgdgsc

    下呢??!!

  25. lee

    坐等下文,写的很李菊福。

  26. 2j6u

    期待下集!

Leave a Comment