《程序员》:Linux开发在中国(ZT)
《程序员》:Linux开发在中国http://www.sina.com.cn
2003年04月07日 14:09 程序员
特别策划/本刊编辑部撰文/闫辉
中关村最堵车的白颐路旁的一座公寓里,赵宇一手拿着遥控器,一手指着电视屏幕给客户演示着流媒体的点播效果。作为腾博讯公司的总经理,赵宇已经在Linux圈里面摸爬滚打了五年多。他曾策划发行过Linux光盘,创建过Linux社区,做过Linux杂志主编。现在,他又基于Linux流媒体服务器技术创建了自己的公司。
但是,能销售出Linux流媒体播放系统并不表明Linux已经在中国取得了成功,实际上,相比国外,Linux在中国的发展仍然处于初级阶段。
几年前,Linux像网络一样掀起了热潮,国内也诞生了一批Linux公司。当时人们以为只要把网上的免费软件下载打包卖出去就可以赚钱了。但事实证明并非如此简单,随着时间推移,很多Linux公司无法生存下去。
不过,现在坚持下来的公司已经看到了曙光。专家指出,这同Linux逐渐被接受的程度密切相关。数年前,知道Linux的人群还很小,从事Linux的公司也基本处于培育市场阶段。而如今,Linux在很多中小企业的应用已经悄然登上了台面,很多大学生也把通过Linux认证看作提升自身竞争力的途径。
然而,Linux作为自由软件的代表,其在中国的发展水平参差不齐。不同的开发人员折射着Linux开发在中国的现状,就让我们从几个侧面了解国内Linux开发的真实情况。
从Unix衍生出的Linux一开始就使中国开发人员处于不利位置。那些在Unix 系统上浸淫多年的国外程序员,现在很多已经步入了中年,衣食无忧再加上深厚的编程功底给Linux开发注入了强大的动力。而在中国,大多数技术人员只是在 Windows环境下进行开发,缺少Unix系统开发经验。更重要的是,即便辛苦工作都不一定满足生存需要的中国程序员,又有谁愿意耗费大量精力去高举 “自由软件”的旗帜呢。或许只有在学校,Linux才能展示其自由的一面。
Linux研究在学校
如果你走到清华大学东门外的小餐馆中,看到几个人一边吃着“麻婆豆腐”、“鱼香肉丝”等家常菜,一边在大谈Linux技术,或许你遇到的是清华大学计算机系的研究生和博士生们,甚至还可能遇到博士后陈渝。
陈渝目前正在主持开发一个名为“SkyEye”的开源项目,中文名字叫做“天目”。从创建SkyEye算起,在短短不到两个月期间,SkyEye主页的访问量已经上万。在国防科技大学读博士研究生时,陈渝和LVS的作者章文嵩住在同一个宿舍,平时就热衷于在一起讨论有关Linux的各种技术问题。博士论文他选择了并行计算方向的课题:层次存储并行系统优化技术的研究与实现。为此,他在实验室搭建了一个基于Linux的并行集群系统,以便验证和测试理论模型的试验结果。陈渝说:“从硕士开始,我发现对于做科研,Linux是非常好的载体。”
正因为这个原因,学校一直是进行Linux研究最聚集的地方。除了清华大学,浙江大学也在Linux研究方面备受瞩目,他们曾经出版了多本Linux教学的书。“他们对Linux的推广也起了重要的作用。”因为只有在这里,拥有时间和没有压力使得老师和学生对Linux的研究进行的更加深入。国内著名的自由软件组织AkA举办讲座的时候,学生总使得会场座无虚席。
从硕士到博士、博士后,一直处于校园环境中的陈渝,逐渐成为Liunx技术的布道者。2002年,陈渝所在的科研组要在嵌入式系统软件方面做一些研发工作,但考虑到购买硬件设备的成本开销太大。于是他们决定在通用的Linux和 Windows平台实现一个仿真集成开发环境SkyEye,模拟常见的嵌入式计算机系统。
嵌入式技术是计算机技术的核心,而通过SkyEye仿真集成环境,学生可以很方便地进入到嵌入式系统的软件学习和开发的广阔天地中。尤其对于缺少嵌入式硬件开发环境的用户来说,它将是一个非常有效的学习工具和开发手段。到现在, SkyEye上可以运行uClinux以及uC/OS-II等多种嵌入式操作系统,并可以对它们进行源码级的分析和测试。
为了避免重复劳动,陈渝首先在网上搜索了一些已有的开源项目,例如 GDB/Armulator等;接下来,重新进行功能扩展和创新,使之支持更多的操作系统和系统软件。“SkyEye项目采用异地协同开发的模式,目前已有三所大学的多位学生加入,比如杨晔等实现了很好的网络模拟功能,并移植了嵌入式TCP/IP协议栈。”陈渝对于项目的进展表示非常满意。
李明,作为清华大学计算机系的一名研究生,最先加入了这个项目的开发。他在工控专业实习的时候,接触过实时Linux上的应用和开发以及嵌入式技术,基于对Linux和嵌入式系统的兴趣参与了SkyEye项目。李明说:“做嵌入式 Linux开发和纯软件的编码不同,因为程序在PC和在硬件上运行的感觉是不一样的,通过这些工作,我们可以更深入的了解计算机底层知识。”
有些程序员讨厌Windows平台的API将底层全部封装的机制,他们更喜欢从底层到上层所有代码都可见的Linux。李明表示,基于Linux的研究和开发很符合某些程序员做技术的思维。程序员想了解某个技术的时候,他能够一直钻研下去并找到问题的答案,这种提高所带来的快乐是无法形容的。
然而,目前在学校里,一些计算机专业的课程虽然涉及到了操作系统的知识,但大多数教学内容仍然以Windows平台为主,这很难满足学生对Linux技术的渴求。这说明了学生们对Linux技术有着强烈的学习欲望。
陈渝表示:“学校是推广和普及Linux的重要阵地。国外Linux研发水平比我们厉害,原因之一是国外学校的工作环境大多运行在Unix和Linux下的,也许国内的确需要在这方面加大力度。”
中国为Linux核心贡献代码的人寥寥无几。章文嵩是一个,他开发的LVS虚拟服务器集群系统的代码已经被Redhat收录到发行版中,Dell公司网上分销系统的后端服务器就是用LVS架设的,IBM、HP等一些国际厂商销售的软件产品中也包含了这些代码。在中国,有没有可能将自己开发的Linux项目带到实际的商业应用呢?魏永明的经历或许可以给您一些启示。
从自由软件项目到Linux公司
在北京海淀区锋尚国际公寓的A座1503号房间,魏永明和他的三个伙伴一边吃着盒饭,一边谈论着如何完善MiniGUI的使用界面。这时,他的名片上已经印上了飞漫公司技术总监的头衔。
最早启动MiniGUI项目时,魏永明还是大学老师,他翻译过Linux书籍,是 IBM的Developerworks的专栏作家,后来他到了一家知名的Linux公司工作。在此期间,他一直利用业余时间进行开发工作。不过,现在把自己做的一个开源软件项目MiniGUI拿来成立一家商业化公司,魏永明有些无奈。他说:“如果我不必为生活担忧,而且还有很多业余时间做MiniGUI软件的开发、发布和维护工作,我绝对不会以商业手段推广。”
MiniGUI是Linux实时嵌入式系统提供的一个轻量级的图形用户界面支持系统,可以为应用程序定义一组轻量级的窗口和图形设备接口。利用这些接口,应用程序可以建立多个窗口,而且可以在这些窗口中绘制图形,且互不影响。用户也可以利用MiniGUI建立菜单、按钮、列表框等常见的GUI元素。随着MiniGUI的不断完善,逐渐得到了用户的认可。网站统计显示,企业用户数量占到了60%,诸如计算机数控系统、Pos机、销售终端以及其它工业领域中,在需要图形支持的Linux解决方案中都有可能在使用MiniGUI。
随着MiniGUI的推广,用户不断提出各种要求,希望得到一些有保障的技术支持和定制服务。然而,中国没有好的自由软件开发氛围,很难找到人愿意参与辅助工作,帮助自由软件项目完善或者使其更趋向于产品化。“MiniGUI的使用手册和FAQ都没有人去做。”这种情况下,既要把自由软件持续做下去,还要保证生活,魏永明不得不选择了创业。
自由软件与商业公司相结合的开发模式在西方已经获得了极大成功,利用Linux进行商业赢利的模式也出现了很多种。但具体操作中,国内很难拷贝国外模式。业内人士认为,这主要在于人们的意识和文化的障碍,很多人认为中国软件产业对自由的认识始终不能与市场和商业挂钩。
在这种情况下,经历了一些曲折之后,魏永明尝试了多种针对自由软件的商业方式。以前的版本是免费,新版本则需要收费下载,重点提供给客户一些有偿服务(比如编程指南,API参考手册)以及面向不同领域的应用套件。在销售中,采用共享源码的方式,客户在购买源代码后可以随意使用,但限制在一款产品中。另外就是做MiniGUI或其他支持应用软件(如浏览器,多媒体播放器)的定制开发。有时还销售一些附加的产品和服务,比如字体。培训也是可以收费的方式。魏永明说:“实际效果中发现用户比较容易接受这些形式。”公司在去年底成立后,真正运营的时间只有两个月,魏永明说他们这两个月营业额是十万,目标是上半年营业额达到五十万。
尽管取得了一定的成绩,但魏永明心中还是有些遗憾。他认为做自由软件开发者,Linus才是榜样。因为Linus为了生存可以去工作,但绝对不会去一家Linux公司。
用Linux的企业很多,用好Linux的企业不多,这给Linux在服务方面的发展提供了空间。
维护Linux草坪
“从Linux步入中国到现在,Linux厂商始终没有解决的问题就是没有把服务提升到足够高度,他们更关注尽快把Linux这块足球场建起来,而没有把linux服务这块草皮打造好。”作为一家Linux咨询公司的总经理,王宝会认为自己有义务去传递这样的理念。
王宝会见证了很多Linux在企业中的实际应用过程。比如中石化为其全国的加油站部署Linux系统中,王宝会参与了培训和部署工作。他说:“Linux看着场面很红火,但真正用起来,还是要大打折扣,尤其是服务方面,客户还存在很多不满意的地方。”因此,王宝会预测Linux服务将成为一个热点,因此也将公司的经营重点放在这方面。
王宝会强调,尽管现在linux培训一直很热门,但培训档次总体偏低,学员也只是了解如何把系统搭建起来,设置一些简单的服务。其实Linux应用可以更深层次发展。首先是性能调优,如何让系统达到最优化的程度,这方面国内没有成熟的体系,甚至国外,性能调优也是企业在应用Linux到一定阶段后的迫切需求;第二是故障诊断,讲述“如何快速定位故障,解决问题”的专业书籍在市场上很难发现;Linux安全也是非常重要的分支,围绕安全提供服务也是Linux服务的一个重点。
如何解决这些现有的问题,推动Linux服务在中国的成长?王宝会表示,Linux应用者的水平从低层次向上发展是重要的一环。但在这个过程中,如果没有好的学习和引导路径,就会很迷茫。
作为多年从事咨询和教育的专家,王宝会认为国内技术培训逐渐在成熟,但在如何突破技术层面,引导学生将知识系统化方面有很大不足,也没有有效地建立起理论和实际之间的交互的渠道。王宝会说:“学习Linux也要像Linux开发一样通过协同来进行。对新知识,人群建立合理的知识共享体系与交流体系,然后有效地集中起来共同去理解与接受知识。”王宝会也正按照这个方向努力地创造这个平台。
爱好者用Linux,商业用户也用Linux,他们对品质的要求并不一样,如何把爱好者手中的Linux变成成熟的Linux产品,是每一个Linux从业者需要考虑的。
做商业品质的Linux产品
1996年,还在中国科学院的郑忠源博士去美国的时候,专门订购了一套 InfoMagic出品的Linux光盘。这套光盘一共有六张,包含了当时几乎所有的Linux发行版。在众多的发行版中,Redhat还只能屈居次席。然而,虽然当年的第一名虽然仍在发行,但还像个人作品,被Redhat远远抛在了后面。
目前,郑忠源在领导开发国内影响力最大发行版红旗Linux。前面的经历对他的影响很大。他说:“我们必须考虑行业客户的要求,按照商业软件的品质做Linux,不能把它看作单纯给爱好者的产品。”
最早做Linux普及工作的时候,主要面向的是爱好者。但随着普及工作进展到一定阶段。行业客户会成为用户的主体,他会询问深入的技术问题,例如Linux如何无缝融合到原有业务系统中去发挥作用。现在已经有许多行业用户希望真正地在 Linux平台上稳定持续地工作,比如政府机关。身为国家863计划专项桌面操作系统组组长的郑忠源不能不为Linux在桌面的实用性表示关注。
现在红旗Linux平台包括桌面和服务器版本,开发团队主要精力放在了提高桌面操作系统易用性以及服务器版本的稳定可靠性上。
Linux桌面版在易用性、可管理性以及亲和力上,红旗的开发团队做了很多工作。 “比如红旗Linux的控制面板,我们就做的与Windows界面和功能基本相同。原来Linux回收站关闭后再次打开时无法还原被删除文件,我们设计了新的回收站机制来解决这个问题。原来Linux调整颜色分辨率需要修改配置文件,现在采用图形界面就可以了,还有对USB优盘的支持也可以即插即用,自动识别。所有这些都是让用户以他所熟悉的操作方式去调整。在应用程序上,我们与紫光合作移植了紫光拼音输入法,和汉王合作在Linux上增加汉王手写。”
最近RedHat 8.0发布后,对中文的支持非常好了,那国产Linux还没有必要再做呢?郑忠源笑着说:“中文化对中国用户是必须要做的。说老实话,我也希望 RedHat做的更好,这样我们可以投入更多的人力到深层开发中。但是中文化是一个技术含量不太高,但很繁琐、细致的工作,在这方面对国外版本寄予厚望是不现实的。网上评价是因为他们不是普通用户,是玩家,他们没有做过商业性的评价,没有经过长期做日常工作的反馈。”
在开发方式上,郑忠源认为要想达到商业品质,就需要将商业软件的开发组织方式结合到自由软件的开发中,发挥各自的优势。在这方面,红旗Linux把CMM的过程管理和公司实际情况结合,形成了一种有特色的开发管理模式。
不过,郑忠源又强调,因为Linux开发的基础是自由软件,所以在实际工作中要把这个特色考虑进去,不可能采用完全基于商业化应用的开发方法。“开发过程中有些方面是不可控的,比如外部版本的升级时间不确定,所以在做开发计划时必须考虑这些因素和应对措施。”
在郑忠源内心,一直有个前进的方向,这就是要以UNIX、微软的Windows和苹果的MAC OS X为追赶的目标,他也把这个理念传递给了其他的程序员。
总体上,中国Linux开发人员增长速度仍然极其缓慢。一位业内人士透露:“北京有一二百家Linux软件公司,每个公司也就是一二十人的规模,按照这种比例,乐观估计全国Linux程序员不过三四万左右。”然而,Linux这一词汇早已深入中国软件开发人员的内心。市场调研公司Evans Data公司报告2003年将有66%的程序员“可能”或者“完全”为Linux开发应用软件。尽管很多人并不认同这组数字,但有了国外Linux市场的迅猛增长,再加上国内对Linux的政策倾斜,相信Linux程序员的数量会不断膨胀,中国Linux开发的前景会越来越好。
资料:章文嵩谈自己开发LVS
最初开发LVS只是为了好玩,另外也觉得服务器集群系统是解决网络服务超载问题非常有效的方法。当时我看到一篇关于MagicRouter的Berkeley论文,颇受启发,于是决定在当时Linux 2.0内核上写一个。在1998年5月,我花了大概两个星期时间写了一个简单的系统。由于当时我在一家网络公司当技术顾问,有网络服务器可用,就将源代码在网上发布。出乎我的意料,很快就收到许多询问的电子邮件,Robert Thomas也很快告诉我他将该软件用到了真实运行的Web proxy集群系统中。这让我觉得开发LVS很有意义,于是持续不断花时间将系统做得更好、更完善。
在开发LVS过程中,我得到了很多的乐趣。看到我的代码在世界各地的真实系统中运行,心中的一点成就感是不可言喻的。此外,还有一些厂商赞助我开发LVS,为我提供硬件开发设备,支付我出国参加学术会议的费用等等。
我建议国内的Linux开发者选择一个好的突破点,然后持续不断在这上面花时间,终将会有所收获。 up :mrgreen: 夷--- 老外的风格 :wink: 文章吗?还是别的?
页:
[1]