跳转到路径导航栏
跳转到正文内容

浅析龙芯的自由软件战略

http://www.sina.com.cn  2009年07月06日 17:01  计算机世界
[商用频道] [企业采购] [办公打印] [投影机] [服务器] [网络与安全] [电脑][软件及服务]

  作者简介

  张乐

  (http://zhangle.is-a-geek.org)

  Gentoo Linux开发者暨中文社区负责人,Gentoo龙芯版维护者,2009 Google SoC Debian MIPS N32 Port项目导师,资深自由软件贡献者。曾为计算机世界实验室《龙芯2F处理器GCC 4.4优化探秘》一文撰写点评,并在测试中提供了全程支持。

  浅析龙芯的自由软件战略

  上期我们刊发了有关中科院计算所获得MIPS架构授权的评论,在肯定其产业化进展的同时,也提到基础软件部分逐渐成为新的瓶颈。本次我们特别邀请了长期奋斗在龙芯与自由软件领域一线的专家撰文进行点评,深入剖析目前这方面存在的种种问题。

  最近,有关龙芯“自主CPU

  战略失败”的争论掀起了很大的波澜。虽然这方面问题已得到澄清,但龙芯真正面临的问题其实还有很多。在这篇文章里,笔者针对龙芯与自由软件这个话题,结合近两年来参与项目的经验,阐述一些个人见解,希望能够唤醒龙芯团队与公众对此的关注。

  自诞生之日起,龙芯就与以Linux为代表的自由软件之间存在着千丝万缕的联系。并且由于商务、产业环境等方面的原因,现阶段龙芯可谓是相当倚重自由软件。但这并不是一件坏事,相反的,长远来看这是一件天大的好事。作为一个自由软件行业的长期从业者,笔者坚信未来自由软件将成为主流,龙芯只不过是顺应潮流而已。

  虽然自由软件经过20年左右的发展,已取得长足进步,但从市场占有率来看,还并不普及。尤其在以桌面应用为代表的领域,用户的使用习惯甚至成为超越软件功能的决定性因素。而在一些特殊的市场,自由软件已经打开了突破口,手机上的Android、上网本及MID领域的Moblin都是成功案例。所以,龙芯应该继续坚持自由软件这条道路,义无反顾地走下去,前途必将是无限光明。这一点,相信龙芯的开发团队、下游厂商和爱好者们都看得很清楚。

  再来看看龙芯平台上自由软件的发展现状。Linux本身支持MIPS,理论上可以运行在龙芯上,但这其中还需要做很多工作。首先,要保证软件可以运行。和x86平台上可以自行DIY不同,基于MIPS平台的产品一般都是特殊订制的,Linux内核为每种MIPS机器都设定了一套独立的配置选项。再加上龙芯和其他MIPS实现还有一些细微的差别,龙芯电脑上有一些硬件的驱动也尚未进入Linux内核,所以未经修改的内核在龙芯平台上是不能运行的。目前,这个问题已基本得到解决,但要彻底根治,还要等Linux/MIPS项目正式收录龙芯2F平台的内核补丁才行。

  其次,软件能否良好高效地运行?这个问题牵扯到许多层面,解决起来复杂的多。在底层,由于龙芯2号处理器实现了完整的MIPS III指令集,工具链(gcc/binutils)不经修改也是可以使用的。并且目前已发布的gcc 4.4和binutils 2.19已经支持龙芯2E和2F,可以生成龙芯特有的指令。然而,系统底层函数库glibc还缺少专门针对龙芯的优化,并且截至目前貌似还没有人着手进行。类似的,系统里所有多媒体相关的库和应用程序都可以做一些针对龙芯特殊指令的优化,但目前也尚未有人统计过有哪些需要优化,哪些已经做过优化。据笔者了解,中科龙梦现在有一个mplayer(Linux下使用最广泛的媒体播放器)的优化项目,只是其优化的形式值得商榷,具体细节下面还会详细探讨。

  除了工具链、函数库和应用程序,ABI的选择也是对性能影响较大的一个方面。在龙芯乃至整个MIPS世界里,使用最多的是O32的系统,它的效率明显落后于采用N32 ABI的系统。经过测试,至少从目前来看,N32 ABI在非科学计算领域应该是最好的选择。但由于用户群体相对较少,现有N32系统在龙芯上存在着一些问题。笔者从去年年底开始这方面的探索,有若干补丁被Linux内核/glibc/gcc等项目收录,并制作了一个采用N32 ABI的Gentoo Linux。经过一段时间的排错,这个系统在龙芯平台上已经可以投入实用。由O32向N32迁移是MIPS平台上系统的必然发展趋势,前段时间,今年Google Summer of Code指导机构之一的Debian还成立了一个MIPS N32移植项目,该项目的完成将会对N32系统的普及起到巨大的推动作用。

  总体上看,龙芯上自由软件的发展现状处于由可用到好用的过渡阶段,成果与不足并存。笔者认为,目前龙芯软件开发的最大问题是龙芯对自由软件的理解不够深入,具体表现为开发中某些做法与自由软件社区中约定俗成的做法有些不同。

  首先,常见的自由软件发展形式中发展的主体是软件项目,推动项目发展的是围绕这个项目成立的社区。公司只作为软件项目的一个贡献者,是社区成员的角色,这方面最好的代表就是Linux内核。有的项目背后虽然只由一个公司所掌控,也得采用这种形式,比如Ubuntu。这样做的好处是可以淡化公司的存在,让人们相信自己是为了这个软件项目在做贡献,尽可能多地吸引不同背景的开发者。而目前实际上并没有这样的一个关于龙芯的社区存在。如果有这样一个社区的话,我们应该尽快为龙芯软件的发展确定一个路线图,确立统一的规划,加强社区各个成员间的合作与共享。比如搞清楚发展的先后顺序,搞清楚每个成员正在做的事情,搞清楚每个具体项目的进度,搞清楚还有哪些工作需要完成等等。这样,假如有其他人想加入的话,也可以知道自己应该从哪里下手,有利于吸引更多的开发者。建立Planet(开发者的blog聚合)也很有必要,可以让所有人随时了解每个开发者已经做了什么,正在做着什么。

  其次,在研发软件之前,应该对现存的自由软件项目做充分的调研,看看有哪些项目可以利用(龙芯选择Linux其实也是不自觉的经历了这个步骤)。并非只有操作系统才值得这样做,桌面环境、应用软件一样可以。逸珑8089笔记本自带系统的桌面是经过修改的KDE,这个项目笔者认为很难有什么前途,因为决定自由软件发展的一个重要因素是使用人数,用的人多了,才会吸引更多的贡献者。如果在决策之初稍作调研的话,也许会发现海峡对岸的开发者正在打造一个叫做LXDE的轻量级桌面环境。这个桌面环境运行起来可以显示出与华硕EeePC几乎一样的操作界面,与逸珑8089笔记本自带系统的界面也很相似。LXDE遵循freedesktop.org组织提出的自由桌面标准开发,如果当初在此基础上进行二次开发,会省不少力气,还能创造双赢的局面。

  第三,龙芯相对欠缺与国际自由软件社区主动交流的意识和行动。自由软件的一个好处是谁都可以得到源代码来学习和改进。但改进只有被上游所收录之后才能真正地存活下去。例如逸珑8089笔记本的温度与风扇监控模块在最新版本的Linux内核上工作不正常,我们只有自己去做相应的修改。如果模块进入了内核,我们就不用做这个事情,当初引入这个改动的人会负责把内核中所有需要改动的地方进行修改。

  想让上游收录我们的补丁,在写补丁之前就应该了解上游对于代码的要求,比如最起码的代码风格等。在写的过程中,也应该多多听取上游对于代码的意见。可惜龙芯目前在这方面做的还不够好。以前文提到的mplayer为例,简单看一下这个专门为龙芯优化的mplayer的源代码,可以发现几乎所有的改动都是把原有代码注释掉,再加上手工编写的汇编语言。这样的改动,让任何人都没有协作的余地,也会给维护带来很大麻烦(汇编语言难以理解且与ABI相关),是绝对没有可能进入上游的。如果要用龙芯的多媒体指令集,可以利用gcc 4.4版本开始提供的龙芯多媒体指令intrinsic。最起码,可以为每一个指令定义一个宏,而不要直接使用大段的汇编语言。

  要解决所有这些问题,最根本的还是要重视软件在龙芯生态环境中的作用,不要视其为附庸。软件社区的建设与人才培养是当务之急,要知道在许多大型IT企业中,软、硬件工程师的比率甚至超过2:1。另一方面,目前龙芯阵营中,还缺少在国际开源社区举足轻重的人物,如果完全靠自己培养,将会比较耗时。收买有时也是很有效的运作方式,就像英特尔雇佣Xorg的老大Keith Packard,对龙芯就是很好的启发。笔者认为,只有当我们的软件工程师可以代表龙芯在一些著名的自由软件国际会议上发表主题演讲的时候,才意味着龙芯产业生态环境达到了健全的程度。

  运行在逸珑8089笔记本上的采用N32 ABI的Gentoo Linux龙芯版

  Intel启动大规模

  酷睿暑促计划

  ■ 计算机世界实验室 吴挺

  Intel启动了大规模的酷睿暑促活动,并且以玩家体验和经销商互动的方式,提升酷睿系列产品的热度。这个活动在北京启动,还将分别在南宁、成都和上海开展。

  与以往不同,此次活动,Intel特别提供了三个主力CPU,并且名字上也更为娱乐化; 分别是Q8200游戏铂金侠;E7400高清黄金侠; 以及E5300网络白银侠。所以这样的活动也叫酷睿“英雄会”,在这样的活动中,不仅CPU是群英的一员,各参与的读者和经销商同样也是英雄会的主角,只不过表现方式不一样罢了。

  从中我们可以看到,Intel已经不局限在推广产品的技术概念,而着重推动产品的体验。从几个形象的命名来界定产品定位的做法来看,Intel开始考虑CPU更核心的东西—提供快乐体验。

  虽然Intel的Tick-Tock节奏大幅度提高了新处理器的更换速度,但是毫无疑问缩短了用户的新鲜感。现在多数用户购买新机器的初衷都来源于上网或者玩游戏不顺畅,电脑也从工具的角色开始向着重体验感觉的娱乐设备转移。所以引起电脑升级的因素在于提升这种体验的期望。Intel也适时抓住了这种转型,所以这次宣传的重点不是Intel最新的技术,也不是Intel最高端的产品,而是真正合适使用的产品,是市场上热卖的产品。

  目前,市场上有个观点,认为购买最便宜的就好,比如E5200这样的处理器销得就很好,这与Intel推动的酷睿是主流的想法有些差距。这个活动也可以被看成是“酷睿是主流”活动的延伸版本,因而Intel如此卖力也是有道理的。

  在活动的现场,也不完全是Intel的说教。Intel邀请了不少的经销商,好几百人的经销商队伍与几百人的网友共同交流,并且提供了演示平台、游戏体验区以及装机比赛等环节。Intel的资深架构经理赵军说,这个活动其实是搭建了一个大舞台,商家和用户都能从中获益。从现场经销商急于表现自己的心态来看,Intel达到了自己的目的,不过也看出,现在卖电脑的附加值太少,这也是一些产品推广不是很得力的原因。

  消费级高清旗舰

  —佳能高端数码摄像机体验

  ■ 计算机世界实验室 李献

  高清摄像机进入消费市场已有三四年时间了,从早期的磁带高清到后来的硬盘高清,直到今天的闪存高清,一步步的发展让高清摄像机有了巨大的发展。早期的高清摄像机即便是消费级的产品,也在体积和镜头上具有显著的特征,就是一个字—大,但是今天的高清摄像机除了那个硕大的镜头外,已经没有什么特别的外部特征了,因为闪存技术的发展,让高清摄像机的体积已经足够小巧了,握在手中也轻巧合适。

  鉴于今天的高清摄像机有如此大的变化,我们特别征集了来自佳能的LEGRIA HF S100闪存卡式高清摄像机,它具备了今天高清摄像机旗舰水准,采用AVCHD格式(H.264)存储高清视频,这是目前消费类高清摄像机最主流的存储格式。它还具备超高像素的成像元件,能拍摄出流畅细腻的1920×1080高清视频,输出的静态照片也让我们叹为观止,那些不具有大镜头的低端数码相机可以蒙羞而退了。

  佳能LEGRIA HF S100给人的第一印象竟然是沉稳的手感,它不像传统的闪存摄像机那种轻飘飘的感觉,相对厚实的机身给人信赖感,这也是高清摄像机所必须具备的。S100配备了一块佳能新开发的1/2.6英寸、高达859万像素的新型HD CMOS影像感应器—这显然已经超越了拍摄高清视频的需求,直奔主流数码相机的分辨率而来,实际拍摄的照片显示,虽然噪点和细节还不能让我们很满意,但是为家庭免去入门级的数码相机则毫无问题。

  这款产品的10倍光学变焦镜头采用2片非球面镜片,改善了广角端的失真,在长焦端的拍摄显示,锐度下降不明显,依然非常出色,这得益于它巨大口径的镜头。S100有脸部识别功能,能对面孔自动进行对焦,并在曝光上优先考虑脸部。

  S100保留了相当出彩的25p的电影模式,最高可选24Mbps码率也是佳能高清摄像机的一个吸引力,这有助于在高压缩的AVCHD视频上展现更细致的内容。佳能HFS100拍摄的1080p视频非常细致,即便是在晚上,它也具备不俗的画面表现力,色彩还原相当准确,而脸部识别功能开启后,也不用担心人走出画面中央了,加上精确的手动曝光功能,它在高清摄像机中具备了前几位的夜晚拍摄实力。

  因为使用了SDHC卡,佳能S100的机身可以更加小巧,也在抗冲击、高海拔等特殊应用环境下具有优势,但是目前最大32GB的卡对于S100 24Mbps的高码流而言也不算充裕,我们还是建议用户在多配几张SDHC卡的同时,可以降低拍摄码流,在不影响画面大部分质量的情况下,可以有效延长拍摄时间。

  闪存卡类的高清摄像机是未来摄像机发展的趋势,佳能S100已经给我们揭开了未来高清摄像机的一角,那些中高端的用户群在选购高清摄像机的时候,可以把目光多放在此类机型上,它会在未来的使用中给你带来莫大的方便。

Powered By Google

新浪简介About Sina广告服务联系我们招聘信息网站律师SINA English会员注册产品答疑┊Copyright © 1996-2009 SINA Corporation, All Rights Reserved

新浪公司 版权所有