Professional Documents
Culture Documents
卷首语
开放是文档互操作的前提
10 年前,全球电脑如何实现通话是困扰人们的一个主要问题,随着 IP 标准的出现,这个问题得到了
很好的解决,并主导了商业计算硬环境,推动互联网等技术抹平世界,对全球商业模式变革产生巨大影
响。今天,在我们的软件环境也有着众多互操作的困惑,如何进一步推动企业间软件互联互通,从而让
商业价值链真正实时灵动起来已经成为一块阻碍软件向前发展的绊脚石。
其实,互操作的问题随处可见,北方网通的用户无法打开服务器架设在南方电信的网站,这是电信
运营商的互操作问题;手机用户拨打小灵通用户总是占线,这是移动运营商的互操作问题;两个同样的
x86 硬件环境却无法运行同一个操作系统,这是硬件的互操作问题。在软件领域,互操作问题更是层出不
Windows 两大操作系统的互操作。
重复劳动,凝聚人类的集体智慧。
操作系统间的互操作我们能通过软件的跨平台性解决,而现今,真正让人们关心是跨平台之下文档
格式的互操作性,因为它不只涉及到不同操作平台下文档格式互不相通,也涉及到同一操作系统平台上
不同厂商的文档格式也互不相通。文档如今从某种意义上已经替代了文字,起到了保存资料的作用,但
这就需要一个标准的出现,ODF 文档格式由于其开放性及良好的解决了互操作已被国际标准组织
(ISO、IEC、OASIS)批准为国际标准,并已为国际上很多国家的政府,以及美国的一些州政府确定为该政
照 ISO 的投票惯例,投反对的选票中会有一个投票意见的批注,兼容性和互操作成为这些国家投出反对
票的主要原因。
话题,但一个更深层次的原因是开放性。ODF 文档格式因为其开放性,各个私有厂商都能很清晰的了解
到 ODF 格式的架构及源码,能很好的解决互操作的问题,不仅促进了文档的互通互换,也实现了不同系
统之间的集成,使得在多种环境之下的实现和部署更具有灵活性和可靠性,更为重要的是用户可以控制
自己的数据,而不是依存于某单一厂商。
据流失的灾害。我们再大胆的假设,由于目前文档已经是信息的重要载体,而信息则是人类文明的沉淀
及延续,当记载人类文明的信息依存于某单一厂商封闭的文档格式之时,那是非常危险的,谁能保证 50
们希望看到的都是具有开放性的文档标准,只有开放,才是迈向统一的新起点。
目录
卷首语..................................................................................................................................................2
产业聚焦..............................................................................................................................................7
《开源》第二期下载次数突破 17 万............................................................................................7
Netscape 正式谢幕 向互联网元老道别........................................................................................7
龙芯 7 英寸笔记本亮相两会..........................................................................................................9
微软宣布支持两个重要 Eclipse 项目..........................................................................................10
IBM 入股开源数据库公司 EnterpriseDB....................................................................................10
Sourcesense 与微软 Office 产品套件合作 .................................................................................11
Packt 公司向开源项目捐赠超 10 万美金....................................................................................12
中科红旗总裁贾栋进入中央党校学习.......................................................................................12
博客文摘............................................................................................................................................14
评微软开放"API"的“举措”......................................................................................................14
开源软件与开放标准...................................................................................................................16
十问微软 .....................................................................................................................................21
开源社区............................................................................................................................................23
项目动态.......................................................................................................................................23
OpenOffice.org 2.4.0 Final 发布...............................................................................................23
GNOME 2.22.0 RC 版本发布..................................................................................................24
开源游戏:Nexuiz 2.4 正式发布............................................................................................25
7-Zip 4.58 Alpha 6 正式发布...................................................................................................26
聊天软件 Pidgin 2.4.0 版本发布..............................................................................................27
矢量图形编辑器 Inkscape 0.4.6 发布......................................................................................27
多媒体查看器 XnView 1.93 版本发布....................................................................................28
WordPress 2.5 RC1 中文版发布..............................................................................................29
Intel 开源峰会(美国 Skamania)纪行............................................................................................30
Drupal:给内容管理无限可能.......................................................................................................35
开源网管软件新思维...................................................................................................................40
知识学堂............................................................................................................................................45
了解 Linux 线程技术....................................................................................................................45
重读 2.4 内核(3).......................................................................................................................50
桌面应用............................................................................................................................................58
Linux 一句话精彩问答——系统配置篇(2)...........................................................................58
Linux 下制作屏保程序.................................................................................................................62
Linux 故障恢复技巧.....................................................................................................................67
linux 配置、编译内核实用工具..................................................................................................71
Ubuntu 安装 RealPlayer 全攻略...................................................................................................75
企业应用............................................................................................................................................78
如何选择 Linux 服务提供商........................................................................................................78
使用 Cacti 监测系统与网络性能.................................................................................................82
混源新视界........................................................................................................................................97
混源:开源之道...........................................................................................................................97
CIO 掌控混源之道......................................................................................................................101
产业聚焦
《开源》第二期下载次数突破 17 万
《开源》电子杂志推出仅两期得到了广大开源爱好者的厚
爱,尤其是第二期电子杂志,在第一期下载量达到 7 万余次的
基础上再攀新高,下载量突破 17 万次,虽然这仅仅是一个简
单的数字,但对于我们编辑部团队,却是极大的鼓舞。
最近一月收到很多朋友的来信,有咨询、有建议、也有鼓
励,我们深感肩上的责任,这么多朋友的关注,也让我们有了
坚持下去的动力。希望广大读者踊跃投稿,一本持续的、关注
开源的、永远免费的电子杂志,这是我们的愿景,也是我们共
同的奋斗目标。
一个让许多人首次感受互联网的浏览器将要消失于世间。
自 2008 年 3 月 1 日起,现在由美国在线(AOL)拥有的网景领航员浏览器(Netscape Navigator)将
不再得到供应商支援。
在 1990 年代中期,随着商用互联网事业起飞,超过 90%上线者都在使用网景领航员。
不过,在微软的互联网探索者(IE)和火狐(Firefox)不断蚕食用户基础下,网景的市场占有率不断
下降到只有 0。6%。网景公司建议用户把浏览器升级到火狐或者 Flock 这两种同样建基于领航员技术基础
的浏览器。负责协调火狐软体开发的 Mozilla 基金会主席贝克女士告诉 BBC 新闻说:“我想我们代表了
人们从前对网景的期盼。”“我们选取了网景推出的许多东西,但是我们在开放(原代码)与公众参与
的层面把它们进一步提升。”贝克女士是 1994 年网景的首批雇员之一。
网上窗户
网景浏览器是由安德森开发的。当时还是学生的他也
是第一个大众互联网浏览器马赛克(Mosaic)的制作人之
一。安德森组成的网景通讯公司在 1994 年推出其第一版
浏览器。
根据 Flock 主席兼首席执行官哈丁的说法,网景在把
互联网变成“相关的庞大市场现象”的过程中扮演着重要
的角色。哈丁告诉 BBC 新闻说:“网景在组织那些零和
一——这些非常学术和技术性的环境——并把图像化的用
户界面呈现出来有着非常重要的角色,普通人都可以上网
并利用资讯。”他说:“在那风平浪静的日子,它真的有互联网的感觉,网景真的是同一件事情。”
一些企业在网景的成功基础上聚积资本,尤其是微软,就在那时候开始把 IE 捆绑到视窗作业系统之
上。纵使这引发了反竞争行为的法律抗争,IE 现在稳占 80%的市场占有率。
结果,网景变得难以维持。
去年网景的末日首次被公布之时,德雷派尔(网景品牌经理)在官方博客写道:“当美国在线内部
团体投资了许多时间和精力想要重振网景领航员的时候,这些努力却没能从微软的互联网探索者手中抢
回多少市场占有率。”
不日回归?
在过去的一个星期,网景的用户们看见了跳出告示,通
知他们产品将不会再得到支援。告示说:“在美国在线当前
的业务重心下,对网景浏览器的支援将从 2008 年 3 月 1 日起
终止。”
然后这份告示建议用户们选择升级到 Flock 或者是火狐。
火狐是 IE 的主要竞争对手,尤其在欧洲,根据一些统计,
它取得了 28%的市场占有率。
这个公开程式源代码的浏览器的开发,由 2003 年被裁
退的网景员工组成的 Mozilla 基金会负责。这浏览器在全球得到超过 5 亿人次下载,在芬兰等国家更成为
最受欢迎的浏览器。贝克女士说:“竞争带来的就是质量。”
龙芯 7 英寸笔记本亮相两会
3 月 5 日消息,龙芯产业化研发机构——中科龙梦公司证实,该公司提供了 30 台采用龙芯处理器的 7
英寸迷你笔记本,供两会代表亲身体验。
中科龙梦的合资股东之一——江苏梦兰集团的董事长、梦兰村党委书记钱月宝为本次召开的“两会”
人大代表。钱月宝带了 30 台中科龙梦新研发的采用龙芯 2F 处理器的迷你笔记本到北京参加两会,让参会
代表们现场体验到龙芯笔记本。
中科龙梦提供的资料显示,这款 7 英寸笔记本采用的处理器频率从 800MHz 至 1GHz 不等,据称实际
性能相当于英特尔奔腾 4 处理器 1.5GHz 至
2GHz,内存采用了 512M 的 DDR2 内存,北
桥芯片被集成在了 CPU 内,南桥芯片为 AMD
CS5536,7 英寸屏幕的分辨率为 800*480,外
部存储设备是 1 至 4GB 的 SSD 固态硬盘,4
芯电池待机时间超过 3 小时,操作系统为
Linux,其他主要功能包括 10/100M 网卡、
802.11b/g wifi 无线网卡、视频输出、VGA 接
口、2 个 USB2.0 接口,在硬件接口上已经和
普通的笔记本相差无几。
微软宣布支持两个重要 Eclipse 项目
Packt 出版公司日前宣布,他们已经向开源项目捐资超过十万美
金。
他们对开源项目的捐助是从 2004 年 4 月开始的,第一个受捐赠的
开源项目是 phpMyAdmin,到目前为止,他们已经给超过 30 个的开源
软件项目提供过无偿的资金援助。
在过去的四年中,Packt 出版公司通过设立开源项目版税机制和开源 CMS 大奖等方法来为那些开源
项目来提供资金援助。开源项目版税机制使得那些开源项目从开源项目图书的发行和销售中获得利益分
成。我们对所有的开源项目都有这项政策,只有和有关开源项目相关的图书发行,没卖出一本,我们就
为该项目捐出相应数额的资金。他们的市场经理 Damian Carvill 谈到此事的时候非常高兴,“我对我们的
开源项目版税机制非常满意,能坚持到现在,并且超过 10 万美金是一个了不起的事情,我们还将继续坚
持下去。”
开源 CMS 大奖评选已经是第三个年头了,真如这个评选奖项的名字,这个评选是为那些开源 CMS
项目设立的。07 年该奖项的获得者是 Drupal 项目组,该项目组曾经获得过 Packt 出版公司版税分成机制
的资助。
中科红旗总裁贾栋进入中央党校学习
由中共北京市委组织部、中共北京市委统战部、北京市人事局和中关村科技园区管理委员会联合举
办第一届的“中关村企业家中央党校培训班”于 3 月 1 日开课。中科红旗软件技术有限公司总裁兼 CEO
贾栋等三十多位赫赫有名的中关村企业家集中进入中央党校进行为期半年的学习。
中共中央党校是轮训培训党的高中级领导干部和马克思主义理
论干部的最高学府,是学习、研究、宣传马列主义、毛泽东思想、
邓小平理论和“三个代表”重要思想的重要阵地和党性锻炼的熔炉。
这次中央党校为中关村企业家举办培训班,还是有史以来第一次。
据悉,此次学习主要目的是为了进一步提高中关村企业家的理
论水平和创新能力,更好地发挥企业家在我国高科技产业发展和建
设创新型国家中的重要作用。培养这些企业家的历史使命感和社会
责任感,提高企业家的战略思维、爱国情怀、管理水平。他们将在
为期半年的集中培训课里接受马克思主义基本理论、宏观经济、领
导力、执行力、决策力等培训。
中科红旗总裁 贾栋
博客文摘
评微软开放"API"的“举措”
中国开源软件推进联盟主席 陆首群
博客地址:http://www.lupaworld.com/16128/
微软日前宣布:为促进互操作性,微软将开放部分产品的互操作信息和应用程序接口(API)。为宣
传此事,微软高层,如首席执行官 Steve Ballmer、首席架构师 Ray Qzzie、首席顾问 Brad Smith,以及微
软全球资深副总裁、中国区董事长张亚勤博士,纷纷出动。
对于微软关于“将提高产品开放性”,“促进互操作性的里程碑”的高调表态,国内外均有一些反
应。在国外反应中,大褒大贬者不多,主要是:(1)谨慎的欢迎,认为微软为使自己适应“采用开放标
准”的世界潮流和广大用户对互操作性的强烈需求,“参与了这个互操作进程”;认为微软这次采取的
是“有一定价值的举措”,“但微软的计划显然不是一个根本性的改变”;对微软这次举措抱“谨慎欢
迎”的态度。(2)开源世界和欧盟对微软的这次“声明”,还持一定怀疑的态度。国内开源社会的主流
反应尚未看到,有些反应的调子较高,如认为微软这次是“API 大开放”,“微软正在发生巨变”;他们
反而质疑开源社会和欧盟, “不要没完没了整治微软”,“开源世界正在失去优势”,“微软走向开放,
开源当如何?!”
我对这次微软"公告"的初步看法是:小步举措,有所进步,谨慎欢迎,尚待释疑。
实现异构信息系统的互操作性反映世界潮流和用户需求。早在去年 10 月 15 日我在与微软首席研究及
战略官 Craig Mundie 会晤,谈及微软接受欧盟处罚时,我曾要求微软(在中国、欧盟和全球)开放 API
和相应的源代码;12 月 14 日微软负责协议计划的总监 Ajay Sikka 访华跟我谈到,微软为落实对欧盟处罚
时的承诺,决定开放全部内外协议,当时我问:“对微软的这个举措,欧盟满意吗?”我也谈了我个人
的感觉:“开放协议层次的互操作不是最好的方式,当然不如开放 API 令人满意。”
对于今年 2 月 21 日微软关于部分产品开放的公告,我认为,应该肯定微软向开放互操作信息方面迈
出了一步,虽说是小步,但也是一个进步,应表示欢迎;但微软的开放还是十分有限的(当然我们也不
会要求过高),有些疑点尚待于进一步弄清楚,所以只能表示谨慎的欢迎。
这次微软开放一些产品的互操作信息,其准确内容(如 API、源代码、专利、授权等)尚有待澄清;
对微软所谓开放 API,我原以为是对这次公告所列全部产品的 API 开放;深入看下去,不是,仅是对
Office2007 开放 API;再往下细看,似乎也不是 Office2007 的全部 API,只是开放在其上增添的若干新的
API 插件。因此所谓“微软将为 Office 2007 中的 Word、Excel 和 PowerPoint 应用程序”设计新的 API,是
否可理解为:仅开放其新的 API?不开放原来的 API?这就是说,全部 API 不完全开放?
有人说微软的这次举措是应对欧盟的监管或反垄断的后续行动,这是不足为怪的,微软自己就说:
“未来将出台更多举措,以满足欧盟监管部门全部要求”,欧盟也说:“微软新举措未解决一个关键问
题,也就是捆绑销售问题”;有人说:“微软的这些声明是别有用心的,值得合理怀疑”,这可能不无
道理,需要微软加以澄清,但我主张还是不要炒作,不要忽悠,就事论事,务实处理;有人说“微软走
向开放,开源当如何?”
其实要明确两个概念:(1)微软是一家企业,开源是一个社会,微软是闭源的私有商业软件企业,
开源是开放的软件社会,两者不对等,不能这样提问;(2)开源的所有产品 API 完全开放,微软的所有
产品 API 原来都是封闭、不开放的,因此在互操作问题上,双方是不对等、不对称、不公平的,我们不
管微软这次有什么所谓“计谋”,考虑微软这次将其部分产品的部分互操作信息或 API(新加的 API 插件)
开放,局部地、有控制地进入开放的软件社会,迈出的步子虽小,但也值得鼓励,要肯定是其进步;其
实微软这样做,如果符合发展潮流,也对其自身是有益的。
开源软件与开放标准
中国工程院院士 倪光南
博客地址:http://nign.vip.bokee.com/
今天我给大家说的开源软件和开放标准,这不是属于技术问题,而是怎么应用技术的问题。开放标
准我觉得这几年口号和趋势比较明显,因为我们比较注意的是去年年底丹麦政府给 WTO 的 TBT(技术贸
易壁垒)委员会一个报告,在公共部门新的 IT 系统中将强制实行 7 套信息技术开放标准。那么 TBT 的规
则应该用国际标准,所以丹麦在给 TBT 答疑的时候,我觉得他就给你说:“我打个招呼,我不用国际标
准,我用开放标准。”那对于我们是一个很好的契机,这个意思就是说中国你也可以,我们的信息系统
也可以用开放标准。我可以不理所谓的国际标准,外国的国际标准都是很好的,那么大家知道 NTOD 国
际标准,应用到我们 DVD 产业中就受不了,它也号称国际标准,很多国际标准都一样,并采用它都没有
多少好处,但开放标准又是另外一回事了。
当然我们需要讲的开放标准的好处很明显。
(1)有利于公平竞争。开放标准给用户以自由选择的权利,保证各个厂商产品之间的互操作性,使
竞争各方可以在市场上平等竞争,用户不会被锁定于某个特定的供应商,从而能避免产生垄断。
(2)有利于减轻用户负担。在开放标准下,市场上存在着健康的竞争,用户可以选择性能价格比优
越的产品。
(3)有利于增强安全性。采用开放标准,用户可以根据自己的需要,增强系统的安全性。例如中国
的一些单位在 Linux 开放标准下,已经开发出了安全操作系统。
这个潮流这个世界就是往互联网开展,开放标准越来越流行,跟互联网是分不开的,但是开放标准
的定义是什么?没有。我可以说现在没有一个统一的定义,下面是其中之一:这个标准必须是公开可获
得的,并且在所有细节都进行了记载备案;这个标准必须是可由自由实施的,无论现在或将来,其在执
行和使用时不受经济、政治或司法的制约;这个标准必须在一个开放的论坛中(标准化组织)通过开放
的程序进行标准化和维护。
目前,标准中专利收费问题是争议的焦点。其实我觉得开放顾名思义,比较难判断的专利收费,也
是利益的问题最重要。那么我们目前来讲,很多组织都是号称我们是(RAND/FRAND)公平合理且非歧
视,基本都是大家同意的,但实际上很难判断怎样才是“公平合理且非歧视”的,所以一些标准组织提
出了“可预见的低价许可”(例如“Ex Ante RAND”)原则。事先商量好的价格,比如说你要申请一个专
利,事先要跟大家说好,我这个专利不超过最后收费不超过销售价的 0.1%,预先讲好价钱,可预见性的。
在互联网在软件领域,标准中的专利免费使用已成为一个趋势(例如互联网的标准),互联网最明显,
目前互联网没有看到有专利问题,所以互联网的协议都是免费的,我们也认为这与主张软件不采用专利
保护的要求是一致的,现行的中国或欧盟的专利制度都不支持纯软件专利。我们主张声明软件是版权问
题,不是专利问题。
这几年世界上有个潮流,要开放要互联网带起来,中国做的比较早,02 年我们就开始做了,我国有
关部门组织开发了基于 XML 的文档格式标准 UOF(“标文通”),并于去年 4 月成为国家标准。
目前讲的是个共性的问题。
开放标准很重要,但是有些国际上的标准并不好,中国应抓住机遇,历史经验表明,文档格式基本
上只会有一个标准,在文档格式从老的二进制格式向新一代格式转变时,中国应抓住机遇,争取使国家
标准 UOF(或今后 UOF 和 ODF 融合起来的国际标准),取代老的事实标准,从此掌握信息资源控制权,
并在办公软件领域形成公平竞争环境。
把软件拿来看看是否符合我们的标准,这是一个很重要的关键。意义在什么地方,我们可以在一个
领域,特别是在文档这样一个重要领域,我们可以摆脱垄断,那么对产业内影响,我们觉得不是一个简
单的文档问题,因为有了这个文档标准,人家就知道国产 OFFICE 最好,比微软要好,我们的标准要比微
软的好,微软要学我们的标准,我们现做,因为国产 OFFICE 好,我们就可以说操作系统用 Linux,因为
OFFICE 很重要,Linux 好了国产的 CPU 就可以用,国产的 CPU 不能用 WINDOWS,对国家来讲就是个
产业链的问题,标准可以带动很多东西,带动办公软件,带动操作系统,带动 CPU,所以对我们的意义
还是很大的。
下面就讲一下开源软件,实际上开放这个标准和开源软件不是一回事,开放标准是一些接口规范、
文档格式规范、通讯协议等:开源软件就是一个代码、一个软件。不过在两者之间还是有很大的密切关
系,因为我刚刚说开放标准是一个潮流,开源软件也是一个潮流,特别在互联网来看,互联网主要应用
主要的系统就是开源的,比如 Google 就是全部用开源软件的,所以他能发展起来,如果用微软软件早就
被控制起来了,因为都是开源的。互联网本来就是互为支撑的,对中国来讲是一个很好的机会,我们的
软件可以在开源软件的基础上发展起来,不需要从零开始去做,因为发展的晚这几年才做,人家都做了
几十年了,怎么跟上人家,好在有开源软件,在这个基础上做你就能达到国际水平。推广开源软件有利
于中国软件业的自主创新,有利于建立中国自主软件产业体系,有利于实现低成本的信息化。
开源软件、开放标准本身是一致的,如果我们开源软件搞的很好,变成事实标准,windows 变成事实
标准,office 变成事实标准,开源软件可以很好地支持开放标准;即使开源软件的广泛使用形成了某些
“事实标准”,它们也仍然是开放标准。
开源软件和开放标准有天生的互相融合的互相支持,所以我们可以看到某些国家还是很有眼光的,
比如荷兰,荷兰就是比丹麦更进一步,它强制在政府部门之中采用开放标准开源软件,丹麦上是一开始
讲到的是采用开放标准,目前荷兰除了开放标准以外,还规定这些政府部门采用开源软件,实际上国外
的比较好的比如巴西、委内瑞拉有些国家也是做的很好,也用立法来保证的,中国这个方面比较难做,
中国往往都说 WTO 啊,中国采用开放标准没有问题,像丹麦已经做的,中国如何采用开放标准,有些事
情中国还没办法做成,比如国产了人家说你违反 WTO 不太好做,中国实际上开放标准还是可以的,没人
能反对你,不好说你违反 WTO 了,所以应该学国际上这些做法,对于我们在信息化过程中,应该用开放
标准、开源软件加速我们的进度。中国应当学习这些国家的经验,加大推广开放标准和开源软件的力度,
促进软件领域的自主创新,推动软件产业的发展,加快信息化的步伐。
我们觉得开源软件特别是 Linux,我们值得注意的是一个是中国政府的预装操作系统,我们知道中国
政府这个说的很好,就是要求 PC 要当操作系统,正版的,那么正版的很多公司用 windows,也有的用
Linux,当然他们不一定真正用,他们会卸载掉,用盗版替代,但是我想以后随着正版化的加大力度,将
来保证我们有市场,去年中国一年 2000 多万的 pc 机,以后越来越多的有上千万的,没有精确统计,这个
就是一个市场。
《国家中长期科学和技术发展规划纲要(2006-2020 年)》确定了一些重大专项,包括“核心电子器
件、高端通用芯片和基础软件产品”专项,其中,基础软件(操作系统、数据库、中间件和办公套件等)
很多都基于开源软件。实施这一专项表明中国发展自主软件产业的决心,也表明以 Linux 为代表的开源软
件在中国有广阔的发展前景。这就规定了国家在时间内一定要重点的发展,这是一个很重要的决策,就
是我们很多技术软件属于开源软件,特别像操作系统之类的,特别是 Linux 操作系统,所以对开源软件从
国家政策上给予的保证。
开源软件全方位影响中国软件产业,尤其是在基础软件领域,开源软件打破了跨国公司的垄断,许
多基础软件都是基于开源软件。对软件来讲对中国来讲,非常重要就是降低门槛,我们发展软件不需要
投入那么多,不需要那么多时间,因为我们可以在开源软件的水平上,我们要注意到世界的潮流,就是
开源软件应该说它的趋势大概就是每一年半左右翻一番,不断的发展越来越多,因为全世界越来越多的
人投入进去。开源软件特别有利于发展中国家,有利于自主创新,它大大降低了发展软件的门槛,节省
了时间和投资。
我们可以看到这样的模式将会给中国的整个软件给予很大的作用,特别是最重要的技术软件,技术
软件最明显,技术软件像 Linux 这些开源软件发展起来的,应用软件也有很多,不只开源软件,软件服务
有些在欧盟估计占到 16%,这个数目不断的在增加,我们看到系统集成也有开源软件的方案,中国牵手
软件这个手机,现在已经是第三了,第一个是诺基亚,第二是微软的 windows 这个模板的系统,第三就
是牵手的,现在发展很快而且我们中国将来会更多的应用,因为它不需要授权,最小的可能是外包服务
方面的费用,从整体来讲对中国软件各个部门都有很大的贡献,所以我今天就给大家提供一个观点,中
国进口的发展我们要加强,包括企业也一样,开放标准和开源软件是一会机会,如果加入这个计划,希
望中国的信息化更快的起来开源软件与开放标准。
十问微软
袁萌
博客地址:http://blog.csdn.net/yuanmeng001
四、微软控制了一些国家的标准组织,在其中“插入”(stuff)了微软人员,甚至担任了“主席”职
位,同时修改了“不得加入”该组织的规则。一些从未涉及标准讨论的国家,为何突然地就成为“p-成
员”国家(而且投 OOXML 的“Yes”票)?
开源社区
项目动态
Nautilus:允许最小化进度条显示窗口,能够更好的处理桌面文件图标,修正了编译、崩溃等问题;
◆增加了实时路径效果及扩展效果;
◆支持导入 PDF、AI、CDR、XAML、WMF 等文
件;
◆对色彩管理、网格、参考线等功能进行了改进。
陈绪
记事录
2 月 25 日
Intel 有个规矩,每次开会之前都要问自己,开会的目标是什么,是要解决什么问题。这次大会概莫
能外。我的理解:
3.和开源社区,特别是内核社区,交流,讨论,探讨开源形势,及进一步的合作和发展。
2 月 26 日
2 月 27 日
其他是一些技术讲座,我听的有如下:Using Linux inside Intel, writing Device Drivers for Linux, iCAP
& OSS, Open Source Industry Analysis: Trends and Implications to Intel, Linux in HPC。
2 月 28 日
2 月 29 日
3月1日
3月2日
下午 6 点,抵达首都机场。
Linus 访谈录
陈绪:我是 OTC,从北京来的。
Linus(笑):很高兴见到你。
陈绪:你可能不知道,中国你有多少粉丝。根据我的记忆,你从来没有来过中国,为什么呢?
陈绪:你现在每年还去澳大利亚吗?
Linus:我一年有两次旅行。一次是澳大利亚,那里非常放松,而且我也习惯去了。另外一次是 Linux 内
核峰会,那是我的工作(笑)。
陈绪:是不是考虑去中国看看?
Linus:去年(2007 年)我夫人到中国去过。她是环球旅游,多个国家吧,也包括中国。她还带去了我们的
一个小孩,当时她让我陪她去,我说太忙了。
陈绪:我相信总有一天你会有机会到中国看看,那么你最希望看到什么?
Linus:看到社区的开发者,越多越好。
陈绪:其实,中国的社区对你个人也很感兴趣,比如说有个小问题还一直没有答案:你喜欢用什么编辑
器?
Linus 与笔者合影
沉思录
客观来说,目前中国的整体水平比世界的水平要低,起步也是慢一拍。我们应该如何发展?中国的开源
爱好者,能够从国外的社区,跨国性企业,或者从 Intel 中国的庞大研发团队这里获得什么帮助呢。
我更喜欢把我的工作分为 6 个大方向:政府、教育、OSV、ISV、社区、媒体。社区是我花费时间最
多的,我希望更多的社区朋友,开源开发者,爱好者,能够从我这个 Intel 中国的开源窗口这里,得到帮
助,无论是资金支持,还是技术合作。
Drupal:给内容管理无限可能
朱珠
项目历史
提起 Drupal 的名称,它是由一个德文单词“druppel”的英文拼写变形而来,意思就是“drop”,这个
名字来自 Drop.org 站点(现在已倒闭),它的代码使 Drupal 发展的很慢。Dries 起初是想把这个站点起
名为“dorp”(德文中就是“村庄”之意,这主要是想突出开发社区的开源特性),但是为了发音更容易
就使用了现在“Drupal”这个名称,并且于 2000 年正式开始了 Drupal 项目。
目前动态
Spreadfirefox 站点
社区文化
Drupal 的开发社区成员众多,分部在不同国家,主要分为:核心开发人员、模块开发人员、主题开
发人员,其他的非正的开发者还包括测试人员、自愿国际语言翻译者等。Drupal 开发者社区还专门为开
发人员建立了专门的开发文档网站,开发者可以通过浏览器直接查阅 Drupal 的开发文档,包括主程序结
构、代码函数、开发指南能等;就算你不想成为一个正式的开发人员,你想要定制用 Drupal 定制你的站
点,这个站点是最好的指导与知识库。除代码开发外,还有一个专门的主题开发站点,这是专门为
Drupal 主题开发社区所建立;普通用户则可以在这里下载到非常丰富的主题资源。
不同语言的社区也有很多,其中规模比较大的是西班牙语和法语的社区,到笔者撰写本文时,得到
了 Druapl China 社区站点刚刚上线的消息,当然每个不同语言的社区都有自己的站点,通过网站和 IRC 聊
天室社区成员不停的交流经验,老成员帮助新成员,这样的良性循环让 Drupal 社区变得非常强大,同时
也让项目有了持续发展的动力。
Drupal 社区成员也常常通过邮件列表进行日常交流,在邮件列表上,你可以向其他人请教问题,也
可以发表自己的观点和看法,在 Drupal 社区里总有很多热心人会帮助你,并不在乎国籍、宗教、信仰,
因为 Drupal 本身就是开源社区的产物,所以它很容易的就被开源社区的其他项目所接受,目前有很
多开源项目就是使用 Drupal 作为其站点的内容管理系统,比如国内 Linux 用户熟悉的 MagicLinux 和
Hiweed 等;更值得一提是很多开源社区的交流站点也非常喜欢使用 Drupal 来运行自己的站点,比如中文
的就有 LinuxSir,debian Hongkong 等,这些都是 Drupal 的有力支持者,同时也为 Drupal 的宣传于普及作
出了巨大的贡献。
编程思想
节点也是传统意义上的多态。如果一个模块需要显示一个节点,例如,它可以对节点调用
node_view()得到节点的 html 表示。然而,实际的 html 生成过程完全取决于传递给函数的节点类型;这个
和有一个类按照接收到的消息类型决定自己的行为是直接类似的。Drupal 自身负责处理这种通常由 OOP
语言运行库处理的内部任务。
模块和主题同样也具有“对象”特性,在很多情况下充当“controller”的角色。每个模块都有一个源
文件,不但捆绑了一系列相关的函数,同时也遵从已定义的 Drupal Hook(调用-钩子)的模式。
模块和主题可以任意定义它们需要的功能。然而,它们都会考虑从基本的抽象类中继承它们的行为。
在主题中,这个基类是由 theme.inc 文件中的函数定义的;如果一个主题没有重载其中的函数,即使主题
提供了替代的“表现”函数,显示时也会使用缺省的“表现”函数。模块的情况也是完全类似的,Drupal
有很多 hook 可供选择,模块可以选择一些来实现。
Drupal 内部结构中的大多数都比简单的继承和消息传递来得复杂,然而,系统中最让人感兴趣的特
性还是使用已有的软件设计模式获得的。例如,许多在经典的四人帮《设计模式》中描述的模式都可以
在 Drupal 中看到。
发展前景
在飞速发展的互联网上,Drupal 一直走在内容管理系统与开发的最前列,因为它有自己的活跃社区,
有着顽强的生命力;随着 WEB 2.0 时代的到来,Drupal 也会不断的升级和创新,如同一个生命周期一般,
可以说 Drupal 才刚刚出生,但正是这个刚刚出生的小生命却给了人们巨大的震撼与无限的希望。随着越
来越多开发者和用户的增加,Drupal 的发展将会更快更稳。
总的来说,Drupal 不但是一款值得用户信赖的开源软件,而且它的设计理念、开发模式也是值得我
们所学习的;随着网络应用的日益深入,相信 Drupal 也会随之进步,未来谁都不能确定,我们只能尽各
自所能做得更好,Drupal 也是一样,它会在不断更新最得更好,尽一切可能展示着来自开源项目与开源
社区的巨大魅力!
开源网管软件新思维
开源软件厂商和开发者正在尝试消除人们对网管软件的这种感觉,为用户提供廉价、灵活和易于集
成的网络管理工具,如同开源软件进入 ERP、CRM 市场时一样,为广大用户带来平民级的网络管理软件。
虽然像 Multi Router Traffic Grapher(MRTG)和 Big Brother 这样的开源网管软件已经问世数十年了,它们
已经成为在无力采用商业软件,或商业软件不能满足需要时,大多数企业的 IT 部门选择的替代工具。但
是,由于可伸缩性和技术支持等问题,这些软件在企业环境中部署的比例很少。
价格优势
现有网络管理和监视解决方案一个最大的问题就是高成本,传统商业解决方案要投入大量资金,并
且不是所有的功能都能够使用,或者都需要使用。这些商业软件都有高的离奇的价格,而且都是采用许
可证形式分发,按照 CPU 数量等收费,现在运营各种在线应用的公司多是创业型企业,根本无力承担,
虽然它们中少量也有风险投资之类支持,但是对于企业而言,能节省的费用还是需要尽量节省。
通过使用开源网络管理与监控软件工具,企业的收取获取成本几乎为零,因为无需支付全部的许可
证费用,也无需为网络的扩展而支付额外的许可证费用,用户仅仅在需要保障技术支持或额外功能时才
需支付少量费用;大量需要网络监控管理软件的企业一般都有自己的技术力量,因此使用开源软件时遇
到的一般问题多可以自己解决,不但培养了自己的技术团队,还能省却不少成本。
定制的灵活性
功能的多样性
传统商业网管软件为满足各种场合,各种客户的需求,提供的相当多的功能,而很多功能对部分客
户而言却是多余的,或是很少用的;就像我们日常使用的 Office 只用到了常用功能,其它大量功能并没
有用,而我们却也为它而付费了。
新兴开源网络管理软件公司并没有提供与其商业软件竞争对手提供的同样多的功能。他们采用
80%-20%的规则,开源软件做到商业软件做的 80%。开源软件永远不做商业软件做的一切功能,这里面
既有一般客户没有使用需求的缘故,也有开源网管软件公司自身利用的考虑,投入和产出的权衡。
技术支持问题
人们对开源工具一直以来的诟病就是"缺乏技术支持",这将很多用户挡在开源工具门外,尤其是企业
级应用。因为没有一个首席信息官愿意冒丢掉饭碗的危险应用一种没有服务和技术支持的解决方案。现
在很多开源网络管理工具厂商都提供了多种级别的技术支持,能够支持大企业的应用部署。对开源软件
提供技术支持也是各家开源网管软件公司的主要盈利点。(图 3 Zenoss 的商业模式)
这种带有技术支持的开源软件将更加促使一些最终用户使用开源软件替代工具。如果出现问题,有
一家公司负责,可以得到需要的帮助,对企业应用很重要。这将是一个良性发布的轨迹:企业开发开源
软件,用户为技术支持而付费,使得企业能够生活下去,得以持续的对开源软件进行完善和发展。
当然,对于那些愿意自己做一点研究工作的人来说,在使用开源软件遇到问题时,他们更愿意深入
研究这个问题并且找到一个解决方案,如果它的解决方案能够分享出来,对其所用开源网管软件的发展
和推广也是种帮助,开源的意义就是集群众的智慧解决问题。
客户的声音
大覆盖面”吸引他选择这款产品,而该软件的开源特性则是另一个加分因素。他现在使用该软件监测网
络交换机、存储阵列和应用服务器。
Douglas 说: “它为我们提供了监测整个资产集的完整视图,包括硬件、软件,还有我们所使用的开源
工具。虽然开放源代码在我们的企业环境中还没有成为主流,但它无疑是其中的一部分。”
开源网管软件为需要网管软件而又买不起网管软件的公司,提供了一种高效的低成本应用方案;开
源网管软件的兴起也再次证实了开源存在的巨大价值,以及开源商业模式的可行性。随着开源软件服务
收费模式的更广泛接纳,网络管理软件市场也许将迎来一次巨大的变革。选择开源网络管理与监控软件
会是个更明智的选择。
知识学堂
了解 Linux 线程技术
姜红
Linux 是一个多用户、多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统;多
任务是指 Linux 可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。在操作系统
设计上,从进程(Process)演化出线程(Thread),最主要的目的就是更好地支持多处理器,并且减小
(进程/线程)上下文切换的开销。
进程和线程的关系
根据操作系统的定义,进程是系统资源管理的最小单位,线程是程序执行的最小单位。线程和进程
十分相似,不同的只是线程比进程小。首先,线程采用了多个线程可共享资源的设计思想。例如,它们
的操作大部分都是在同一地址空间进行的。其次,从一个线程切换到另一线程所花费的代价比进程低。
再次,进程本身的信息在内存中占用的空间比线程大。因此,线程更能允分地利用内存。线程可以看作
是在进程内部执行的指定序列。线程和进程的最大区别在于线程完全共享相同的地址空间,运行在同一
地址上。
Linux 线程的定义
线程是在共享内存空间中并发的多道执行路径,它们共享一个进程的资源,如文件描述和信号处理。
在两个普通进程(非线程)间进行切换时,内核准备从一个进程的上下文切换到另一个进程的上下文要花费
很大的开销。这里上下文切换的主要任务是保存老进程 CPU 状态,并加载新进程的保存状态,用新进程
的内存映像替换老进程的内存映像。线程允许进程在几个正在运行的任务之间进行切换,而不必执行前
面提到的完整的上下文。
在 Unix 类系统中,曾经出现过一些不同线程标准,它们都支持可移植操作系统接口标准
POSIX(Portable Operating System Interface Standard)。POSIX 标准由 IEEE 制定,并由国际标准化组织接受
也可以将线程和轻量级进程(LWP)视为等同,但其实在不同的系统/实现中有不同的解释。LWP 更
恰当的解释可能为一个虚拟 CPU 或内核的线程,它可以帮助用户态线程实现一些特殊的功能。Pthread 是
一种标准化模型,它用来把一个程序分成一组能够同时执行的任务。
那么在什么场合会使用 Pthread 呢?
◆在有一个或多个任务受不确定性事件影响,比如网络通信的可获得性影响的场合,能够使用线程处理
这些异步事件,同时继续执行正常的处理。
◆如果某些程序功能比其它的功能更重要,可以使用线程以保证所有功能都出现,但那些时间密集型的
功能具有更高的优先级。
以上三点可以归纳为在检查程序中潜在的并行性时,也就是说找出能够同时执行任务时使用
Pthread。上面介绍了 Linux 进程模型已经提供了执行多个进程的能力,可以进行并行或并发编程,但是,
线程对多个任务的控制程度要更好,使用资源更少。因为一个单一的资源,如全局变量,可以由多个线
程共享,而且,在拥有多个处理器的系统上多线程应用会由用多个进程实现的应用执行。
Linux 进程和线程技术发展
Linux 的另一种可选线程模型是 IBM 开发的 NGPT(Next Generation Posix Threads for Linux),它是基
于 GNU Pth(GNU Portable Threads)项目而实现的 M:N 模型(M 个用户态线程对应 N 个核心态线程)。
Linux 线程实现方法
目前线程有用户态线程和核心态线程两种方法实现。
1.用户态线程
用户态线程是一个精细的软件工具,允许多线程的程序运行时不需要特定的内核支持。如果一个进
程中的某一个线程调用了一个阻塞的系统调用,则该进程就会被阻塞,该进程中的其它所有线程也同时
被阻塞。因此,Unix 使用了异步 I/O 机制。这种机制主要的缺点在于,在一个进程中的多个线程调度中
无法发挥多处理器的优势(如上述的阻塞情况)。
用户态线程优点如下:
◆某些线程操作的系统消耗大大减少。比如,对属于同一个进程的线程之间进行调度切换时,不需要调
用系统调用,因此将减少额外的消耗,一个进程往往可以启动上千个线程。
◆用户态线程的实现方式可以被定制或修改,以适应特殊应用的要求。它对于多媒体实时过程等尤其有
用。另外,用户态线程可以比核心态线程实现方法默认情况支持更多的线程。
2.核心态线程
核心态线程的实现方法允许不同进程中的线程按照同一相对优先调度方法进行调度,这样有利于发
挥多处理器的并发优势。
目前,线程主要的实现方法是用户态线程。有几个研究项目已经实现了一些核心态线程的形式,其
中比较著名的是 MACH 分布式操作系统。通过允许用户代码对内核线程调度的参与,该系统将用户态和
核心态两种线程实现方法的优点结合了起来。通过提供这样一个两级调度机制,内核在保留了对处理器
时间分配控制的同时,也使一个进程可以充分利用多处理器的优势。
Linux 对超线程技术支持
◆128 字节锁对齐。
◆螺旋等待循环优化。
◆基于非执行的延迟循环 。
◆检测支持超线程的处理器,并启动逻辑处理器,如同该机器是 SMP(多处理器构架)。
◆在逻辑处理器调度发生之前,当系统空闲时对物理处理器上的调度进行优先级排序时,对调度程序进
行优化。
重读 2.4 内核(3)
下面通过一个函数,分析以上种种……
//别人已经代劳了,我们就释放掉刚获取的页面
if (pmd_bad(*pmd)) {//做例行检查,保证页面属性可读写等
//检查没有通过就奇怪了!也恢复成 BAD_PAGE
__handle_bad_pmd(pmd);
return NULL;
}
//一切正常,返回已经设置的 pte
return (pte_t *) pmd_page(*pmd) + offset;
}
此函数中已经祥加注释了,希望有疑问的仔细阅读。首先要注意,内存分配失败后,返回的是
NULL,注意 get_bad_pte_table 却为页表提供了指向 BAD_PAGE 的 pte。希望你阅读 get_bad_pte_table 的
时候没有困难然后注意,对于其他流程代劳的页面做了检查,pmd_bad,如果检查通不过返回也是
NULL,并且也是用 BAD_PAGE 填充 pte,见__handle_bad_pmd,同样希望__handle_bad_pmd 你读起来轻
松自如。
free_pgd_slow(get_pgd_fast()), freed++;
if(pmd_quicklist)
free_pmd_slow(get_pmd_fast()), freed++;
if(pte_quicklist)
free_pte_slow(get_pte_fast()), freed++;
} while(pgtable_cache_size > low);
}
return freed;
}
此函数在 cpu idle 的时候从 per cpu 的页面缓存链表上取下页面返还给内存管理系统。 slow,fast 的
区别也在与此。(其他情况也有调用此函数释放内存的)。
+------------------------------------------------------------------
| 8K 空洞
+------------------------------------------------------------------
| FIXADDR_TOP(0xffffe000UL) (include/asm-i386/fixmap。h)
| fixed map(每项 4k 虚存,见 FIXADDR_SIZE)
| { //fix map 内容 (enum fixed_addresses)
| FIX_APIC_BASE,
| FIX_IO_APIC_BASE_0,
| FIX_IO_APIC_BASE_END = FIX_IO_APIC_BASE_0 + MAX_IO_APICS-1
|
| FIX_CO_CPU, /* Cobalt timer */
| FIX_CO_APIC, /* Cobalt APIC Redirection Table */
| FIX_LI_PCIA, /* Lithium PCI Bridge A */
| FIX_LI_PCIB, /* Lithium PCI Bridge B */
+--------------
#ifdef CONFIG_HIGHMEM /*为 fix KMAP 预留每 cpu 8k 的虚存,读写各 4k*/
| FIX_KMAP_BEGIN, /* 主要用于 kmap_atomic*/
| FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1,
#endif
+--------------
| __end_of_fixed_addresses
| }
| FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE)
+--------------------------------------------------------------------
| VMALLOC_END (FIXADDR_START) (include/asm-i386/pgtable。h)
| +------------------
| | xxxxx: kmap 和 vmalloc 相互重叠,2。6 已经修正
| | kmap 使用的 4M 虚存 (asm/highmem。h,LAST_PKMAP)
| | PKMAP_BASE (0xfe000000UL) (距离 4G 32M)
| +------------------
| vmalloc 映射区
| VMALLOC_START (((unsigned long) high_memory + 2*VMALLOC_OFFSET-1)
| & \~(VMALLOC_OFFSET-1)) /*down align 8M */
+--------------------------------------------------------------------
| 约 8M 空洞
+--------------------------------------------------------------------
| high_memory (见 003___arch_i386_mm_ioremap。c 对此的分析)
| 内核已经映射了的物理页面 MAX 896M
| 3G
+--------------------------------------------------------------------
| resoved for app 0-3G
+--------------------------------------------------------------------
003___arch_i386_mm_ioremap.c 对 high_memory 进行分析的时候提到 VMALLOC_RESERVE (ULONG)
(128<<20) arch/i386/kernel/setup.c。 从今天的分析可知,这 128M 中一部分给了 fix map,一部分是
kmap,vmallc,还有一部分被空洞占用。注意 2.4 中 kmap 使用的虚存和 vmalloc 的顶端有重叠,2.6 已经
修正。
/*
* 映射指定的物理地址的一段内存到内核的虚拟地址。
#if CONFIG_HIGHMEM
pte_t *kmap_pte;
pgprot_t kmap_prot;
#define kmap_get_fixmap_pte(vaddr) \
pte_offset(pmd_offset(pgd_offset_k(vaddr), (vaddr)), (vaddr))
void __init kmap_init(void)
{ /*为 HIGHMEM kmap_automic 使用的两个变量求值,最多 NR_CPU*2 项 pte*/
unsigned long kmap_vstart;
kmap_prot = PAGE_KERNEL;
}
接下来的重要函数就是 mem_init:
1.初始化变量 high_memory,参见以前说明。
桌面应用
Linux 一句话精彩问答——系统配置篇(2)
陈绪
1021 删除内有文件和子目录的目录
rm -rf 目录名
1022 查看系统信息
cat /proc/interrupts - 中断
cat /proc/ioports - 设备 IO 端口
uname -a - 看系统内核等信息
1023 去掉多余的回车符
或者 dos2unix test.sh
1024 切换 X 桌面
1025 通用的声卡驱动程序
修改 /etc/sysconfig/i18n 文件,如
LANG="en_US",xwindow 会显示英文界面,
LANG="zh_CN.GB18030",xwindow 会显示中文界面。
还有一种方法
cp /etc/sysconfig/i18n $HOME/.i18n
vi $HOME/.i18n 文件,如
LANG="en_US",xwindow 会显示英文界面,
LANG="zh_CN.GB18030",xwindow 会显示中文界面。
这样就可以改变个人的界面语言,而不影响别的用户
1027 把屏幕设置为 90 列
stty cols 90
1028 使用 md5sum 文件
md5sum –c hashfile
unzip "*",注意引号不能少
1030 看 pdf 文件
安装 Acrobat Reader
1032 装中文输入法
1033 把弹出的光盘收回来
eject –t
1035 快速观看开机的硬件检测
dmesg | more
1036 查看硬盘的使用情况
df -k 以 K 为单位显示
df -h 以人性化单位显示,可以是 b,k,m,g,t..
1037 查看目录的大小
du -sh 目录名
-s 仅显示总计
-H 以 1000 为换算单位
1038 查找或删除正在使用某文件的进程
fuser filename
fuser -k filename
1039 安装软件
1040 字符模式下设置和删除环境变量
bash 下
设置:export 变量名=变量值
删除:unset 变量名
csh 下
删除:unsetenv 变量名
Linux 下制作屏保程序
毛希增
利用一些便捷的小软件把自己的数码相片做成绚烂多彩的屏保,放在自己的电脑上该是多么惬意的
一件事啊!虽然 Linux 下制作屏幕保护的软件比较少,但是我们可以利用 Linux 本身的特点,亲手制作一
个有 Linux 特色的屏幕保护程序。
XScreenSaver 概述
利用 GLSlideShow 制作屏保
GLSlideShow 设置如下:
1.确认安装 GLSlideShow
打开 XScreenSaver 配置管理器(从选单中选择或直接在控制台下键入“xscreensaver-demo”),确认
已安装了 GLSlideShow。
2. 设置图片所在目录
图1
3. 设置 GLSlideShow
进入“Display Modes”选项页,从下拉选单中选择“只使用一个屏幕保护程序”,并且从下面多选框中
选中 GLSlideShow,见图 2 所示。
图2
4. 参数微调
图3
5. 高级选项
如果上述参数设置还不能满足要求,那么可以单击“Advanced”按钮,进入高级选项对话框,手动调
图4
利用 chbg 程序动态制作屏保
XScreenSaver 是一个开放的框架,就像一个服务器,任何一个可以在根窗口显示图片的客户程序都
可以被它调用以增加其功能。chbg 就是这样的程序,它可以根据特效算法动态地调整桌面背景图片。
1.chbg 下载及安装
tgz 源码包安装:
cd chbg-1.5
./configure;make
make install
2.XScreenSaver 配置
default-n: chbg -xscreensaver -mode smart -interval 0.05 -effect 1 -R $HOME/lymxz/photo/ \n\
利用这些优点,就可以把相关的图片分门别类地存放,随心所欲地处理各个图片,其它的工作让
XScreenSaver 和 chbg 自动去做。
Linux 故障恢复技巧
徐永久
不论你在运行什么操作系统,在很多情况下,你会面对灾难恢复操作。你的主引导区被覆盖,你的
硬盘不能启动,或者一个重要的文件被删除,或者你的显示卡启动时闪烁一下就黑屏了。本文会就这些
问题作一些技巧性的讨论,帮助你在遇到这些问题时,不致于手足无措。
首先使用:
# uname -a
系统提示:
Linux albertxu 2.2.16-2.0 #1 Sun May 20 16:53:41 EST 2001 i586 unknown
来看看系统的内核版本。我们就知道系统的内核版本是 2.2.16-2.0。然后使用:
系统提示:
插入磁盘,等待一会,直到磁盘建立。这样,紧急启动软盘就这样建立了。除了采用以上的办法以
外,另外一个办法就是使用 tomsrtbt 来建立启动软盘。先介绍这个程序的安装步骤:
# gunzip tomsrtbt-1.7.218.tar.gz
# rm tomsrtbt-1.7.218.tar
# cd tomsrtbt-1.7.218/
# ./install.s
缺省的磁盘包含下面的程序,驱动和内核:
2.0.37 3c589_cs BusLogic DEC_ELCP EEXPRESS EEXPRESS_PRO EL2 EL3 EXT2 FAT FAT32 FD IDE
IDECD IDEFLOPPY IDEPCMCIA IDETAPE ISO9660 JOLIET LOOP MATH_EMULATION MINIX
MSDOS NE2000 NFS PROC RAM SD SERIAL SLIP SMC SR ST TR ULTRA VFAT VORTEX WD80x3
ah152x_cs aha152x aha1542 aic7xxx ash awk badblocks bdflush bzip2 cardbus cardmgr cat ce ce.help
chattr chgrp chmod chown chroot clear cmp cp cpio cut date dd ddate debugfs df dirname dmesg ds du
dumpe2fs e2fsck eata echo egrep elvis emacs extend false fdflush fdformat fdisk fdomain filesize find
findsuper fmt fsck.ext2 fsck.msdos fstab grep gzip halt head hexedit hostname i82365 ifconfig ifport ile init
inittab insmod kill killall5 ksyms length less libc.so.5.4.13 lilo lilo.conf ln loadkeys login losetup ls lsattr
mawk md5sum memtest mingetty miterm mkdir mkdosfs mke2fs mkfifo mkfs.minix mklost+found mknod
mkswap mnsed more mount mt mv nc ncr53c8xx nmclan_cs ntfs pax pcmcia pcmcia_core pcnet_cs ping
plip ppa printf ps pwd qlogic_cs qlogicfas reboot rescuept reset rm rmdir rmmod route rsh rshd script
scsi_info seagate sed serial_cs setserial sh slattach sleep slip snarf sort split stty swapoff swapon sync tail tar
tcic tee telnet test touch tune2fs umount undeb update vi vi.help wc
# chroot /mnt
# /sbin/lilo
Added linux *
Added dos
# exit
# cd /
# umount mnt
# vi /mnt/etc/fstab
# umount /mnt
# e2fsk -f /dev/hda2
对于一个严重损坏的分区,这个命令需要重复好几次。如果一个分区不能完整修复,你可以把重要
的文件写到磁盘上,当 tomsrtbt 启动时,把这些文件加载到内存,能把磁盘空间用于其他应用。
# fdformat /dev/fd0H1440
# mke2fs /dev/fd0
# mkdir /mnt/image
# mkdir /mnt/floppy
# cd /mnt/floppy
# cp /mnt/image/etc/*.conf .
# cp /mnt/image/etc/conf.modules .
# cp /mnt/image/var/named/* .
# cp /mnt/image/home/gwilburn/docs/myrecipes.txt .
# cd /mnt
# umount floppy
# umount image
# mkdir /mnt/win
# mkdir /mnt/floppy
# vi /mnt/win/autoexec.bat
# cd /mnt/floppy
# cp /mnt/win/autoexec.bat .
# cp /mnt/win/config.sys .
# cp "/mnt/win/program files/netscape/bookmarks.htm" .
# cd /mnt
# umount floppy
# umount win
灾难并不会频繁发生,但是做好灾难准备的最重要事情就是备份数据。我们讨论的所有技巧只是对
数据可以恢复的情况下所能采取的一些措施。作为一名专业的系统管理人员,如果没有做好数据备份,
那么这个所谓的“专业”是名不符实的。
linux 配置、编译内核实用工具
Linux 宝库整理
配置与编译内核用到的工具很多,在这里只对几个关键工具进行介绍,更多的内容请参考相关手册。
Make
◆目标 需要执行的一个任务。多数情况下它就是用户要生成的文件的名字,但是它也可以仅是个任务的
名字。
◆命令 执行任务时使用的指令,可以是一条、多条,甚至没有。
◆规则 一条完整的规则具有以下格式:
目标(target) : 先决条件(prerequisites)
规则(command)
......
其中只有目标必须要有,其它成分可以没有。一条完整的规则描述了编译一个目标的方法和依赖关
系,是 Makefile 中最重要的部分。
◆Makefile 文件 描述如何生成一个或多个目标的文件。它列出目标依赖的各个文件,并提供正确编译这
些目标所需要的规则。
1.根目录 Makefile
2.配置文件.config
执行“make ”会在根目录下生成该配置文件,其内容记录了具体的配置选择,也可以将旧内核的配置
文件放在这里。
3.arch/*/Makefile
4.子目录 Makefiles
5.Rules.make
因此,一个目标和其先决条件的规则定义的顺序是无所谓的,很可能一个目标的先决条件的规则定
义在百行以后才出现。Make 会耐心读完所有的 Makefile 后分析得出依赖关系树。
GCC
as
ld
与 as 相似,用户可以明确地要求使用 ld 链接程序将几个模块组合成一个单独的可执行文件。其链接
过程通常由一个叫 ld 链接脚本的文件来描述。该脚本使用 Linker Command Language 编写。使用“ld
--verose”命令可以看到这个默认使用的 ld 链接脚本。
ar
RPMBuild
中间件
.config 由关键字/值对组成,其内容类似于:
CONFIG_MPENTIUMIII=y
CONFIG_REISERFS_FS=m
#define CONFIG_MPENTIUMIII 1
#undef CONFIG_MPENTIUM4
#undef CONFIG_REISERFS_FS
#define CONFIG_REISERFS_FS_MODULE 1
Cheiron
其实虽曰“全攻略”,但也是只在我的电脑上测试通过。若有疑问,大家可以留言一起讨论;若有
错误,还望指正。综合的网上很多文章中提出的问题和解决方案,一并表示感谢。
到 RealPlayer 官方网站上下载:http://www.real.com/linux/?src=020923home_cn_cn
开始安装
1.打开终端,输入如下命令:
$chmod +x RealPlayer10GOLD.bin
$sudo ./RealPlayer10GOLD.bin
【附】若终端有如下输出:error while loading shared libraries: libstdc++.so.5: cannot open shared object file:
No such file or directory。可以按如下方法处理:$sudo apt-get install libstdc++5 (注:libstdc++.so.5 是 g+
+-3.3 提供的 C++ Library,你的 RealPlayer 需要此库,说明它是用 g++-3.3 来编译的,但 Ubuntu 默认的
gcc 是 4.0,如果没有安装 g++-3.x,安装相关软件时,系统便提示缺少这个库。)
2.当终端输出如下信息时:
此时按下回车键,下一步开始,屏幕输出如下信息:
Directory: [/home/cheiron/RealPlayer]:
假设按默认目录安装,回车后终端输出:
Destination: /home/shixinyu/RealPlayer
Enter [F]inish to begin copying files, or [P]revious to go back to the previous prompts: [F]
这是安装程序提示的确认信息,如果确认,就按 F,然后回车,终端又输出:
按下 Y 键,然后回车。然后就是静静的等待安装完成了。当重新出现提示符的时候,说明安装完成
了,这时,在“应用程序/影音”下就会有 RealPlayer10 的程序启动器(相当于 Win 下的快捷方式)。
打开终端,输入如下命令:
export GTK_IM_MODULE=xim
好的老师了。
打开终端,输入如下命令:
安装好之后,在终端中,用如下命令启动 RealPlayer:
$aoss realplay
打开一个影片看看,是不是不卡了呢?如果是的话,就恭喜了,为了以后可以直接图形界面启动
RealPlayer,可以做如下工作:
在“应用程序”上点右键,选择编辑菜单,然后在影音下找到 RealPlayer,点右边的编辑,把命令改
为:
aoss realplay
或者(这个方法我没测试过):打开终端,输入:
企业应用
斐迅科技 顾宏军
Linux 系统开发商
一般而言,软件开发商本身对其所提供的软件该是对了解,最熟悉的了,比如,我们使用的
Windows 系统,微软公司对该系统的各个方面该是最熟悉的,他们的服务该是最权威的。但是在 Linux 和
开源领域,却是个例外。因为包含在软件供应商或开发商光盘里的大量软件并不是他们自己开发的——
这就是开源商业的一大特色。比如 Novell 和 Red Hat 提供的 Linux 系统内很多软件都是第三方社区开发的,
因此,软件供应商自身可能对它所提供的软件的各个部分并不很熟悉。
还有,软件开发与能提供解决方案,提供可持续性的技术支持,还是相差很大的。我们常常有这样
的经验:软件出问题时,开发人员的回答,往往是"下个版本解决"。但是,如果是方案提供商那它可能通
过选择其它合适的组件来满足客户的需求。
一般而言,客户会使用软件制造商的软件升级服务,但是从其它地方寻求技术支持。经验告诉我们,
因为生产商的支持模型常常头重脚轻,而且价格昂贵。大家想想看,自己使用的各类软件,使用官方技
术支持的有多少?
系统集成商
系统集成商是个相当广泛的概念,它包含从硬件厂商到真正的系统顾问服务的所有公司。曾经,大
型系统集成商对 Linux 系统是不屑一顾的,因为它不够来钱,而现在也有好多集成商提供 Linux 系统。系
统集成商知道如何合理选择各种组件以成功实施一个项目。好的集成商知道自己有哪些技能,并且知道
何时需要使用第三方的专家。系统集成商的解决方案里最重要的组成部分是它提供的专业的项目经理,
而不是其它东西。
如果你负担得起,并且是个大项目,那你该选择系统集成商,这样,你可将一些失败的风险转嫁到
项目经理身上,并且让他来选择各种系统组件。因为好的项目经理,有多年的项目实施经验,这些经验
可帮助降低项目失败的风险,集成商拥有让项目成功实施的各个环节的专家,这些特定领域的专家对保
障项目的成功实施起相当的作用。
硬件厂商
专门 Linux 支持公司
Linux 服务器领域依然是个很专门的领域,这些公司知道它们能提供的有别于系统集成商或软件厂商
的额外的价值。此外,它们还有足够经验和技能以将 Linux 方案与现有的 IT 系统进行集成。
这些公司一般提供承包服务(包年,包月等)和按次服务两种服务模型。Linux 正在进入主流市场,而
软件供应商和硬件厂商提供的保障机制却没法满足需求,这就是这些 Linux 专门服务机构的机遇,我们可
与 Linux 技术服务公司建立特定水平的服务协议或者在需要时,让其提供现场服务。如果您的组织面临复
杂的相互作用的硬件,软件和操作系统引起的问题,那么选择专门的 Linux 支持公司就比较合适。
开源布道者
如果你是个小组织,就一两台服务器,这时,这种公司可能适合你。它们能帮您通过很小的预算即
可用开源软件构造出一个替代微软的方案。你所支付的费用,不是软件费用,而是它们帮助进行简单设
置的费用。
这是因为这些人往往没有他们自己想象的那么厉害。他们不相信专有软件,而且一般比较傲慢——
半桶水——认为他们就是专家。知道什么是最好的;这时我们千万别害怕辩论,别被一些莫名其妙的学
术头衔吓到,如果他们不乐意和你一起协商一些基本的商业条款,那就别和他们合作了。
如何分辨开源布道者?
一般而言,在他们的网站上有很多的“开源”的字眼,还能看到他们如何参与各个社区项目的说明,
还有一些技术文章,提到了诸如防火墙,DNS 之类概念。这些公司网站呢一般都写着某某大公司是他们
的客户,以此来唬住不少的人。但是如果细问下,可能出破绽了,也许,这些大公司只是雇佣它搞了几
天的活,或者让配置了个简单的 DNS 服务器之类的。
总结
如果你的内部 IT 部门已经负荷过重,或有其他需要优先处理的项目,而你有周期长,而有比较紧急
的项目,那么选择有实力的大型系统集成商,能帮助降低项目风险。
如果你是一个中等规模的组织,或者是大型组织的一个独立部分,并且在寻找能够将开源项目与现
有的 IT 架构进行有效整合的 Linux 服务商,这时专门的 Linux 服务公司比较合适。
最后,如果你是一个小型组织,有个简单的需求,那么在本地找个鼓吹开源的公司,应该能帮你搞
定问题,但是注意这是一种相当的冒险行为……
使用 Cacti 监测系统与网络性能
岑锐坚
RRDTool 与 MRTG 对比
与 MRTG 一样,RRDTool 也是由 Tobias Oetiker 撰写的开源软件,但 RRDTool 并非 MRTG 的升级版
本,两者有非常大的区别,也可以说 RRDTool 是将用来取代 MRTG 的产品。下面是两个软件的一些优缺
点的对比:
1.MRTG
优点:简单、易上手,基本安装完了之后只要修改一下配置文件即可。
缺点:
◆使用文本式的数据库,数据不能重复使用;
◆只能按日、周、月、年来查看数据;
◆由于 MRTG 本来只是用来监测网络的流量,所以只能存储两个 DS(Data Source),即存储流量的输入
和输出(如图 1);
◆每取一次数据即需要绘图一次,浪费系统资源;
◆图像比较模糊;
◆无用户、图像管理功能;
图 1 MRTG 生成的图像
2.RRDTool
优点:
◆使用 RRD(Round Robin Database)存储格式,数据等于放在数据库中,可以方便的调用。比如将一个
RRD 文件中的数据与另一个 RRD 文件中的数据相加;
◆可以定义任意时间段画图,可以用半年数据画一张图,也用半小时内的数据画一张图;
◆能画任意个 DS,多种的图形显示方式(如图 2);
◆数据存储与绘图分开,减轻系统负载;
◆能任意处理 RRD 文件中的数据,比如在浏览监测中我们需要将数据由 Bytes 转化为 Bits,可以将原始数
据乘 8。
缺点:
◆RRDTool 的作用只是存储数据和画图,它没有 MRTG 中集成的数据采集功能;
◆在命令行的使用非常复杂,参数极多。
◆无用户、图像管理功能。
Cacti 介绍
RRDTool 的绘图功能非常强大,不过由于 RRDTool 的命令非常复杂繁多,并且不包含数据采集的功
能,所以非常难以入门。有很多喜爱 RRDTool 的程序员为其写应用的平台或脚本,而 Cacti 就是其中的佼
佼者。
Cacti 的架构:
整个 Cacti 系统由 4 个部分组成(如图 3):
Cacti 页面(PHP)――用户控制的平台,用户在此进行所有的设置;
SNMP 采集工具――Unix 下使用 Net-SNMP 软件包自带的“snmpget”和“snmpwalk”等程序,windows 下
使用 php 的 snmp 功能;
RRDTool 绘图引擎――性能数据的存储和绘画图像;
图 3、Cacti 的架构
Cacti 的安装
该安装文档的平台是 Linux,其它平台上的安装方法请参照 Cacti 的官方网站。
1.设置 mysql
创建数据库、数据库用户,调整权限、密码:
# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10 to server version: 4.0.23-standard
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
2.安装 RRDTool
安装方法:
. /configure –prefix=/usr #把东西装到 /usr 目录下
make ; make install #编译及安装
测试: 运行 rrdtool –v
可以看到 RRDTool 的用法以及版本信息:
RRDtool 1.2.12 Copyright 1997-2005 by Tobias Oetiker <tobi@oetiker.ch>
Compiled Apr 30 2006 11:30:36
SNMP 全名是简单网络管理协议,几乎所有的网络设备(交换机、路由器等)和操作系统默认都安装
了 snmp 服务。
4.安装 Cacti
导入数据库、设置权限:
cd /www/htdocs/cacti
mysql -u root cactidb < cacti.sql
chown -R cactiuser rra/ log/
编辑配置文件/www/htdocs/cacti/include/config.php :
$database_type = “mysql”;
$database_default = “cactidb”;
$database_hostname = “localhost”;
$database_username = “cactiuser”;
$database_password = “cactipw”;
crontab –u cactiuser –e
加入:
*/5 * * * * /www/php/bin/php /www/htdocs/cacti/poller.php >; /dev/null 2>;&1
基本设置:
Cacti 安装完成后,并不能立即进行数据的采集,我们还需要对 Cacti 服务器和客户端进行设置:
1. Cacti 端的设置:
Cacti 端主要是设置一些应用程序的路径和版本等信息,这些信息非常重要,因为不同版本程序的参
数会有差异,有时会让 Cacti 不能正常工作。
在浏览器上输入:
http://IP/cacti
进入 cacti 的初始设置页面:
在这里我们要输入一些原始的信息:
点击 NEXT ->
选择“New Install”,点击 NEXT ->
输入 Cacti 需要用到的程序的绝对路径、版本等信息(如图 5),点击“Finish”->
输入原始的用户和密码:admin/admin,点击“login” ->
更改 admin 用户的密码 ->
点击 “Save”即可进入 Cacti 的控制面板。
图 5 Cacti 安装设置
2. 设置 Net-SNMP:
该设置针对的是被采集端而非 Cacti 服务端。一般的类 UNIX 操作系统均安装有 Net-SNMP 软件包,
但不同操作系统,甚至不同的 Linux 版本的安装路径和配置文件可能都不一样。如无特殊的需求,使用系
统自带的 SNMP 程序即可,请参考该操作系统的使用手册。
3. 设置交换设备:
除了监测每一台服务器的性能参数外,在实际的应用中,我们可能更需要监测交换机或路由器的流
量。同样的,我们需要开启交换设备的 SNMP 功能,让 Cacti 能取到数据。交换设备一般使用设备厂商自
己的 SNMP 软件,下面以 CISCO 设备为例进行设置:
Router>enable
Password:
Router#
Router#configure terminal
Enter configuration commands, one per line. End
with CNTL/Z.
Router(config)#
退出 config 模式:
Router(config)#exit
Router#
将设置写入 NVRAM 中::
Router#write memory
Building configuration...
[OK]
Router#
4. 测试 SNMP 服务
在 Cacti 服务器上使用命令:
snmpwalk -v 2c -c public 192.168.0.1 if
该命令表示,使用 SNMPV2c 版本和 community 名称 “public”,取服务器(192.168.0.1)的所有
interface(网卡)的信息。
5. 安全
或许有人会说开启了 SNMP 服务后,服务器和设备会变得不安全了。其实这样的言论可能还停留在
多年前对 SNMP 的看法。其实 SNMP 最容易被利用的地方不是它的缺陷,而是它默认的查询
community――“public”。不负责任的管理员总会留下后门给黑客,这并非软件的错。当前 SNMP 协议的
版本是 SNMP3,该版本改变的之前只使用 community 进行查询的方式而是采用了用户名和密码验证,大
大改善了 SNMP 的安全性。即使不使用 SNMP3 版本,也可以在配置文件中限制能访问 SNMP 服务的网段。
当然,如果你对 SNMP 还是不放心,可以将 SNMP 服务 bind 在内网 IP 上。没有内网 IP?防火墙、ACL
总会用吧?
六、使用方法:
1.界面介绍
图 6 Cacti 菜单
2.console 菜单
Create:
New Graphs――创建新图像的快捷方式;
Management:
Graph Management――图像管理。可以在此删除、复制图像,Cacti 会自动创建图像。不过如果我们有特
殊的需要,比如将几张图上的数据合并在一张图像上的话也可以在此手工新建图像;
Graph Trees――图像树。在 graphs 界面里,图像或 devices 是树状结构显示的(如图 7),可以在此设置
树的结构;
Data Sources――管理 rrd 文件。一般无需修改,Cacti 会自己创建 rrd 文件;
Devices――设备管理。这是我们最经常需要修改的地方,可以在此创建新的设备或修改其名称等信息。
图 7、图像树
Collection Methods
Data Queries 和 Data Input Methods 是采集数据的方式,一般我们无需对这两项进行修改;
Templates
Graph Templates 、Host Templates 和 Data Templates 分别是图像模板、主机类型模板和数据模板。这些模
板可以导出、导入也可以自己编写,一般无需修改。
Import/Export
Import Templates 和 Export Templates,对上述模板的导入、导出。我们可以在 Cacti 的官方网站上找到这
些模板,不过需要注意模板对于的 Cacti 的版本。
Configuration
Settings ――Cacti 的主要配置菜单;
可以在此重新设置对应的程序的路径、版本等信息。也可以设置图像的输出方式(允许 ftp)、显示效果、
登陆方式(允许使用 LDAP)等。
Utilities
System Utilities ――显示 Cacti 系统的一些 cache 和 log 信息,如果 log 文件太大建议直接到后台查看;
User Management ――用户管理。可以在此添加、删除用户,并对每个用户设置详细的权限;
Logout User ――注销用户。
3、创建监测点
图 8 填写新建服务器信息
图 9 选择要监测的内容
点击“Create”创建选择的监测内容,已经选择创建的内容会自动变成灰色并且不能再点选(如图
9)。Cacti 会自动创建该监测点的 rrd 文件(在 rra 文件夹中)、“Data Source”和“graph”条目。创建监
测点完毕。
4、查看监测点
混源新视界
混源:开源之道
顾宏军
在过去这几年里,软件产品数量急剧增长。现今设备不仅包含越来越多的软件,而且越来越多的功
能通过软件实现了。这种爆炸式的增长也抬高了软件开发的成本。外包(部分)软件开发只提供了一种
不完全的解决方案,而对适当的部件进行开源可以有效地节约开发成本,缩短产品开发周期,因此,某
些软件开发上就采取部分组件开源,部分组件闭源的战略,从而形成了独特的“混源”架构。
抛开开源和闭源各自的立场不谈,“混源”实际是一种实用主义,即一切从效用出发。所以,企业
需要了解开源风险、并有效控制开源风险,充分发挥开源和闭源的长处。
要采用“混源”架构,需要实施分两步走的战略。首先,将软件或系统的功能、组件区分为独有功
能、基本功能和可有可无功能,并且对每个功能组件进行判别,其使用开源架构或者闭源软件是否是最
佳选择;其次,软件架构设计应该和法律条款同步设计。这需要软件架构师、工程师与知识产权和法律专
家进行通力合作。
了解开源风险
“开源”所指的是软件开发模式,是程序的源代码在某种授权下公开,以提供用户修改和从新发布
该程序的权利,并期望(不是必须的)用户所作出修改和改进也可纳入“官方”版本。
开源软件的授权适用条款可能比较奇特。例如,有授权要求如果你的软件要包含开源软件,那么你
开发的新软件也需要进行开源。如果采用使用这种授权的开源软件,那么整个软件栈的所有软件产品,
可能都必须以开源方式进行发布。(这些条款只在把这些软件出售或转让给第三方时适用)。对专利持有人
额外风险可能是在发布第三方开源软件时需要提供一个免费的专利授权,而这有可能侵犯了别人的专利。
这一专利许可问题可只限于在开源组件中,但是在某些情况下甚至会影响整个软件栈。
公司可能因这些风险对开源的诱惑敬而远之,这并不是一种从商业角度做出的理性决定。在商业环
境中使用开源软件正越来越流行,甚至在商业产品中。忽略了这些,公司将与所有可能的高质量软件无
缘,并且无法享受开源带来的削减开支和时间的好处。有时一个商业产品简直没法保持和开源软件一样
丰富的功能。因此,唯一可行的是要了解风险,并懂得如何管理它们。
开源许可证
现在有 40 多种不同的开源许可证,每种都有其约束条件和影响力。他们大致可分为 3 类:
1.Free-for-all 许可证:
这类许可只需要将荣誉归功原作者即可。衍生作品,可以保持专有。有时这类许可被称为“学术许
可”典型的就是所谓 BSD 和 MIT 许可,以及用于 Apache 服务器的 Apache 许可证。
2.Keep-open 许可证:
根据采用这类许可的软件进行的修改,必须也采用这类许可进行开源化。大的包含该软件的新软件,
则可以使新软件保持专有。LGPL(Linux 系统库采用)授权和 Mozilla Public License 授权(Firefox 浏览器
采用)就是 Keep-open 授权。
3.Share-alike 许可证:
当软件采用这种许可时,无论软件被修改或是被扩展,所有的成果都必须进行开源化。有时用术语
“Copyleft”来描述这种授权。最有名的例子是 GPL 授权,它被 Linux 操作系统采用。另外一个例子是
Open Software License (OSL)。
选择合适的混源策略
采用开源策略的公司常常做出非黑即白的选择:一个产品要么开源,要么闭源。其实可以用一种更
微妙的方法—“混源”可获得更大的好处。 如果能对如上所述的授权进行有效的管理,公司可以对某些
部件使用开源软件,而对其它部件进行封闭开发或者商业授权,最终目标应该是最能保证产品的价值。
专有的组件或者方案应该被可供选择的开源产品替代,以体现出更大的价值,而不是保持该组件私有或
闭源。除了可以使用已有的开源实现,公司也可以以开源方式公开它自己的实现。
产品按功能进行分类,有三类功能:
1.特有的功能:
这类功能给产品带来附加值。它们使产品可和竞争对手区分开来,并且给出了客户乐意购买它们的
理由。
2.基本功能:
这类功能是客户需要和期望的功能。它们提供价值,但没有给产品增加附加值。举例来说,今天没
有人买便携式的音乐播放器,是因为它支持 MP3 格式。 另一方面看就是,如果不支持 MP3 格式,就没
有人买这样的播放器。
3.可有可无功能:
这类是隐藏的、不感兴趣的功能。产品需要它们才能工作,但客户并不关心它们。
对每个分类,最基本的问题“自己开发还是购买?”变成了“自己开发、购买还是采用开源?”要
回答这个问题,第一步就是要区别它是哪一类功能部件,特有的,基本的还是可有可无的?第二步,判
别每种选择对各个功能部件产生的影响。图 1 显示了每种选择的影响。
一般而言,特有功能应内部开发,以确保最大的市场优势。外包(购)这类功能组件,是一种选择,但
是这意味着公司产品最关键部分依靠第三方。如果第三方出现问题,将造成重大的风险。当然,对这类
功能进行开源也不是个好的决定,开源会使该功能部件成为基本功能。
对于可有可无功能,公司不应该花时间和精力在内部开发或维护这类功能。 这部分使用开源节约时
间、精力和金钱,而且这通常是正确的选择。一个例子就是使用 Linux 作为一个嵌入式操作系统。
居于中间的是基本功能。这类功能需要逐个的作出决定,是开发、购买还是使用开源合适。 公司可
能采用一个策略,例如“如果该功能不向其它人收费,我们采用开源。”技术考虑可能阻碍某个基本功
能采用开源。举例来说,如果对基本功能进行开源,就也需要对特有功能进行开源,显然,基本功能应
该依然闭源。
在某些情况下采用开源可能不合适。一个经常听到的问题是,开源许可的条款对一个特定的产品过
于繁琐。这里可能也有技术原因使得公司需要进行闭源。例如,在一个小型嵌入式装置里,Linux 未必就
是最佳选择,因为它的系统需求较大。另外一个原因是,有些客户要求不用使用开源。
软件的合法问题
软件的合法问题理论上讲很简单,实际却有些复杂。源代码可以被复制和拷贝,库可以被链接,或
被远程进程调用。用面向对象语言像 Java 和 Web Services 可能的事件变得更多。这会造成软件组件间复
杂的相互依赖关系。对这样一个复杂的软件栈进行开源组件法律影响评估,有相当大的困难。
为确保实现被妥善管理,知识产权专家应当在产品设计的早期介入,在项目开始时就顾及,并贯穿
软件设计和实施的整个过程。
总之,对开源的态度,不应是明令禁止,而应该是作为战略的一部分,采用实用主义的“混源”策
略,对开源进行有效充分的利用。
CIO 掌控混源之道
适应它
未来,新的套装应用软件将是闭源软件和开源软件的混合体。这不仅将节省企业的 IT 支出,而且还
将使 IT 经理们在软件开发上拥有更大的控制权。
混源这种趋势是不可避免的。因此,IT 经理们现在就应该着手增加数据中心的开源组件。
忘记供应商锁定
在百分百封闭源代码套装软件的时代,有一件事情经常发生,那就是每个人都得习惯供应商锁定。
在这种情况下,许多企业的系统更新在很大程度上依赖于供应商,出于成本控制的考虑,他们的产品常
常落后而且几乎无法调换或者取代,而开放源代码将把 IT 经理从这种困境中解救出来。
平衡利用社区
在过去,试图让 IT 经理改变或者修改已经部署的应用,是一件很勉为其难的事情,因为他们把那些
应用看成是一个宝。“我有一家客户,他们只有一名员工懂软件。他们把他写的程序视作皇冠上的宝石
一般珍爱;事实是那不是软件,但的确出自那个人的大脑。”因此,如果考虑将你的新软件基于开源,那
么就不要依赖于独立的开发者。
真正的长期支持
也许你会说,如果一个开源项目不再获得支持,那么它的使用者将会比较麻烦。事实上,如果相同
的事情发生在闭源软件公司的话,那么它的使用者将什么帮助也得不到。对于开源,至少代码还能存在。
产品被停产或者公司破产后,闭源工具很难生存下来。开源却不是那样,有例为证。现在,一个基于
Linux 桌面的文件管理软件 Nautilus,即使其创建者 Eaze 公司已经不存在了,Nautilus 还在规则地更新着。
遇上这样的情况,也许微软还能够再继续提供 5 年的支持,但是其他的小公司就很难保证了。
避免升级风暴
微软刚刚发布了 Vista,如果用户试图升级使用的话,将不得不购买新的硬件来匹配,因为大部分的
应用对 Vista 来说都是新的,后端服务器需要新的软件来与新的桌面操作系统进行对话。 而开源项目是
组件化、模块化的,你可以像搭积木那样灵活更换,但并不改变它们原来的功能,显然这将帮助 IT 经理
避免诸如 vista 带来的升级风暴。