Professional Documents
Culture Documents
卷首语
浅谈开放标准
10 年前,全球电脑如何实现通话是困扰人们的一个主要问题,随着 IP 标准的出现,这个问题得到
了很好的解决,并主导了商业计算硬环境,推动互联网等技术抹平世界,对全球商业模式变革产生巨大
影响。今天,在我们的软件领域也有着同样的困惑,如何进一步推动企业间软件互联互通,从而让商业
价值链真正实时灵动起来已经成为一块阻碍软件领域向前发展的绊脚石。
究其原因,主要是由于软件领域标准的缺失。在商业市场,有着这么一种说法,“四流企业做产品、
三流企业卖技术、二流企业做品牌、一流企业定标准”。标准之争其实就是市场之争,谁掌握了标准,
就意味着先行拿到了进入市场的入场券,进而从中获得巨大的经济利益,甚至成为行业的定义者。如美
国高通公司,它不生产手机,但拥有 CDMA 核心技术标准,现在中国的手机厂商每生产一部 CDMA 手机,
都得向高通交纳一笔费用。
过去,在软件行业的起步阶段,私有标准很好地促进了行业的发展和成熟,使得各厂商有一个可参
考的“事实标准”,避免了厂商各自为战所带来的分化。然而,随着行业的成熟,众多的企业发展壮大
起来,围绕着标准的争夺变得不可避免,尤其是标准的“私有化”和“开放性”两方面(即私有标准和
开放标准)。
标准“私有化”的最大问题在于垄断,掌握着标准的企业获得高额垄断利润妨碍其他竞争者的发展。
标准的“私有化”和开放标准的出现都源于商业利益的博弈。事实上,任何企业或个人都希望能够拥有
标准的“产权”,因为标准的控制者可以获得极大的市场竞争优势甚至垄断地位,并主导相关技术的发
展方向。而除标准产权拥有人外的标准实现者则希望标准中没有知识产权或有少量的低付费的知识产权
在市场上能获得平等竞争的机会。用户则希望基于标准的产品和服务能在市场上充分竞争,享受价廉质
优的产品和服务。
而开放标准则在制定过程中遵循公开、透明、协商一致的原则,其执行和维持由非赢利机构负责,
标准的发展遵照一种对所有利益相关部门都有效的开放的决策过程基准下进行,标准一经公布,其详细
说明书允许所有人免费或象征性收费进行拷贝、发行和使用。
开放标准是公众可以得到和实现的标准,通过允许所有人都可以得到并实现这些标准,开放标准鼓
励不同的软硬件模块之间的兼容性,因为每个人都可以基于技术手册及相关资源建立自己的产品和其他
基于该标准的兼容工作。很类似于制造业的标准件,只要遵循同一个标准,不同厂家的配件可以选择使
用,为用户提供了选择,从而降低企业的成本。
中国软件产业一直处于世界软件产业的后来者角色,在既有平台主导的软件价值链中客观上处于劣
势地位。近年来,在长风联盟的推动下,开放标准在我国也取得了长足的发展,厂商也由过去对开放标
准的不闻不问转变到了现在的主动参与,这是对开放标准认识的提高,也是为企业更好地发展铺平道路
开
oss.linuxpk.com 源 2009 年第 2 期 2
卷首语
而对于 SOA 技术,由于正处于发展的初期,并且十分强调开放,强调标准,这给中国软件产业的发展带
来新的机会。
SOA 的核心价值在于将商业逻辑直接以服务的方式映射到一个服务编排中,从而真正实现商业人员
对 IT 系统的直接掌控、修改及再造,一举改变过去很长的 IT 系统建设的内部流程。基于 SOA 将企业的
内部资源以服务方式展示出来,以企业的价值观加以分析,形成全价值链优化的服务编排和应用,即企
业资源全程优化(End to End Resource Planning—EERP)是企业可以获利于 SOA 技术革命的一
个应用范例。从目前 SOA 标准的制定情况看,各标准组织还没有涉及企业资源全程优化的相关标准,长
风联盟组织众多国内企业,在 SOA 研究和发展过程通过实际应用中反复论证,发布了关于全程优化的白
皮书。
开
oss.linuxpk.com 源 2009 年第 2 期 3
主办:Linux 宝库
网址:www.linuxpk.com
官方下载地址:oss.linuxpk.com
主席:陆首群
专家委员会(按姓氏拼音为序)
宫敏 毛德操 倪光南 许洪波 袁萌
顾问委员会(按姓氏拼音为序)
白剑波 曹冬 陈绪 贾栋 李科研 毛文波
主编:陈杰
副主编:陈伟
排版:邹洋
封面设计:张亚运
编辑部:高延斌 姚欣宇 顾宏军
声明 :杂志部分内容来自开源社区及互联网,目的是加强开源文
化交流和开源应用传播,如存在版权问题,敬请联系,我们将在第一
时间进行处理。
致谢:本电子杂志由 OpenOffice 制作,并直接导出 PDF
文档,在此表示感谢 。
opensource@linuxpk.com
目录
内容目录
卷首语
浅谈开放标准.............................................................................................................................2
业界动态
"2008 中国开源软件发展峰会"英特尔获殊荣.........................................................................7
微软称 Google Apps 对 Office 不构成威胁..............................................................................7
Nokia 宣布 Qt 软件以 LGPL 发布.............................................................................................8
IBM 被鼓励开源 Notes/Domino................................................................................................8
云计算标准组织正式联盟 OCC 成立.......................................................................................9
Oralce 力挺 Xen 加入 Xen 顾问委员会...................................................................................10
谷歌或推 Android 桌面系统挑战 Windows 7.........................................................................11
分析称戴尔和 Red Hat 绝配 彼此需要对方..........................................................................12
Google 携红帽 JBoss 促进网络应用发展...............................................................................13
09 年将被淘汰的 12 家科技公司............................................................................................14
Mark Shuttleworth:Windows 7“了不起”............................................................................15
2009 年开源技术六大发展趋势..............................................................................................15
2009,中国开源能不能进入加速期.......................................................................................18
经济危机下开源软件或将增长两成.......................................................................................20
开源通讯
Novell 助力汇丰银行提升系统互操作性...............................................................................23
红旗嵌入式系统应用在风电控制领域...................................................................................23
高校开源软件大赛落幕 红旗倾力开源人才培养.................................................................23
中标软件首推 58 元桌面办公套件(Linux + Office).........................................................24
中标软件联手长城打造 Linux 上网本,累计销量突破 300 万............................................24
香港开放源码考察团造访京城...............................................................................................24
首届“龙芯体验日”成功在京举行.......................................................................................24
百资科技应邀出席 Moblin 中心开幕典礼.............................................................................24
Alan Cox 脱去红帽,转投 Intel..............................................................................................25
2008 中国开源大盘点..............................................................................................................25
开源社区
中科红旗发布 Linux7.0 rc1 桌面版操作系统........................................................................30
Google Android 手机 Agora 最新谍照....................................................................................31
Google 欲推出 Mac、Linux 版 Chrome..................................................................................31
KDE 4.2 版正式发布................................................................................................................32
火狐中国版 Firefox 3.0.5 China Edition 2009.1 发布............................................................33
QQ for Linux 1.0 Beta1 发布....................................................................................................34
奥巴马的就职与开源软件.......................................................................................................35
开
oss.linuxpk.com 2009 年第 2 期 5
源
目录
英特尔中国开源技术中心系列专访之三...............................................................................37
评论:gOS3 到 CloudOS——英雄的堕落................................................................................40
知识学堂
Apache 的创始人 Brian Behlendorf.........................................................................................42
Brian Behlendorf 与他的开源人生..........................................................................................46
走进 Linux 世界:文件管理....................................................................................................49
经验技巧
Linux 一句话精彩问答............................................................................................................65
善用 GNU Make 做开发..........................................................................................................70
Autotools 快速开发..................................................................................................................75
高效使用 Linux 系统的几个习惯............................................................................................77
Linux 管理员新手易犯的十种错误........................................................................................82
简略讲解对 Linux 服务器的四种入侵级别..........................................................................84
Linux 下的飞鸽传书:信使 iptux 软件简介...........................................................................87
Linux 下时间的查看................................................................................................................88
在 Ubuntu 环境下安装 Gvim 及添加菜单项目......................................................................89
在 shell 里输入中文..................................................................................................................90
企业应用
Linux 流量控制提高网络效率................................................................................................92
用 Linux 构建最好的 FTP 服务器.........................................................................................102
嵌入式
了解硬件体系 开发嵌入式 Linux........................................................................................113
基于 uClinux 的 Web Server 的实现......................................................................................118
编读往来
Linuxpk.com 2009 年 1 月十大热门帖..................................................................................123
开
oss.linuxpk.com 2009 年第 2 期 6
源
业界动态
"2008 中国开源软件发展峰会"英特尔获殊荣
开
oss.linuxpk.com 2009 年第 2 期 7
源
业界动态
成威胁。
而佩恩认为,客户端软件的作用仍不可替代,软件即服务(SaaS)仅仅是企业提供的一个产品,并不
具有战略地位。而且,出于政治或法规因素,很多大一部分永远都不会使用云计算。
近 日 , 荷 兰 的 IT 顾 问 Ian Tree 发 起 了 一 项 运 动 , 试 图 说 服 蓝 色 巨 人 开 源 它 的 协 作 软 件
开
oss.linuxpk.com 2009 年第 2 期 8
源
业界动态
Notes/Domino(Notes 是电子邮件、日历和信息管理客户端,Domino 是集成的消息、协作和 Web 应
用服务器),使其转变成一个社区主导的程序开发模式。
云计算标准组织正式联盟 OCC 成立
Robert Grossman 表示:“现在有太多关于
云计算的讨论,有时候很难去讨论技术细节。
”
举例来说,如果你正在通过一家云服务提供
商运行应用,例如 Aamzon 的 EC2 服务,现在你
希望转而选择另一家厂商。“我们的目标是,在
最近一家制定云计算标准的正式联盟 Open 你改换云服务提供商的时候不需要重新编写应用。
一了,厂商的大肆宣传有时可 加进来。
能会掩盖住云计算存在的一些 OCC 主 要 的 基 础 架 构 是 Open Cloud
技术问题,OCC 也提到了这些 Testbed,这是一个有两台位于芝加哥的机架设
问题。 备组成的测试平台,其中之一在美国巴尔的摩的
OCC 主席、同时也是伊利诺 约翰霍普金斯大学,另一个在加州传讯及信息科
大学高级计算实验室主任 技研究院,而且两台均与 10Gb 以太网相连接。
开
oss.linuxpk.com 2009 年第 2 期 9
源
业界动态
Grossman 和同事最近使用这个测试平台测 (VMware 现在正在开发一款能够处理整个数据
量了在广域网中运行计算的性能损耗。 中心的操作系统)。
Grossman 表 示 , 通 过 使 用 Sector and
创建该组织的主要目的是让大学机构和 IT
Sphere ( 一 款 由 National Center for
厂商以一种非竞争的方式来共享技术信息,让云
Data Mining 开发,用于存储和计算云的开源
计算更快、更安全以及基于开源标准和开源软件
软件),他们能够将数据传输速度提升至 向前发展。
Hadoop 的两倍。
Grossman 表示:“我并不是一位推销员,
速度提升的原因之一就是采用 UDT 协议,这 的确,解决互操作性问题很重要,而且目前这一
一协议主要是针对极高速网络和大型数据集设计 问题并不明朗化。”
的。
Grossman 希望更多的主流 IT 厂商能够加
OCC 从 2008 年年中就开始逐渐成型,还只 入到这个组织中来。他说:“目前我们先要集合
是 处 于 起 步 阶 段 。 Grossman 表 示 , 该 组 织 和 起来众多厂商,以便分享交换信息。”
VMware 等 厂 商 一 样 关 注 着 相 同 的 技 术 问 题
开
oss.linuxpk.com 2009 年第 2 期 10
源
业界动态
得了市场的认可,至少是 Oralce 数据库用户的认可。
现在,Oracle 试图在服务器虚拟化市场介入到更深层次的领域,以便向市场显示其在虚拟化市场的
决心:2008 年 12 月中旬,Oracle 公司加入了 Xen 顾问委员会。
在 刚 刚 结 束 的 2009 年 “ 消 费 电 子 展
” (CES) 上 , 加 州 触 摸 屏 设 备 公 司 Touch
Revolution 又展示了一款桌上型电话,同样采
据国外媒体报道,在操作系统市场,微软的
用谷歌 Android 系统。这不禁让人想起调研研
劲敌可能不是苹果,也不是 Linux,而是谷歌的
机构 Net Applications 上个月公布的一份数
Android。
据,称近 1/3 的谷歌员工屏蔽了所使用的操作系
最近 2 个月,不断有消息称,谷歌 Android
统信息。
操作系统被成功安装到上网本等设备中。本月初
Net Applications 认为,这意味着谷歌
Mobile-facts.com 网站联合创始人马特豪斯·
可 能 正 在 开 发 自 己 的 操 作 系 统 。 Net
柯 里 科 斯 基 (Matthaus Krzykowski) 和 丹 尼
Applications 营 销 副 总 裁 文 斯 · 维 扎 卡 罗
开
oss.linuxpk.com 2009 年第 2 期 11
源
业界动态
(Vince Vizzacarro)称:“如果谷歌不是在 顾名思义,“上网本”主要被用于访问互联
开发操作系统,那么我会感到很吃惊。很明显, 网和云计算服务,而谷歌又拥有众多相关服务,
谷歌希望摆脱微软束缚。” 如 Google Docs 和 GMail 等。因此,无论从技
术角度,还是商业角度而言,谷歌开发桌面操作
如果谷歌确实在开发基于 Android 的桌面
系统都合情合理。
操作系统,那么上网本应该是谷歌的目标市场,
因为上网本需要的正是 Android 这样的“轻量 因此,将来不要为谷歌推出一款桌面操作系
级”系统。此外,上网本市场发展迅速,能够迅 统而吃惊。在时间上,与微软 Windows 7 同期
速提升操作系统的市场份额。 发行也不是不可能的。如果这样,那将是令微软
最头痛的事情。
开
oss.linuxpk.com 2009 年第 2 期 12
源
业界动态
开
oss.linuxpk.com 2009 年第 2 期 13
源
业界动态
Google Summer of Code 2008 提供了津贴给学生开发者为开源项目编写代码。在 2007 年,红帽公
司推介了 JBoss Portal 与 Google Gadgets 的整合方案,令开发者容易地在一个网络门户上增加预
建的 Google Gadget 组件。此外,Google 推出了开源的 Hibernate Shards,一个由 Google 软
件工程师开发的架构, 它增加了 JBoss Hibernate 架构支援。
09 年将被淘汰的 12 家科技公司
据国外媒体报道,知名 IT 网站《Channel Insider》日前评出了 2009 年可能被淘汰或被并购的
12 家 IT 公司,其中包括 Novell、McAfee、CA 和 Sun 等知名科技企业。
同样,Salesforce.com 也一直是被视为并购目标,潜在并购者包括为谷歌、甲骨文和微软等。
Sun 自从互联网泡沫破灭以来就从未真正复苏过。去年,公司大幅亏损,被迫重组并裁员 6000 人。有分
析师认为,此次重组是出售公司的前兆。以下为 2009 年可能被淘汰或并购的 12 家 IT 公司:
一、 Novell
二、 NetApp
三、 Check Point
四、 McAfee
五、 Salesforce.com
六、 AMD
七、 CA
八、 Juniper Networks
开
oss.linuxpk.com 2009 年第 2 期 14
源
业界动态
九、 Sun
十、 Citrix Systems
十一、 Symantec
十二、 VmWare
Shuttleworth 表示,实际上“我们正处于一个非常尴尬的境地
”,因为微软把“XP 扔给了 Netbook 市场”,“你甚至可以说 Linux 比 Windows XP 还贵,因为微
软给 OEM 厂商授权的时候根本不计成本”。而我们已经知道,Windows Vista 根本装不上 Netbook,
其笨重的体积是一个因素,另外价格也是让 OEM 厂商望而却步的理由之一。
2009 年开源技术六大发展趋势
2008 年对于许多开源公司来说是一个多事之秋,但同时也是一个取得重大突破性进展的一年。
2009 年将更是如此,尤其是在企业采购模式,软件的商业模式转变,企业的软件栈的演变方面。目前的
经济环境必将促使企业更谨慎地选择 IT 解决方案,开源技术由于其自身开放性和免费等优势必将成为今
年的大赢家。
开
oss.linuxpk.com 2009 年第 2 期 15
源
业界动态
以下就是我们对于 2009 年开源市场的预测,我相信在新的一年里软件市场将会重新塑造。
一、由于全球经济的进一步恶化,开源软件的普及率将会增加
2008 年席卷全球的经济危机肯定会蔓延到 2009 年,这是无庸置疑的,经济危机也迫使企业对 IT
策略做出结构性调整以降低成本,因而软件市场也会随之出现重大变化。与私有软件相比,开源软件由
于无需前期许可费用,因而显著降低了新的 IT 项目的总费用。功能越来越强大的开源软件也给软件行业
带来了竞争,这使用户在同主导市场的私有软件厂商进行谈判的时候处于一个更加有利和主动的地位。
开源公司近几年收入增长幅度都要比私有软件厂商的要高。开源数据库提供商 Ingres 最近宣布,该公
司 2008 年收入比 2007 年增长超过百分之二十五以上,而传统软件业年收入增长率只有百分之七到八。
增长率适当的供应商将采取行动打击,尽管传统软件公司比如甲骨文为了应对经济危机而实际上采区了
提高产品价格的举措,但是私有软件厂商的收入增长仍然会受到重创。甲骨文在收购 BEA 后,将该公司
的 WebLogic 应用服务器售价提高了百分之四十五,这直接导致了很多客户迁移到 JBoss 的开源企业应
用服务器。
二、从完整的基础设施的软件堆栈到应用解决方案,开源技术全
面开花
随着越来越多的公司寻找能够少花钱多办事的创新解决方案,他们将会像 10 年前 Linux 的使用先
驱者那样开始尝试使用 Linux 操作系统,并且最近几年会在整个基础设施堆栈中一直使用开源技术。开
源技术将要普及的重大基础设施领域包括应用服务器、信息和数据库,尤其是基于 Java 应用程序的堆栈,
因为它们易于迁移到开源解决方案上。在应用层,我们将会看到开源商业智能(BI)、企业内容管理(
ECM )和企业资源管理(ERP)解决方案的普及率大大增加。
三、SaaS 和云计算解决方案高歌猛进对于开源技术的发展将起到
拉动作用
软件即服务(SaaS)和开源技术都有同样诱人的经济模式:零前期成本和运营成本,因而能够显著
降低 IT 项目的整体成本,这在经济危机的环境在对于预算紧缺的企业用户来说无疑有着巨大的吸引力。
企业用户将会继续向这种基于订阅的服务模式迁移,从而能更好地处理自己的 IT 成本。采用这种现收现
付制 (Pay-As-You-Go)的服务,企业管理人员能更好地调整 IT 技术预算以适应当前的经济条件或者
是企业不断变化的收入流。2009 年,SaaS 和开源技术的使用都会有一个显著的增长。而 SaaS 的普及
对于开源技术的普及也将起到拉动作用,后者对于 SaaS 供应商同样是一个非常经济的模式。随着越来越
多的企业在内部 IT 系统中集成 SaaS 和开源技术,我们将会看到更多的企业用户地址过去传统的专利授
权软件模式。SaaS、云计算和开源产品的不断融合也将使企业用户即使在经济衰退的条件下实施 IT 项
目,所需的成本也会大大减少。
开
oss.linuxpk.com 2009 年第 2 期 16
源
业界动态
四、开源领域的兼并和收购活动将继续下去
由于越来越多的开源厂商被私有软件厂商收购,再加上开源厂商之间的合并,并购活动将继续改变
开源领域的“景观”。反过来,这些活动也将推动投资周期不断循环,就在 2008 年底,商业智能软件企
业 JasperSoft 和存储引擎厂商 Infobright 在经济气候如此寒冷的条件下依然在资本市场上筹到了
1000 万美元。我们很可能会看到的第一个开源应用和开源商业智能(BI)公司被收购。红帽和 Sun 都
有可能参与收购活动,以进一步扩充各自的开源栈。Novell 可能会利用它从 Microsoft 许可协议中得
到的钱扩大其开源业务。与此同时,业内分析师认为此次开源领域并购活动的幅度将超过行业的平均水
平,但不会达到 2005 年那种高峰期的程度。
五、来自开源领域的竞争将推动专有软件厂商向改变商业模式迈
出第一步
受“经济休克”的影响,企业用户传统的采购习惯不得不随之改变,再加上成熟并且可靠的商业级
开源软件堆栈的出现,2009 年专有软件厂商必将由于受到来自开源领域的强大竞争压力而开始改变自己
的商业模式。过去,由于对大供应商的依赖,企业用户在谈判时处于非常不利的地位,因而不得不接受
软件成本只升不降的“棘轮模式”,而现在由于经济危机的影响,更主要的是开源软件的不但成熟,这
使得业务规模大大缩小的企业将不再接受这种不公平的模式。为了应对这种情况,专有软件厂商将开始
根据客户的喜好调整其业务模式,一开始,他们会推出自己的 SaaS 产品,但同时也会死守其摇钱树---
专有许可和支持收入。为了应对经济危机,企业用户将会更多地选择开源产品,同时在同私有软件厂商
的谈判中表明愿意将开源软件用于重要应用,有助于提高他们在谈判中的地位。
六、开源供应商之间将建立强大的市场合作伙伴关系
开源供应商将继续联手开发完整的开源堆栈,并提供认证和预配置的解决方案,这大大减少员工费
用。这种伙伴关系为开源供应商提供了一个与大型私有软件厂商竞争的有效手段,比如微软、IBM、甲骨
文。整体开源解决方案要比组合各个私有软件供应商的产品在部署、维护上更加容易。从硬件到软件基
础设施再到应用层的整个技术堆栈,企业用户能将认识和体验到整体开源解决方案成本效益。比如,红
帽-JBoss- Ingres 堆栈将会马上与 Java 应用开发人员见面,与此同时,Sun 的堆栈也将提供给 Sun
和 MySQL 客户。JasperSoft 将会与开源数据库供应商合作开发一个完整的数据集市解决方案,使商业
智能应用的总体拥有成本大大降低,这样即使在 IT 预算紧缺的条件下用户也能负担得起。依靠这种强大
的合作伙伴关系开发的开源堆栈有助于提供竞争和激励创新,并为软件市场不断带来新的重要机遇。
开
oss.linuxpk.com 2009 年第 2 期 17
源
业界动态
2009,中国开源能不能进入加速期
Cnet 邹震
进入 2009 年,我们不得不说,无论从哪一个角度来看,开源都已不再是一名弱者了。然而,国内开
源界与国际开源之间的巨大反差,还是让我们不得不开始思考一个问题:2009 年中国开源能不能进入加
速期。
国际开源界火爆异常
另外,提到开源,人家总会顺便联想起微软。但在以前,微软总被放在开源的对立面,但在 2008 年,
微软显然正在改变人们的这种印象。Silverlight 2 RTW 的发布肯定要算.NET 平台下的一件大事,
需要补充说明的是微软在 12 月份发布了 Silverlight Toolkit,这是一个完全开源的项目,提供了
非常多的在 Silverlight 2 中并没有内置支持的控件,并且还在不断增加中。
开
oss.linuxpk.com 2009 年第 2 期 18
源
业界动态
年,微软中国公司与国内知名开源社区 PHPChina 联合宣布了互操作合作计划,以满足国内许多 PHP 用
户选择使用微软的 Windows 操作系统的需求。
国内开源界何时赶上
尽管关于开源的事例数不胜数,但让人遗憾的是国内开源厂商和社区还是居于绝对的弱势地位。
2008 年年初,国内开源厂商仿佛一起进入了蛰伏期。然而,就在业界人士都认为国内开源厂商会在
平淡中收场的时候,一切都发生了变化。
先是 2008 年 11 月,为了改变国产软件基础薄弱的局面,以股权变更为起点的国产基础软件新格局
逐渐形成,为我国基础软件产业的发展输入新的血液。CEC 和 CETC 系统共同向中标软件注资 2 亿元,其
目的就是要通过再次注资和配套产业链发展两种方式,将中标软件打造成为我国操作系统和办公软件“
一架式”发展的旗舰企业,并为其在数据库、中间件等方面的工作奠定了坚实的基础。
尽管国内开源厂商在年末集体发力,但对比国内开源厂商和国外开源业界的发展,我们还是不难发
现其中巨大的差距。
因此,我们此时也许更应该反思一下中国式的开源之路。IT 经济的发展往往以十年为一个周期,以
此来看,2009 年中国开源又回到了原点。
开
oss.linuxpk.com 2009 年第 2 期 19
源
业界动态
经济危机下开源软件或将增长两成
中国计算机报 陈畅
一、2008 年用户需求研究
赛迪顾问的调查表明,用户对开源软件的功能期望中,稳定性和安全性的需求仍是被调查用户重点
关注的方面,分别占到了 88.6%和 78.9%。此外,用户对开源软件的易用性、兼容性的要求也比较高,
占到被调查者的 48.3%和 38.3%,较去年同期都有了一定的增长。
二、开源软件逐步向核心领域渗透
经多年的市场推广,很多企业用户已经开始认识到开源软件所具有的更大生产力,他们可以通过较
低的成本利用开发者集体智慧的成果。在国家大力推行正版化政策的带动下,用户对开源软件的使用率
也进一步提高。Linux、开源数据库、开源浏览器、开源 Office、开源应用软件的用户数量和应用范围
不断拓展。赛迪顾问的调查显示,华北、华南、华东地区用户对开源软件的接受度最高,华中地区的需
求增长较快,东北、西北、西南的开源软件应用也开始起步。
在开源软件应用范围扩大的同时,开源软件的应用深度也在增加。作为开源软件中应用最为成熟的
Linux,已经获得了政府、金融、电信、邮政等大型用户更多的认可,并由一些非关键应用逐步向用户
的核心业务层面渗透,如银行支付系统、电信计费系统、证券交易系统、企业资源计划等已经开始采用
Linux 系统,并取得了一些成功部署和维护经验,为企业核心业务的大规模采用,提供了基础条件。开
源数据库也在中小企业级市场取得了更多的应用,可以完全满足中小企业数据量应用的需要,其业务系
统有一部分已经开始使用开源数据库。
三、用户抛弃付费软件
当前全球经济进一步恶化,企业的 IT 支出也将不同程度地陷入资金匮乏的尴尬境地,越来越多的企
业为控制成本和节约开支,将会自己研究开源软件并支持开源软件开发的相关工作。许多业内分析人士
认为,那些正在使用开源软件或准备减少成本投入的企业,将会继续推进付费或非付费开源软件的应用。
对于一些已经成功实施开源软件系统的公司而言,开源软件的益处已经大大超越了成本节约的范畴。
大型企业逐步开始利用开源软件追求 IT 系统的灵活性和经济性;中小企业也将开源软件作为引入先进技
开
oss.linuxpk.com 2009 年第 2 期 20
源
业界动态
术、实现低成本、高效建立 IT 系统的捷径。而在过去,那些先进技术往往只能通过昂贵的软件授权使用
才能获得。
现在,类似的情况再次重现。随着经济的低迷,所有企业要再一次面临削减 IT 成本的巨大压力。
Change Wave 研究机构在 10 月份所做的调查报告也显示,2008 年末,全球经济仍将处于特别萧条的
情况,该报告同时指出企业级软件市场将面临急剧跌落。大约 1841 家接受调查的企业级软件购买者中,
40%的企业认为它们将会在未来的 90 天内减少对企业级软件的投入。
四、半数企业青睐开源
在 企 业 服 务 器 上 运 行 的 Linux , 是 应 用 于 企 业 的 最 常 见 的 开 源 软 件 之 一 。 根 据 2008 年 9 月
Gartner 针对世界范围内 274 家企业,所做的调查来看,近半数的企业已经在使用开源软件,其余大部
分企业计划在未来的 12 个月内开始使用开源软件。有大约 52%的被调查企业已经在使用服务器开源软件,
还有 32%的企业计划在未来 12 个月内开始使用服务器开源软件。调查中,39%企业表示正在使用应用于
桌面的 Linux 操作系统,另有 22%企业希望会在未来的一年内开始使用该桌面操作系统。
在最近一次调查中,Gartner 明确指出,开源软件已经遍布在企业的每个角落。专家表示,面对全
球金融危机的冲击,低成本的开源软件无疑会更加受到用户的青睐,越来越多的中小企业将会对 Linux
以及其他开源解决方案产生了兴趣。
五、开源软件企业利润增长
对采购预算的缩减,使得一些企业越来越重视使用开源软件。“由于预算的大幅缩减,一些企业正
开
oss.linuxpk.com 2009 年第 2 期 21
源
业界动态
在寻求使用开源软件的机会。”在一个名为“ 451 集团”的咨询公司就职的分析师 Matt Aslett 说。
现在,开源软件已经广泛应用于一些企业,帮助他们运行服务器和维护数据库管理系统。与此同时,在
企业 IT 系统建设、客户关系管理、供应链管理等领域,开源软件也得到了越来越多的认同和广泛应用。
开
oss.linuxpk.com 2009 年第 2 期 22
源
开源通讯
开
oss.linuxpk.com 2009 年第 2 期 23
源
开源通讯
软件中心及 Linuxpilot 联合筹办“香港开放源
中标软件首推 58 元桌 码考察团” 访京,希望踏出重要一步,为中港开
源产业的融合奠定美好的基础。
面办公套件(Linux +
Office)
首届“龙芯体验日”成
2008 年底,针对微软“黑屏”措施,中标
软件特别推出 58 元桌面办公套件包括中标普华
功在京举行
Linux 桌面版操作系统和中标普华 office,限
时抢购价只售 58 元。所有的用户均可通过网络 2008 年 12 月 28 日下午,由龙芯俱乐部和
商城以及中标普华在线商城购买到该产品,中标 亚嵌教育发起主办的北京第一届“龙芯体验日”
软件此举旨在帮助用户能够真正使用物美价廉的 活动在北京亚嵌教育研究中心龙芯实验室成功举
正版国产软件产品,摆脱微软盗版黑屏的困扰! 行。本次活动围绕广大龙芯爱好者感兴趣的龙芯
CPU,由北京龙芯俱乐部的核心成员刘世伟工程
师、龙芯智见总经理徐光宇和中科院计算所邢明
杰工程师分别做了讲解介绍,内容包括龙芯俱乐
中标软件联手长城打造 部活动、北京龙芯俱乐部成果介绍、龙芯嵌入式
最新进展介绍以及龙芯 GCC 开发探讨。本次活
Linux 上网本,累计销 动吸引了 30 多位龙芯爱好者参加,反响良好。
量突破 300 万
2008 年中标软件联手 Intel 与长城电脑推 百资科技应邀出席
出的 Linux 上网本的销量在短期内骤增,中标普
华 Linux 上网本及 MID 系统累计销售突破 300 Moblin 中心开幕典礼
万套。
由于百资科技对于 Moblin 是一个地位重要
的 操 作 系 统 供 货 商 , 在 12 月 23 日 参 加 了
Moblin 技术发展中心在台湾台北的开幕典礼。
香港开放源码考察团造 Moblin 技术发展中心将提供技术支持的生
态系统,包含硬件外围设备和零件供货商,以帮
访京城 助确保驱动程序和应用程序的可用。
在 2008 年 11 月 24 日 至 27 日 , 香 港 自 从 宏 碁 与 百 资 合 作 推 出 畅 销 的 Aspire
Linux 商会、香港生产力促进局、香港开放源码 One Netbook 以来,百资科技一直与英特尔密
开
oss.linuxpk.com 2009 年第 2 期 24
源
开源通讯
切合作。在 Linpus Linux Lite 的下一个发 Cox 在给 LXer 网站编辑的邮件中宣布说,他已
行版本中将整合 Moblin 2.0 的众多特点,其中 经决定在 1 月中旬离开红帽。但他会继续为
包括:开机时间,clutter 使用者界面技术。这 Linux 做贡献,希望开发底层的一些程序。至今
将是最好的终极智能型手机系统。 他加入红帽公司已经 10 年了,现在有机会去研
究一些更底层的东西,如果没有什么大的变动,
他将会就去 Intel。他认为红帽的队伍现在很棒、
很稳定,是世界一流的,他的离开对他们不会有
Alan Cox 脱去红帽, 什么影响的。
转投 Intel
12 月 24 日,Linux 内核主力开发者 Alan
2008 中国开源大盘点
——把握中国开源的发展机遇
中国开源软件推进联盟主席 陆首群
一、2008 年大事记
1. 2008 年 COPU 主办或合作、参与的主要活动:
4. 2008.10 长江三峡(与中国可信计算联盟合作),举办“国际云计算、可信计算学术研讨会”
开
oss.linuxpk.com 2009 年第 2 期 25
源
开源通讯
9. 2008.11 北京(主办), “开源软件统计工作会议”
二、支持开源社区成长
据初步统计,国内开源社区有 230 家,大致可分为①门户类综合社区,②技术论坛类社区,③开源
项目开发类社区,④调研分析类社区,⑤学习推广类社区,⑥社交娱乐类社区,⑦应用类社区,⑧标准
测试类社区,这充分反映了国内发展开源软件的热情,在这些社区中,除少数已与国际接轨,开始出人
才、出成果外,多数社区的机制、设施尚待完善,活动经费尚欠缺,志愿开发者尚需进行技术培训和专
业指导,与国际社区的接轨、协同工作有待进行,COPU 支持他们在自愿的基础上做好社区完善工作,帮
助他们健康成长。
三、谈几件事
摆正开源与微软的关系
发展开源软件,是为了向用户提供多一种选择,推动软件产业的发展。开源软件就是要挑战私有商
业软件,特别是微软。但我们鼓励开源与微软正常竞争,双方也要合作;我们尊重微软的成就和贡献,
但我们反对侮辱、谩骂对方。
谈到学术争论,可以有不同意见。例如,我一直认为,Windows 太胖了,需要瘦身(Vista 内核
4GB,XP 内核 2GB),Vista 是微软迄今为止 Windows 升级最失败的一次(当时微软不少人极不赞成
这个观点,并反击,今天,直到 Vista 销售低于预期,全球用户反响很大,微软才无奈地认承这个事
实),微软为此提出了 Minwin 这个项目要给下一代 Windows 瘦身,现在看来 Windows 7 还是一个胖
子,瘦不下来(我当时曾预言,微软庞大的开发团队的机制似乎需要改革)。
低价 PC 对微软的冲击
2008 年(财政年度)3 季微软营收仅上升 2%,业绩不佳,全年股票下跌 41%。国外有人认为微软遭
受了重创,出现“帝国倒塌之声”(看来有点夸大其词!)其祸根是受到预装 Linux 的低价 PC 的冲击。
其实,微软是自己打倒自己, 2008 年全球低价 PC 约 1300 万台,装 Linux 的仅约 400 万台(不足
开
oss.linuxpk.com 2009 年第 2 期 26
源
开源通讯
30%,只是“小头”),而装简化 XP 的约 900 万台(占“大头”)。问题是“小头”带动“大头”全面
压价,导致微软业绩不佳。可是微软实力尚在,如果对来年价格策略作出调整,完全有可能挽回颓势。
便携式 PC PK 桌面 PC
有人说,配 Linux 的“上网本(Netbook)”和“移动网络设备(MID)”(都是便携式 PC)是替
代桌面 PC 的亮点。我们举 Intel 的协作产品为例(当然搞上网本和 MID 的不止 Intel),关于上网
本,,Intel 与 Xandros、百姿科技、中标软件(OEM 厂商为:华硕、宏碁、长城)合作,推出 Linux
上网本;关于 MID,Intel 与中科红旗(OEM 厂商为:明基、爱国者、日立、联想等)、WindRiver、
百姿科技、Ubuntu 合作推出 MID,可能是冲击桌面 PC 的亮点,但它们均是定制的,尚难全面取代桌面
PC。另外在 Intel MID 的发布会上我也曾指出,Intel 的 MID 也有与微软 Windows 配套的计划(关
键是微软尚未首肯)。目前 Linux 桌面只有社区发行版如:Ubuntu、Slackware、Debian、Fedora
、Open SuSE、PC LinuxOS、Arch 等的社区版;中科红旗开发并推出针对个人消费类用户的最新桌
面产品:红旗桌面 6.0,有待进一步观察;当然定制的 Linux 桌面产品已有了,主要是供业务较规范或
简单的企业或单位用户使用,尚不能供应消费类用户。总之,目前全面推出 Linux 桌面的时机尚未完全
成熟,尚不构成对 Windows 桌面的严峻挑战,大幅提高 Linux 桌面市场占有率(全球约 2%)还需等待
时日。
3. 成熟的开源产品离不开工程技术的后续开发
开源社区进行的是原创性技术开发,未考虑产品成熟化过程;它所开发的是开源项目(Open
Products)。开源社区的开发机制是“集体开发、合作创新、对等评估”,这个松散的创新集体用
开
oss.linuxpk.com 2009 年第 2 期 27
源
开源通讯
左版版权(Copy-left)来保护(过去著作权处于灰色地带,现在已趋明确,并可用右版版权(Copy-
right)来保护左版版权(Copy-left),即对于违反开源许可协议者,可以追究其法律责任)。开源项
目的开发成果是以社区发行版来发布的,社区版的优秀创新技术集中体现在其软件的源程序代码中,源
代码是向社会公开的,公众均可以从网上免费下载。源代码中当然拥有核心技术,但不能看成自主知识
产权。社区没有商业模式,远离用户,没有责任对用户提供任何技术支持和各种服务。公众下载的社区
版,尚未完全成熟、没有质量保证,要自己安装、配置、调试,公众可以试用,但社区并不提供经常性
的补丁支持,也不负责答复咨询。作为发行商(企业),其工作是将社区的半成品继续进行深度开发,
引入大工业开发体系,开发工程技术,催化产品成熟化过程,开发成熟的开源产品,并以产品发行版的
形式推向市场。企业继承社区的源代码,在发布产品发行版时,其源代码要遵循开源许可协议,仍将保
持其公开性,但企业开发的工程技术是不公开的。开源产品的全部技术包含源代码和工程技术,在工程
技术中也拥有核心技术,只有这部分不公开的核心技术才可能具有自主知识产权。开源发行商(企业)
推销或发行成熟的开源产品,其本质是采用低价营销战略(决不是免费战略);但他们正在摒弃传统的
基于“(专利/版权)授权软件”的销售方式,采用“软件即服务(SaaS)”的商业模式或服务模式,
即采用“软件免费,付费服务”的方式。我们必须搞清上述一系列概念,不要犯糊涂,才能推动开源软
件健康发展。
关于办公套件问题
全球办公套件的市场占有率大致为:微软的 Office 约 85%,Open Office.org 约 5%,苹果的
iwork 约 3%,Corel 的 word perfect 约 2.5%,Google 的 Docs 约 1%,其他约 3.5%,必须认承
微 软 的 Office 目 前 在 全 球 居 主 流 地 位 。 Open Office.org 社 区 负 责 人 Louis 对 我 说 , Open
Office.org 社区已与微软合作进行 OOov3 与 Office 2007 的兼容性开发与测试;英文版的 Open
Office 兼容性不错,中文版因中国增加了一些特殊功能,兼容性要差一些。 COPU 支持中方 Office 厂
商与微软一起协商,以便在 Office 兼容性合作方面(包括相互沟通接口、协议、算法以及妥善处理专
利),迈出可喜的一步。
四、把握好发展机遇
在高端应用方面
* 2008 年 12 月,我们邀请金融、电信、能源、铁路等大用户召开座谈会,据我了解,在他们那里
的高端应用过去主要采用 Unix,现在 Unix 是向 Linux 或 Windows 哪个方向迁移,还是未定之数,这
就是机遇。
* 2008 年 10 月,我们主持了一个云计算、可信计算等高端新技术应用国际研讨会,初步了解到国
内外的高端新技术应用都是以 Linux 和开源软件为导向的,但目前开源软件与私有商业软件在这方面的
竞争还是很激烈的,这就要把握好机遇。
开
oss.linuxpk.com 2009 年第 2 期 28
源
开源通讯
在核高基发展方面
核高基即核心器件、高端通用芯片和基础软件,其中基础软件即操作系统、数据库、中间件和办公
套件,这是国家十一·五期间的重大专项。专家们认为,要发展我国基础软件必须基于开源软件,这样才
能站在巨人的肩膀上跨越发展,这是机遇。
在推行现代服务和准就业模式方面
12 月 19 日国家 Linux 培训推广中心和教育部 LUPA 开源软件大学生实训基地就国家软件人才培训
模式举行启动仪式,邀请 40 个培训中心和 30 个国家经济开发区代表参加,会上提出,开源软件销售服
务不要走老路,要推行 SaaS 这样的现代服务模式,吸收接受培训的志愿者作为一支服务大军,为用户提
供解决方案,技术支持,实施指导和全面服务;并建立教学培训的“准就业”模式。在今天,特别是在
全球遭遇金融危机,国内扩大内需,发展经济,消化就业压力的时刻,这种模式也是把握机遇的一种探
索。
在发展便携式 PC 方面
在发展与 Linux 配套(Midinux 和 Moblin)的上网本 Netbook(7〞,8.9〞,10〞显示屏)和
MID(4.5〞,6〞显示屏)等便携式 PC 方面找机遇(受微软和 Intel 大力推广的超便携 MID,被英国
杂志《PC Pro》评为 2008 年全球十大失败科技产品之一,但该杂志认为上网本受到用户热捧;另悉,
配 Linux 的 MID 在国外一些地区也受到欢迎。我想,正如我在 2008 年 6 月 25 日“Intel Moblin 移
动应用开发者大会上”所说的:各种 MID 和 Netbook 可能成为亮点,最终是否形成气候,还要由全球用
户来说话,我们将拭目以待。我在会上还曾说,Intel 的 X86 架构似乎不太适应 MID 嵌入式计算,下一
步如果不将 x86 简化,恐难与 TI、Qualcomm、三星等推出的 ARM 处理器竞争,ARM 正在从智能化手机
向 Netbook、MID 扩展。当然,要形成大气候,还要进一步扩大第三方驱动和应用支持的生态系统,,
壮大业已国际化的 OEM 厂商的合作体制)。
在发展智能化手机方面
当前发展智能化手机必须拥有或利用三个资源:① 互联网资源;② 手机发展环境营造者自己拥有的
资源或其可控的本地资源(作为手机发展环境营造者可以是:手机制造商、如 NOKIA,也可以是网络平
台提供商、如 Google,或者网络运营商、如中国移动等);③ 用户或第三方的资源,这就必然导致手
机平台或手机的操作系统要开放,从而为 Linux 或开源软件提供发展机遇(微软也在向这方面变动中)。
但要注意!上述各种角色的手机发展环境营造者纷纷登台,其目的是企图利用平台建设来掌控进入新一
代移动互联网的门户。
开
oss.linuxpk.com 2009 年第 2 期 29
源
开源社区
◆ LiveCD:从光盘启动即可直接使用系统
/ 支持安装到硬盘
◆ 最新系统组件
牛年即将到来……
◆ 全新的主题风格
红旗 Linux 桌面“牵”牛版,顾名思义:牛
◆ 可以读取 Windows 系统的默认设置
年将至,在新旧年份交替之际,希望这个版本的
问世能“牵”出一个喜洋洋的牛年。 组件信息:
面团队对社区用户的答谢,既包含着每个人的心 ◆ Scim:1.4.7
血,也体现着对社区朋友的重视。——这点毋庸
◆ Firefox:3.0.5
置疑!
RC2 中我们会继续处理 bug,引入 KDE4.2
值此新年之际,再次向每一位到访的朋友问
并增强。
声“新年好”!在新的一年里,工作要努力(牛
Md5:b833c7b8df2957f2b1ff762f08cf
年精神),但绝对有丰厚的回报(新鲜、肥嫩的 8c4f
草料)。
安装提示
开
oss.linuxpk.com 2009 年第 2 期 30
源
开源社区
请确保您的硬件环境符合以下需求: ◆ 不小于 512M 的内存,当然 1G 以上会有
更好的使用感受。
◆ 4G 以上的硬盘空间;
下载地址:http://www.redflag-linux.com/download_end.php?
class1=6&class2=1&id=1000000855
配 置 方 面 , Agora 支 持 Google 搜 索 、
Gmail 、 YouTube 、 Google 地 图 、 Google
Talk 和 Google 日历,2.5 英寸 TFT-LCD 触摸
屏,分辨率为 320X240,200 万像素摄像头,具
备 GPS 导 航 , 支 持 谷 歌 地 图 , 支 持 蓝 牙
2.0 , IEEE 802.11b/g , 256MB+128 MB 闪
存,处理器时钟频率为 624MHz,1300mAh 可充
电锂电池,待机时间约 300 小时,通话时间约
开
oss.linuxpk.com 2009 年第 2 期 31
源
开源社区
反响后,Google 决定更上一层楼,填补 Chrome 的市场空白。
* 增强了 Plasma,支持桌面中心元素(即传统桌面布局);
开
oss.linuxpk.com 2009 年第 2 期 32
源
开源社区
* 新的 Plasma applets,支持 Google Gadgets 和 Mac OS X Dashboard Widgets;
* 全面改善了主题功能,几乎所有桌面元素都将可以定制;
* 相当多应用程序得到了改善;
安装和其他详情可见:http://kde.org/announcements/4.2/index.php
中国版新增了“火狐魔镜”,用户可随意拖拽页面中被选中的文字,在侧栏获得搜索结果或拖拽视
频,将视频播放窗移植到右侧栏,可以边看边上网;同时,“火狐魔镜”还内置了在线音乐服务,还可
查询天气和股票走势。
开
oss.linuxpk.com 2009 年第 2 期 33
源
开源社区
更新内容:
* 1.右上角添加更多搜索选择
* 2.新增魔镜图片全选和保存
* 3.“工具”菜单增魔镜隐私数据清除
* 4.魔镜自动弹出和关闭等设置修改
* 5.内存占用优化
* 6.标签页浏览优化
* 7.其他更新和优化
下 载 :http://dl1.g-fox.cn/chinaedition/releases/zh-CN/FirefoxChinaEdition
%202009.1.exe
最新版本功能:
一、色彩丰富的界面
在 Linux 平台率先支持更换软件的色调和底纹,配套用户不同的
Linux 版本,体现不同的个性和风格。
二、丰富的聊天表情
用户可以和好友或者群进行即时的交流,收发默认表情,并且能接收
对方发出的自定义表情。
三、自定义分组的顺序
用户可以在好友列表中自由的拖拽分组,把常用的分组移动到最上端,快速选中常用好友。
四、管理多个会话窗口
开
oss.linuxpk.com 2009 年第 2 期 34
源
开源社区
用户可以用多标签的方式管理多个会话窗口,并且每个子会话窗口可以从母会话窗口中分离,成为
一个独立的聊天窗口。
五、整合 QQ 核心功能
为用户提供 QQ 最核心的聊天,查找,设置等功能,可以享受到最快捷的聊天体验,没有任何打扰。
六、丰富的新消息提示
当用户收到新消息,不仅在任务栏会有消息盒子提示,而且在聊天的窗口和标签也有丰富的动画效
果。
支持好友备注功能
支持代理服务器登录
支持热键(提取消息:Ctrl+Alt+Z ;截屏:Ctrl+Alt+A)
优化皮肤的细节
优化代码运行效率,再次降低系统开销
下载:http://im.qq.com/qq/linux/download.shtml
奥巴马的就职与开源软件
袁萌
一、奥巴马的就职演说与微软的牛气冲天
1 月 20 日,奥巴马将发表就职演说,出任美国大总统。值得我们注意的是,奥巴马就职前到处鼓动
美国应该有“新的独立宣言”,而且就职演说的主题就是“自由的新生”,完全仿效当年美国大总统林
肯的说法。现今,美国广大普通民众对奥巴马给予很大的期望。这一切,与微软的牛气冲天有什么关系
呢?
大家知道,大容量流媒体播放服务器是一项尖端技术,要保证“海量”流媒体内容的发送量存在相
当的技术难度。通常,人们使用 Adobe Flash 服务器来处理在线实时(并且 on-demand)流媒体的播
放(to streaming)。2007 年 4 月,微软推出“银光”(“ Silverlight 1.0”)技术来对抗
Adobe flash,并且在北京奥运期间大获成功(注:去年 8 月,“银光”(2.0 Beta)发布,2.0 正
式版本在去年 10 月发布)。由此,微软的“银光”技术引起(全球)人们的广泛关注。
开
oss.linuxpk.com 2009 年第 2 期 35
源
开源社区
今年 1 月 16 日,微软对外宣布:奥巴马就职典礼委员会(PIC)决定采用微软“银光”技术播放奥
巴马就职典礼的现场视频实况,播放站点是:www.pic2009.org(总统就职官方网站)。届时,全球
公众将通过网络观看奥巴马就职实况。
二、奥巴马是“开源总统”吗?
近日,在国际开源界有一个“热门话题”传播得沸沸扬扬,事情好像是真的一样。元月 21 日,
《BBC 新闻》技术记者 Maggie Shiels 发表一篇短文“Calls for open source goverment”(“
需要一个开源政府”)是这个“话题”的直接起因。事情是怎样的呢?
去年 11 月,Obama 在总统竞选时说过:“我们现在要看到的是,在美国和全球范围内,对“开源模
式”((“Open source model”)理解已经成熟。《纽约日报》Errol Louis 急忙抓住这一点,给
Obama 起了个名字“our first open source President”。不过,很明显的是,这个“开源模式
”中的“开源”两字还不是“开源软件”里面的那个“开源”的含义。可是,今年 1 月 21 日,《BBC 新
闻》说的事情可就不同了。
开
oss.linuxpk.com 2009 年第 2 期 36
源
开源社区
统)安全性,使用高品质软件和降低成本,获得(系统的)高可靠性,而这一切优点均来自于开源软件
”不管怎么说,这一事实是非常重要的。这意味着什么呢?
英特尔中国开源技术中心系列专访之三
——Solaris Team
陈杰
提到英特尔,一直以来,人们的惯性思维都是一家硬件公司,他们关注的是生成芯片、销售芯片,
而软件来自于不同领域,这和英特尔是毫不相干的事情。事实上,在软件领域,尤其是开源软件领域,
英特尔做出了很多的贡献,很明显的一组数据就是在英特尔中国,专门从事开源软件研发的就有 150 个
工程师左右,这些工程师做的每一件事情都与开源软件有关,并且都回馈与开源社区。《开源》杂志将
做一系列采访,一一介绍来自英特尔开源技术中心的不同团队,介绍他们所涉及的开源项目及从事的工
作。
《开源》:首先介绍一下你们团队的历史,目前负责哪些方面的研究?
开
oss.linuxpk.com 2009 年第 2 期 37
源
开源社区
Solaris x86 的系统进行了全面深入的优化。主要合作内容包括 Solaris 内核的最关键部分,例如内
核的中断系统、电源能耗管理调度、内存管理、输入输出、错误处理。合作同时包括桌面系统的驱动程
序(Intel 显卡、无线显卡)以及 Intel 自主创新的软件应用等。
《开源》:请简单介绍一下项目的具体情况任何,以及目前的进展情况。
LIBC 库性能优化
Solaris 核心 (中断,内存管理,输入输出等)
Sun 的编译器优化
Sun 的 JAVA 优化
电源能耗管理调度
《开源》:从团队成立以内,取得了哪些突破性的成果,并简单介绍一下项目的远景规划。
开
oss.linuxpk.com 2009 年第 2 期 38
源
开源社区
统,同时享有 Intel 服务器平台高性能和可靠性。
开
oss.linuxpk.com 2009 年第 2 期 39
源
开源社区
评论:gOS3 到 CloudOS——英雄的堕落
sglab
开
oss.linuxpk.com 2009 年第 2 期 40
源
开源社区
之前的 Linux 发行版在用户友好性上做得很差,直接导致 Linux 无法向普通 Windows 用户普及。
这一状况直到 Ubuntu 的出现而大为改观。而 gOS 在这一条路上走得更远,也更加彻底。虽然有些“老
学究”一直叫嚣着“Linux 就是给程序员用的,让那些菜鸟们继续在盗版 windows 中醉生梦死吧”,不
过 gOS 采用与 windows 类似的操作界面仍然得到了业界大部分的支持。内部集成的 Firefox 浏览器、
Google 网络工具会让你有一种“宾至如归”的感觉。现在有多少人在用 Firefox 上网,用 Gmail 发邮
件?在 Windows 下你还得先打开万恶的 IE(要是不小心被植入插件、木马的话更惨),但是在 gOS 中
你只需要点击一下桌面下方的图标。这种将 web 应用直接带到桌面上的理念更加符合现代人“时时处处
皆网络”的生活习惯。
希望 gOS 走好,愿网景的悲剧不再发生,英雄不会堕落。
开
oss.linuxpk.com 2009 年第 2 期 41
源
知识学堂
开
oss.linuxpk.com 源 2009 年第 2 期 42
知识学堂
Client 端程序叫做 mosaic,也就是是 Netscape 浏览器的前身,之后演变为 Mozilla 浏览器。而
Server 端软件就是最早的 Web Server,也就是现在 Apache HTTP Server 的前身。这个 NCSA
HTTP Server 端完整地实现了 HTTP 协议,实验获得了成功。依利诺斯大学出于学术目的,开发工作没
有继续下去,研究小组也解散了。但是,这里我们应该惊叹开放源代码的伟大:一个大学在实验室中设
计的两套软件因为公开了源代码,在十多年后的今天,都成为了世界上占据软件市场半壁江山的王者。
二、催生 Apache
在 Internet 上为数众多的程序员给 NCSA 服务器打过补丁之后,NCSA Http Server 的源代码变
得难以阅读。同时,由于没有一个统一的规划和安排,出现了越来越多的重复劳动,随之而来的则是越
多的补丁带来越多的 Bug。显然,NCSA Http Server 需要重新整理,并需要有一个组织来维护。
开
oss.linuxpk.com 源 2009 年第 2 期 43
知识学堂
1999 年 7 月,Brian Behlendorf 和 O'Reilly & Associates 共同创立了 CollabNet 公司,
成为 Apache 软件的董事长,并扶植 Apache 逐渐走上商业路线。由于 Apache HTTP Server 具有坚
如磐石般的稳定性、丰富的功能和灵活的可扩展性,得到了极大的成功。时至今日,全球有超过 61%的
网站使用的是 Apache HTTP Server。
三、Brian Behlendorf 其人
开
oss.linuxpk.com 源 2009 年第 2 期 44
知识学堂
Sources: Voices from the Open Source Revolution》(《来自开放源代码革命的声音》)
的书撰文。
四、开放源代码理念
Brian 曾数次来到中国,并多次接受专访。他一再强调, Apache 的成功应该归功于开放源代码,
这是“自由软件的荣誉”。Apache 证明了 Internet 不可能被任何商业巨人,包括微软彻底占领。因
为 WWW 协议还没有被某一公司‘占有’,Web 将为那些任何公司提供活动的场所。“尽管自由软件运动
目前还不能在桌面软件领域对微软构成威胁,但 Internet 将是自由软件者的杀手锏。因为每一个 Web
主页都是对分散和透明的开放标准的支持和对微软一统天下的回击。”
对于国内的开源社区而言,Apache 基金组织的发展模式是可供参考的,但是开源社区建设需要方方
面面的支持,其中很大一部分来自开源厂商的支持。如果厂商能够依靠开源很好地盈利,对于社区的投
资也自然不成问题,这显然是一个双向循环。
开
oss.linuxpk.com 源 2009 年第 2 期 45
知识学堂
一、Brian Behlendorf 其人
Brian 毕业于加州大学伯克莱分校计算机专业。大学时代的 Brian 就是一个不断思考和不断尝试的
“激进分子”,这为他日后成为开源软件——Apache 的领袖人物奠定了基础。1994 年底,Brian 告别
了仅就读三年的大学,转而去寻找自己的理想。起初,Brian 的工作是建立并维护 Wired 杂志的在线网
站。在这一时期,很多 Web 网站都运行在 NCSA HTTP Server 上,Wired 杂志的也是
开
oss.linuxpk.com 源 2009 年第 2 期 46
知识学堂
Apache 基金会成立。
二、梦想依然延续
经过多年的开源工作,Brian 对开源产品的发展和成功有着自己深刻的理解。Brian 认为,开放的
标准对于推进开源有着决定性的作用,比如 HTTP,正是有了这样一个开放的协议标准,才能够使得大学、
研究机构和企业的众多开发人员具有了一个共同努力和创新的平台基础,建立起一个开放并且迅速发展
的互联网。同时,开源产品的成功和开源的可视性过程是分不开的,在开源产品开发的过程中,技术交
流、找出正确的方法和找到缺陷、故障的交流过程,以及用户、开发者和专家之间的交流,都应该是开
放的,这种过程的可视性至关重要。在交流和可视性都能充分实现的同时,开源项目也要注重领导力的
建设,很多人对于产品的发展都有不同的思考和方向,社区的领导力建设就是要保证社区尽可能朝正确
的方向发展而不是各自分头前进。
这些对开源的认识不可能是一开始就能具备的,如果选择了错误的方向,可能就不会有今天 Apache
和那些成功的开源产品。现在回想起来,Brian 仍然觉得自己非常幸运。追忆 10 余年前的 1995 年,他
们当时的团队只有 8 个人在做网络应用软件的开发。幸运的是,这个开发在实现自身价值的同时也帮助
其他人解决了一些问题。这是不是就是 Apache 的发展之初的一个机遇?Brian 这样说:“我记得起步
之初,我们的想法就是如何能够重新去创造开源的标准和软件,去建立一个和以往不同的、新的开源社
区,同时能够增强自身的效率,以及能带来更大的价值,让开源软件自身能够不断提升自己的价值。在
建设开源社区的同时,我们也帮助更多的人解决了问题。“ Brian 回忆,这也成为 Apache 这么长时间
以来的一种发展理念。
开
oss.linuxpk.com 源 2009 年第 2 期 47
知识学堂
本刊主编陈杰与 Brian 合影
开
oss.linuxpk.com 源 2009 年第 2 期 48
知识学堂
Subversion,Brian 同时希望 Subversion 在中国能得到更多更广泛的应用。
谈到对中国开源的建议,Brian 认为,可以选用一种普遍和可行的模式逐步开展起来。开源的社区
和团队建设是一个循序渐进的过程,一些人可能首先是以个人身份在不同公司相同的领域工作,但是对
社区的工作却有着同样的热情。在社区中,他们更有机会实现自己的想法。还有一些专业人员,他们可
以被邀请来参与社区和进行一些合作,在社区中通过交流和尝试,凭借人们的智慧的集中和努力找到一
些开发的原则和方向,推动开源软件的发展。
三、采访手记:
采访快结束的时候,Brian 一边摆弄自己的本本上的 FreeBSD,一边提及自己现在每天编程的时间大概也就是
1/10 左右,遗憾的神情溢于言表。我想,开源世界中不可缺少的也正是像 Brian 这样的人吧,他们目标坚定、
勇于尝试和创新,同时又在脚踏实地地实践自己的梦想,在他们的追求梦想的过程中,也同时为我们创造了那个
多姿多彩的数字世界。
走进 Linux 世界:文件管理
孟庆昌
众所周知,我们上机时是通过用户界面与计算机打交道。用户界面定义了用户与计算机交流的不同
方式,常见的有图形界面、命令界面及程序界面。每个人喜欢什么样的用户界面取决于教育背景及经验
Linux 提供了几种不同的用户界面,其中,命令界面是 Linux 系统下最简单、但也是功能最强的用户界
面。
我们经常要利用文件来存放信息和数据、创建/删除文件、打开/关闭文件、读/写文件等,用户最常
用的操作几乎都与文件相关。
一、常用命令格式
Linux 提供了几百条命令,虽然这些命令的功能不同,但它们的使用方式和规则都是统一的。
Linux 命令的一般格式是:
开
oss.linuxpk.com 源 2009 年第 2 期 49
知识学堂
命令名 [选项] [参数 1] [参数 2]……
◆命令名由小写的英文字母构成,往往是表示相应功能的英文单词或单词的缩写。例如, date
表示日期;who 表示谁在系统中;cp 是 copy 的缩写,表示拷贝文件等。
◆方括号中的部分表明对命令行来讲不是必须的,即可有可无。例如,可以直接在提示符后面输
入命令 date,显示当前的日期和时间;也可以在 date 命令名后面带有选项和参数,如“date -s
15:30:00”,设置系统时间为下午 3 点 30 分。
◆选项是对命令的特别定义,以“-”开始,多个选项可用一个“-”连起来,如“ls -l -a”
与“ls -la”相同。
◆命令行的参数提供命令运行的信息,或者是命令执行过程中所使用的文件名。通常参数是一些
文件名,告诉命令从哪里可以得到输入,以及把输出送到什么地方。
◆如果命令行中没有提供参数,命令将从标准输入文件(即键盘)接受数据,输出结果显示在标
准输出文件(即显示器)上,而错误信息则显示在标准错误输出文件(即显示器)上。可使用重定
向功能对这些文件进行重定向。
◆命令在正常执行后返回一个 0 值,表示执行成功;如果命令执行过程中出错,没有完成全部工
作,则返回一个非零值(在 Shell 中可用变量$?查看)。在 Shell 脚本中,可用命令返回值作为控
制逻辑的一部分。
二、文件系统概念
磁盘上的文件系统是层次结构的,由若干目录和其子目录组成,最上层的目录称作根(root)目录,
用“/”表示。
1.文件与目录的定义
◆文件系统 是磁盘上有特定格式的一片区域,操作系统通过文件系统可以方便地查寻和访问其
中所包含的磁盘块。
◆文件 文件系统中存储数据的一个命名的对象。一个文件可以是空文件(即没有包含用户数
据),但是它仍然为操作系统提供了其它信息。
开
oss.linuxpk.com 源 2009 年第 2 期 50
知识学堂
◆子目录 被包含在另一个目录中的目录。包含子目录的目录称作父目录。除了 root 目录以外,
所有的目录都是子目录,并且有它们的父目录。root 目录就作为自己的父目录。
◆文件名 用来标识文件的字符串,它保存在一个文件目录项中。
◆路径名 通过斜线字符(/)结合在一起的一个或多个文件名的集合。路径名指定一个文件在分
层树型结构(即文件系统)中的位置。
◆当前工作目录 查看文件系统要使用一个参考点目录,它就称作当前工作目录。
用 ls 命令可以列出当前工作目录中所包含的文件和子目录的名字,这是默认方式。
2.文件结构
(1)文件的成分
无论文件是一个程序、一个文档、一个数据库,或者是一个目录,操作系统都会赋予它如下所
示的同样的结构:
◆索引节点 又称 I 节点,在文件系统结构中,包含有关相应文件的信息的一个记录,这些信息
包括文件权限、文件主、文件大小、存放位置、建立日期等。
◆数据 文件的实际内容,它可以是空的,也可以非常大,并且有自己的结构。
(2)命名文件
◆文件名应尽量简单,并且应反映出文件的内容。文件名几乎没有必要超过 14 个字符。
◆习惯上允许使用下线符“_”和句点“.”来区别文件的类型,使文件名更易读。但是应避免使
用以下字符,因为对系统的 Shell 来说,它们有特殊的含义。这些字符是:“;”、“|”、“<”、
“>”、“`”、“″”、“′”、“$”、“!”、“%”、“&”、“*”、“?”、“\”、“(”、“)”、“
[”、“]”。文件名应避免使用空格、制表符或其它控制字符。
◆同类文件应使用同样的后缀或扩展名。
开
oss.linuxpk.com 源 2009 年第 2 期 51
知识学堂
◆Linux 系统区分文件名的大小写,例如,名为 letter 的文件与名为 Letter 的文件不是同一
个文件。
◆以圆点“.”开头的文件名是隐含文件,默认方式下使用 ls 命令并不能把它们在屏幕上显示出
来。同样,在默认情况下,Shell 通配符并不匹配这类文件名。
(3)文件名通配符
为了能一次处理多个文件,Shell 提供了几个特别字符,称为文件名通配符(也称作扩展字符)。
通过使用通配符可以让 Shell 查询与特别格式相符的文件名;用作命令参数的文件或目录的缩写;以简
短的标记访问长文件名;可以用于任意的命令行。
主要的文件名通配符有:
◆方括号([ ]) 与问号相似,只与一个字符匹配。它们的区别在于,问号与任意一个字符匹配,
而方括号只与括号中列出的字符之一匹配。例如 letter[123]只与文件 letter1、letter2 或
letter3 匹配,但不与文件 letter12 匹配。可以用短横线代表一个范围内的字符,而不用将它们
一一列出。例如,letter[1-3]是 letter[123]的简写形式。但是,要注意范围内的字符都按升
序排列,即[A-Z]是有效的,而[Z-A]是无效的。方括号中可以列出多个范围,如[A-Za-z]可以和
任意大写或小写的字符相匹配。方括号中如果以惊叹号“!”开始,表示不与惊叹号后的字符匹配。
上面介绍的所有符号都可以混和使用,例如,[!A-Z]*.?代表所有不以大写字母开头,但倒数
第二个位置是.的文件名。
文件类型
Linux 操作系统支持普通文件、目录文件、特别文件及符号链接文件等文件类型。
1.普通文件
普通文件也称作常规文件,包含各种长度的字节串。核心对这些数据没有进行结构化,只是作为有
序的字节序列把它提交给应用程序。应用程序自己组织和解释这些数据,通常把它们归并为下述类型之
一:
开
oss.linuxpk.com 源 2009 年第 2 期 52
知识学堂
◆数据文件,由来自应用程序的数字型和文本型数据构成。例如,电子表格、数据库,以及字处理文
档。
◆可执行的二进制程序,由机器指令和数据构成。例如,上面所说的系统提供的命令。
使用 file 命令可以确定指定文件的类型。该命令可以将任意多个文件名当做参数,其一般使用格式
是:
2.目录
目录是一类特殊的文件,利用它可以构成文件系统的分层树型结构。如同普通文件那样,目录文件
也包含数据;但目录文件与普通文件的差别是,核心对这些数据加以结构化,它是由成对的“I 节点号/
文件名”构成的列表。
◆文件名是给一个文件分配的文本形式的字符串,用来标识该文件。在一个指定的目录中,任何两项
都不能有同样的名字。
每个目录的第一项都表示目录本身,并以“.”作为它的文件名。每个目录的第二项的名字是“..”,
表示该目录的父目录。
当把文件添加到一个目录中的时候,该目录的大小会增长,以便容纳新文件名。当删除文件时,目
录的尺寸并不减少,而是核心对该目录项做上特殊标记,以便下次添加一个文件时重新使用它。ls 命令
不会列出这些未被使用的项。
3.设备文件
在 Linux 系统中,所有设备都作为一类特别文件对待,用户像使用普通文件那样对设备进行操作,
从而实现设备无关性。但是,设备文件除了存放在文件 I 节点中的信息外,它们不包含任何数据。系统
利用它们来标识各个设备驱动器,核心使用它们与硬件设备通信。
有两类特别设备文件,它们对应不同类型的设备驱动器:
设备文件的一个示例是当前正在使用的终端,tty 命令可以显示出这个文件名。例如:
开
oss.linuxpk.com 源 2009 年第 2 期 53
知识学堂
$ tty
/dev/tty01
通常,设备文件在/dev 目录之下。
目录及其操作命令
在 Linux 系统中,除根目录(root)以外,所有文件和目录都包含在相应的目录文件中。下面介绍
Linux 系统的目录结构及主要的操作命令。
1.目录结构
Linux 文件系统采用带链接的树形目录结构,即只有一个根目录(通常用“/”表示),其中含有下
级子目录或文件的信息;子目录中又可含有更下级的子目录或者文件的信息。这样一层一层地延伸下去
构成一棵倒置的树,如图 1 所示。
在目录树中,根节点和中间节点(用圆圈表示)都必须是目录,而普通文件和特别文件只能作为“
叶子”出现。当然,目录也可以作为叶子。
(1)用户主目录
当注册进入系统时,主目录就是当前工作目录。主目录往往位于/home 目录之下,并且与注册名相
同,例如,/home/mengqc。通常主目录包含子目录、数据文件,以及用于注册环境的配置文件。
(2)路径名
迄今为止,所看到的文件仅是主目录下的文件。其实,还可以利用路径名访问在层次结构文件系统
中任何地方的文件和目录。
开
oss.linuxpk.com 源 2009 年第 2 期 54
知识学堂
为了访问文件,必须告诉系统文件在什么地方,即保存在哪个目录下。路径名描述了文件系统中通
向任意文件的路径。有绝对路径和相对路径两种路径名。当为命令指定文件路径名时,需要指定两种路
径形式的一种,不管它有多长或有多复杂。
◆绝对路径名
在 Linux 操作系统中,每一个文件有惟一的绝对路径名,它是沿着层次树、从根目录开始、到达相
应 文 件 的 所 有目录 名连接 而成,各 目录名之间以 斜线字符 ( /)隔开。 例如 ,
/home/mengqc/lib/func/file1。
绝对路径名总是以斜线字符(/)开头,它表示根目录。如果要访问的文件在当前工作目录之上,那
么,使用绝对路径名往往是最简便的方法。
$ pwd
/home/mengqc
图 2 示出路径名的类型。绝对路径名为/home/mengqc/lib/func/file1;相对路径名(当前目
录是 /home/mengqc/lib)为 func/file1。
◆相对路径名
相对路径名利用相对当前工作目录的路径指定一个文件。
开
oss.linuxpk.com 源 2009 年第 2 期 55
知识学堂
为了访问当前工作目录或其任意子目录中的文件,可以使用相对路径名。例如,如果工作目录
是/home/mengqc/lib,为了列出目录/home/mengqc/lib/func 中的文件 file1,可以使用下述命
令:
ls -l func/file1
注意,相对路径名不能以斜线字符(/)开头。
为了访问在当前工作目录中和当前工作目录之上的文件,可以在相对路径名中使用特殊目录名“.”
和 “ ..” 。 “ .” 目 录 表 示 本 目 录 自 身 , 而 “ ..” 目 录 代 表 该 目 录 的 父 目 录 。 例 如 , 当 前 工 作 目 录
是/home/mengqc/lib,想列出/home/liu 目录的内容,可使用命令:
ls ../../liu
提醒注意,在每个目录中都有“..”目录文件。在上面示例中,/home/mengqc/lib 的父目录
是/home/mengqc,后者的父目录是/home。也可以连续使用“../” 形式表示父目录,直至根目录。
所以,系统中的每个文件都可以利用相对路径名来命名。
(3) 正确使用路径名
什么情况下使用绝对路径名,什么情况下使用相对路径名,取决于哪种方式涉及到的目录更少。路
径短,不仅键盘输入少,而且节省系统搜索路径的时间,提高执行效率。例如,当前的工作目录
是 /etc/conf/cf.d , 如 果 需 要 访 问 系 统 口 令 文 件 /etc/passwd , 那 么 使 用 绝 对 路 径 名
是/etc/passwd,使用相对路径名是../../passwd。绝对路径名/etc/passwd 涉及的目录有 2 个,
而相对路径名../../passwd 涉及的目录却是 3 个。此时,使用绝对路径名更有效。
如果不清楚当前工作目录与其它目录之间的关系,那么最好使用绝对路径名。
2.链接文件
Linux 具有为一个文件起多个名字的功能,称为链接。被链接的文件可以存放在相同的或不同的目
录下。如果在同一目录下,二者必须有不同的文件名,而不用在硬盘上为同样的数据重复备份;如果在
不同的目录下,那么被链接的文件可以与原文件同名,只要对一个目录下的该文件进行修改,就可以完
成对所有目录下同名链接文件的修改。对于某文件的各个链接文件,我们可以给它们指定不同的存取权限,
以控制对信息的共享和增强安全性。
文件链接分为硬链接和符号链接两种形式。
(1) 硬链接
开
oss.linuxpk.com 源 2009 年第 2 期 56
知识学堂
建立硬链接时,是在另外的目录或本目录中增加目标文件的一个目录项,这样,一个文件就登记在
多个目录中。图 3 中所示的 m2.c 文件就在目录 mub1 和 liu 中都建立了目录项。
创建硬链接后,已经存在的文件的 I 节点号(inode)会被多个目录文件项使用。一个文件的硬链
接数可以在目录的长列表格式的第二列中看到,无额外链接的文件的链接数为 1。
对硬链接有如下限制:
◆不能对目录文件做硬链接。
◆不能在不同的文件系统之间做硬链接。也就是说,链接文件和被链接文件必须位于同一个文件系统
中。
(2)符号链接
符号链接也称软链接,是将一个路径名链接到一个文件。这些文件是一种特别类型的文件。事实上,
它只是一个小文本文件(如图 3 中的 abc 文件),其中包含它所链接的目标文件的绝对路径名,如图 3 中
虚线箭头所示。被链接文件是实际上包含所有数据的文件。所有读写文件的命令,当它们涉及符号链接
文件时,将沿着链接方向前进,找到实际的文件。
和硬链接不同的是,符号链接确实是一个新文件,它具有与目标文件不同的 I 节点号;而硬链接并没
有建立新文件。
符号链接没有硬链接的限制,可以对目录文件做符号链接,也可以在不同文件系统之间做符号链接。
用“ln -s”命令建立符号链接时,最好源文件用绝对路径名,这样可以在任何工作目录下进行符
号链接。当源文件用相对路径时,如果当前的工作路径和你要创建的符号链接文件所在路径不同时,就
不能进行链接。
请注意,符号链接与源文件或目录之间的区别:
◆删除源文件或目录时,只删除了数据,不会删除链接。一旦以同样文件名创建了源文件,链接将继
开
oss.linuxpk.com 源 2009 年第 2 期 57
知识学堂
续指向该文件的新数据。
◆在目录长列表中,符号链接作为一种特殊的文件类型显示出来,其第一个字母是 l。
◆符号链接的大小是其链接文件的路径名中的字节数。
◆当用“ls -l”命令列出文件时,可以看到符号链接名后有一个箭头指向源文件或目录,例如:
lrwxrwxrwx ... 14 Jun 20 10:20 /etc/motd->/original_file
上面代码中,表示“文件大小”的数字“14”恰好表示源文件名“/original_file”由 14 个字符
构成。
ln 命令的一般格式:
链接的对象可以是文件,也可以是目录。如果链接指向目录,用户就可以利用该链接直接进入被链
接的目录,而不用给出到达该目录的一长串路径。这样,即使删除这个链接,也不会破坏原来的目录。
选项-s 表示建立符号链接,而不是硬链接。
注意,符号链接文件不是一个独立的文件,它的许多属性依赖于原文件,所以给一个符号链接文件设
置存取权限是没有意义的。
(3)示例
$ cd /home/mengqc
$ ln mub1/m2.c /home/liu/a2.c
$ ln -s /home/mengqc/mub1 /home/liu/abc
3.文件或目录的存取权限
使用文件命令对文件进行操作的前提是拥有相应的权限。下面我们介绍如何控制这些权限。
(1)用户和权限
Linux 为每个文件都分配了一个文件所有者,称为文件主,并赋予文件主惟一的注册名。对文件的
开
oss.linuxpk.com 源 2009 年第 2 期 58
知识学堂
控制取决于文件主或超级用户(root)。文件或目录的创建者对创建的文件或目录拥有特别使用权。
文件的所有关系是可以改变的,可以将文件或目录的所有权转让给其它用户,但只有文件主或 root
用户才有权改变文件的所有关系。文件的所有权的标志是用户 ID(UID)。
chown xu myfile
如果改变了文件或目录的所有权,原文件主将不再拥有该文件或目录的权限。
(2)用户组
在 Linux 下,每个文件又同时属于一个用户组。当创建一个文件或目录时,系统会赋予它一个用户
组关系,用户组的所有成员都可以使用此文件或目录。
(3)用户和权限
Linux 系统中的每个文件和目录都有存取许可权限,用它来确定谁可以通过何种方式对文件和目录
进行访问和操作。
Linux 系统中规定了四种不同类型的用户,即文件主(owner)、同组用户(group)、可以访问系统
的其它用户(others)、超级用户(root),具有管理系统的特权。
存取权限规定三种访问文件或目录的方式:读(r)、写(w)、可执行或查找(x)。
当用“ls -l”命令显示文件或目录的详细信息时,最左边的一列为文件的存取权限,其中各位的含
义如图 4 所示。
◆文件的存取权限
读权限(r)表示只允许指定用户读取相应文件的内容,而禁止对它做任何的更改操作。将所访问的
文件的内容作为输入的命令都需要有读的权限。例如 cat、more 等。
写权限(w)表示允许指定用户打开并修改文件。例如命令 vi、cp 等。
执行权限(x)表示允许指定用户将该文件作为一个程序执行。
开
oss.linuxpk.com 源 2009 年第 2 期 59
知识学堂
◆目录的存取权限
在 ls 命令后加上-d 选项,可以了解目录文件的使用权限。
读权限(r)表示可以列出存储在该目录下的文件,即读目录内容列表。这一权限允许 Shell 使用
文件扩展名列出相匹配的文件名。
写权限(w)表示允许用户从目录中删除或添加新的文件,通常只有文件主才有写权限。
执行权限(x)表示允许用户在目录中查找,并能用 cd 命令将工作目录改到该目录。
(4)chmod 命令
根据表示权限的方式不同,该命令有以符号模式改变权限和以绝对方式改变权限两种用法。
◆以符号模式改变权限
chmod 命令的一般格式是:
其中,key 由以下各项组成:
u 表 示用户(user),即文件或目录的所有者。
g 表示同组(group)用户,即与文件属主有相同组 ID 的所有用户。
o 表示其它(others)用户。
a 表示所有(all)用户,它是系统默认值。
操作符号可以是下述符号:
+ 添加某个权限。
- 取消某个权限。
= 赋予给定权限并取消其他所有权限(如果有的话)。
mode 所表示的权限可用下述字母的任意组合:
r 表示可读。
开
oss.linuxpk.com 源 2009 年第 2 期 60
知识学堂
w 表示可写。
x 表示可执行。
X 表示只有目标文件对某些用户是可执行的,或者该目标文件是目录时才追加 x (可执行)属性。
s 在文件执行时把进程的属主或组 ID 置为该文件的文件属主。方式“u+s”设置文件的用户 ID 位,
“g+s”设置组 ID 位。
t 保存程序的文本到交换设备上。
u 与文件属主拥有一样的权限。
g 拥有与文件属主同组用户一样的权限。
o 与其它用户拥有一样的权限。
上面这三部分必须按顺序输入,可以用多个 key,但必须以逗号隔开。例如:
◆以绝对方式改变权限
以绝对方式改变权限一般格式是:
为了方便记忆和表示,通常将这 9 位二进制数用等价
的 3 个从 0 到 7 的八进制数表示,即从右到左 3 个二进制
数换成一个八进制数。这样,上述二进制数就等价于八进
制数“754”。
也就是说,mode 是以 3 位八进制数字出现的,最左
位表示文件主权限,中间位表示组用户权限,最右位表示
其它用户权限。
开
oss.linuxpk.com 源 2009 年第 2 期 61
知识学堂
例如,chmod 664 ex1 使文件 ex1 的文件主和同组用户具有读写权限,但其它用户只可读。
◆umask 命令
umask 命令用来设置限制新建文件权限的掩码。其一般格式是:
umask mode
利用 umask 命令可以指定哪些权限将在新文件的默认权限中被删除。例如,可以使用下面的命令创
建掩码,取消组用户的写权限以及其他用户的读、写和执行权限:
umask u=,g=w,o=rwx
执行该命令以后,下面所建新文件的文件主权限未作任何改变,而组用户没有写权限,其它用户的所
有权限都被取消。
使用下面的命令可以检查新创建文件的默认权限:
umask -s
上面命令中,选项-s 表示以字符形式显示当前的掩码。
文件系统及其安装
开
oss.linuxpk.com 源 2009 年第 2 期 62
知识学堂
一个硬盘上可以同时存在多个文件系统,每个文件系统占据硬盘的一个独立分区。 Linux 文件系统
可以根据需要随时装卸,从而实现文件存储空间的动态扩充和信息安全。在系统初启时,往往只有一个
文件系统被安装上,即根文件系统,其上的文件主要是保证系统正常运行的操作系统的代码文件,以及
若干语言编译程序、命令解释程序和相应的命令处理程序等构成的文件,此外,还有大量的用户文件空
间。根文件系统一旦安装上,则在整个系统运行过程中是不能卸下的,它是系统的基本部分。
其它的文件系统(例如,由软盘构成的
文件系统)可以根据需要(如从硬盘向软盘
复制文件),作为子系统动态地安装到主系
统中,如图 5 所示。其中,mnt 是为安装子
文件系统而特设的安装节点。
经过安装之后,主文件系统与子文件系
统就构成一个有完整目录层次结构的、容量
更大的文件系统。这种安装可以高达几级。
就是说,若干子文件系统可以并列安装到主
文件系统上,也可以一个接一个地串连安装
到主文件系统上。
已安装的子文件系统也可从整个文件系
统上卸下来,恢复安装前的独立状态。
1.建立文件系统
# mkfs -c /dev/hda1
2.安装文件系统
◆所需访问的文件系统所在分区名,通常是位于目录/dev 中的特别设备文件;如果需要安装网络文
件系统时,就使用该服务器上输出的目录名。
开
oss.linuxpk.com 源 2009 年第 2 期 63
知识学堂
目录,缺省情况下,CDROM 和软盘驱动器都分别安装在其子目录下。当然,文件系统也可以被安装到其
它空目录中。例如,需要将 MSDOS 文件系统分区/dev/hda1 安装到系统的空目录/dos 中,应该使用以
下命令:
3.卸载文件系统
在关闭系统之前,为了保证文件系统的完整性,所有安装的文件系统都必须被卸载。通常
在/etc/fstab 文件中定义的文件系统都能够自动卸载。但是,对于手工 mount 的文件系统,在关闭系
统之前必须手工卸载。有时候也需要在系统工作过程中手工卸载某个文件系统。手工卸载文件系统必须
使用 umount 命令,umount 命令将分区名或分区的安装点作为参数,格式如下:
umount <分区名或分区的安装点>
例如,需要将已经安装到/mnt/floppy 目录下的软盘卸载,可以使用以下命令:
# umount /mnt/floppy
开
oss.linuxpk.com 源 2009 年第 2 期 64
经验技巧
Linux 一句话精彩问答
——网络相关篇(四)
陈绪
《Linux 一句话精彩问答》是 Linux 初学者很好的入门文档,想必很多朋友当时都是边看该文档,边敲打
键盘,玩着 Linux 过来的。
该文档由本刊顾问陈绪主编,迄今已经收录近千个精彩问答。从本期开始将在经验技巧栏目进行连载,
希望能帮助到更多刚接触到 Linux 的朋友们。
-o 表示不初始化
-c on 表示 color on
关闭混杂模式:
开
oss.linuxpk.com 2009 年第 2 期 65
源
经验技巧
2065 字符界面下的 ftp 中,下载整个文件夹
1. lftp IP
2. > user username
password
3. > mirror -c --parallel=number remotedir localdir
3a. > help mirror
AllowUsers a b c
192.168.0.1 00:0D:61:27:58:93
192.168.0.2 00:40:F4:2A:2E:5C
192.168.0.3 00:0A:EB:5E:BA:8E
2068 已知网络中一个机器的硬件地址,如何知道它所对应的 IP 地址
在 Linux 下,假定要查“00:0A:EB:27:17:B9”这样一个硬件地址所对应的 IP 地址,可以使用以
下命令:
开
oss.linuxpk.com 2009 年第 2 期 66
源
经验技巧
# cat /proc/net/arp |grep 00:0A:EB:27:17:B9
192.168.2.54 0x1 0x6 00:0A:EB:27:17:B9 *eth2
另外,还可以用“arp -a”命令查询:
127.0.0.1 是网络的回路地址
若想恢复,可用如下命令:
2071 压缩传输文件或目录
传输到远程:tar czf - www | ssh server "tar zxf -"
目录最后的/不能少
开
oss.linuxpk.com 2009 年第 2 期 67
源
经验技巧
这样就不在提示密码,直接可以登录 server 了
对文件复制、同步等操作都比较方便
在 ssh_config 里加入这两句就更方便了
ForwardAgent yes
StrictHostKeyChecking no
2075 命令行下发送带附件的邮件
方法 1. uuencode <in_file> <remote_file> | mail -s "title" mail@address
<in_file> 本地需要作为附件的文件名。
<remote_file> 邮件中的附件文件名,可以和<in_file>不同,其实内容一样。
<mailcontent.txt>邮件正文内容。
<attachfile>本地需要作为附件的文件名。
开
oss.linuxpk.com 2009 年第 2 期 68
源
经验技巧
到主机时需要使用的端口。使用以下代码可以指定 sshd 监听的接口地址:
ListenAddress 192.168.0.254
这样,就可以避免向未知的用户提供登录服务
3 重新启动 httpd
cd /usr/local/src/php-5.2.4/ext/mbstring/
/usr/local/php/bin/phpize
3 进入 php 源代码目录
cd /usr/local/src/php-5.2.4/
4 执行上述目录中的 configure 文件
将 mbstring.so 安 装 到 /usr/local/php/lib/php/extensions/no-debug-non-zts-
20060613/中
6 编辑 php.ini,加入一行
extension=mbstring.so
7 重新启动 httpd
开
oss.linuxpk.com 2009 年第 2 期 69
源
经验技巧
2080 让 apache 解析.perl 脚本
一个 perl 的文件,是 perl 写的模块,如果放在 web 上,人家要么直接下载或者用记事本直接打开。
为了保护代码不被 COPY,需要在 httpd.conf 中,加入 AddHandler cgi-script .perl 一行,然
后重启 apache
make 将整个软件项目的代码分开放在几个小的源文件里,在改动其中一个文件的时候,可以只对该
文件重新进行编译,然后重新连接所有的目标文件。对于那些由许多源文件组成的大型软件项目来说,
全部重新进行编译需要花费很长的时间,而采用这种项目管理方法则可以极大地提高工作效率,让原本
复杂繁琐的开发工作变简单。
Makefile 文件
◆ 依赖(dependency)通常是一个列表,指明编译目标时需要用到的其它文件;
◆ 命令(command)也是一个列表,指明从依赖文件创建出目标对象所需要执行的命令。
开
oss.linuxpk.com 2009 年第 2 期 70
源
经验技巧
all : program
program : control.o ui.o main.o
gcc -o program control.o ui.o main.o
control.o : control.c
gcc -Wall -c -o control.o control.c
ui.o : ui.c
gcc -Wall -c -o ui.o ui.c
main.o : main.c
gcc -Wall -c -o main.o main.c
clean :
rm -f program *.o
在 Makefile 文件的其余部分,为每一个中间生成的目标文件都专门定义了一条规则,用来指明创
建过程中它们与 C 源文件的依赖性。也就是说,如果一个特定的 C 源文件被更新了,那么与之对应的目
标文件也必须重新生成。下面是 make 在构建项目过程中的输出结果:
#make
gcc -Wall -c -o control.o control.c
gcc -Wall -c -o ui.o ui.c
gcc -Wall -c -o main.o main.c
gcc -o program control.o ui.o main.o
不难看出,首先是 C 源文件被编译成目标文件,然后才是目标文件被连接成最终的可执行文件。由
于相互间依赖关系的制约,这些步骤会被有条不紊地依次执行。最终可执行文件要求目标文件都被更新
过,而每个目标文件则要求 C 源文件被更新过。如果此时重新执行“make”命令,会出现下面的结果。
原因是程序已经被编译过了,并且没有做过任何改动,所以就没有再编译的必要了:
# make
make: Nothing to be done for 'all'.
#touch main.c
# make
gcc -Wall -c -o main.o main.c
开
oss.linuxpk.com 2009 年第 2 期 71
源
经验技巧
gcc -o program control.o ui.o main.o
变量
make 将其使用的变量细分为两类:递归展开变量和简单展开变量。递归展开变量在被引用时会逐层
展开,即如果在展开式中包含了对其它变量的引用,则这些变量也会被展开,直到没有需要被展开的变
量为止。假设变量 TOPDIR 和 SUBDIR 的定义如下:
TOPDIR = /home/xiaowp
SUBDIR = $(TOPDIR)/project
开
oss.linuxpk.com 2009 年第 2 期 72
源
经验技巧
TOPDIR = /home/xiaowp
SUBDIR = $(TOPDIR)/project
SUBDIR = $(SUBDIR)/src
很清楚,希望得到的结果是/home/xiaowp/project/src,但实际并非如此。SUBDIR 在引用时
会被递归展开,从而陷入一个无限循环当中,make 能够检测到这个问题并报告如下错误:
为了避免这个问题,可以使用简单展开变量。与递归展开变量在引用时展开不同,简单展开变量是
在定义处展开的,并且只展开一次,从而消除了变量的嵌套引用。在定义时,其语法与递归展开变量有
细微的不同:
TOPDIR = /home/xiaowp
SUBDIR := $(TOPDIR)/project
SUBDIR += /src
SUBDIR 在第一次定义时使用“:=”将其值设置为“/home/xiaowp/project”,而在第二次定义
时 则 使 用 “ +=” 在 已 有 的 基 础 上 添 加 “ /src” , 这 样 就 使 得 SUBDIR 的 最 终 值 变 为
“/home/xiaowp/project/src”。许多程序员在 Makefile 中只使用简单展开变量,以避免可能出
现的错误。
此外,make 还提供了一些预定义变量和自动变量,但它们看起来都不如自定义变量那么直观。之所
以称为自动变量是因为 make 会自动用特定的、熟知的值来替换它们,表 1 给出了常用的部分自动变量。
开
oss.linuxpk.com 2009 年第 2 期 73
源
经验技巧
$(CC) $(CFLAGS) -c -o $@ $<
main.o : main.c
$(CC) $(CFLAGS) -c -o $@ $<
clean :
$(RM) program $(OBJS)
伪目标
在 Makefile 中,并不是所有的目标都对应于磁盘上的文件。有的目标存在只是为了形成一条规则 ,
从而完成特定的工作,并不生成新的目标文件,这样的目标称为伪目标。它并不是真正意义上的目标文
件,只是为了满足 Makefile 的语法规则而存在的。
作为惯例,clean 目标一般用于删除最终生成的可执行文件和在编译过程中产生的所有目标文件。
问题是,如果恰巧有一个名为 clean 的文件存在时该怎么办呢?此时因为在这个规则里没有任何依赖对
象,所以目标文件肯定是最新的,规则中的命令无论如何也不会被执行,即使用命令“ make clean”也
无济于事。解决这一问题的方法是标明该规则中的目标是伪目标,并不对应于任何文件。这可以通
过.PHONY 目标实现。它告诉 make 不检查规则的目标文件是否存在于磁盘上,也不查找任何隐含规则,
而直接假设指定的目标需要被更新就行了。在使用了.PHONY 之后,前面的给出的 Makefile 文件就将
变为如下的内容:
开
oss.linuxpk.com 2009 年第 2 期 74
源
经验技巧
$(RM) program $(OBJS)
其它规则
%.o : %.c
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
小结
在构建大型的软件项目时,make 是一个优秀的持续集成工具。它对于软件开发过程来讲非常重要。
本文介绍了基本的 make 命令,以及如何编写简单实用的 Makefile 文件,相信用户已经能够使用 make
来管理软件项目的创建和维护过程了。
Autotools 快速开发
宋国伟
程序开发需要注意的细节很多,不仅需要用户有良好的技术,而且还需要开发利器帮助用户化难为
开
oss.linuxpk.com 2009 年第 2 期 75
源
经验技巧
易。在此介绍 AutoTools 工具在程序开发中的几个应用,帮助用户了解它是如何在程序开发中发挥作用,
有什么便利之处。
源码路径
AC_INIT(src/hello.c)
AM_INIT_AUTOMAKE(hello, 0.1)
AC_PROG_CC
AC_OUTPUT(Makefile src/Makefile)
SUBDIRS = src
它用来指定用户的工程目录中都包含哪些子目录。目前用户只有一个源程序目录 src,在以后的工
程中用户可以加入文档目录 doc、测试目录 test 等。
bin_PROGRAMS = hello
hello_SOURCES = hello.c
多个输出结果
AC_INIT(src/hello.c)
开
oss.linuxpk.com 2009 年第 2 期 76
源
经验技巧
AM_INIT_AUTOMAKE(hello, 0.2)
AC_PROG_CC
AC_OUTPUT(Makefile src/Makefile)
bin_PROGRAMS = hello oh
hello_SOURCES = hello.c
oh_SOURCES = oh.c
编辑完相关配置文件后,就可以依次执行“aclocal”、“autoconf”和“automake”了。
打包方式
用户正常用的源程序代码打包后,文件名的后缀是.tar.gz。这是最常用的打包方式。但它的压缩
率并不是最高的。压缩率更好的压缩方式是采用 bz2 格式。前提是保证用户的系统安装有 bzip2 压缩工
具。
AUTOMAKE_OPTIONS = dist-bzip2
SUBDIRS = src
开
oss.linuxpk.com 2009 年第 2 期 77
源
经验技巧
刚开始使用 Linux 时你也许会感到不习惯,许多高手也都有这样的经历。毕竟,曾经他们也都是新
手。但是现在 Linux 团体已经在为新用户提供有关指南,手册和基本的技术文档来使他们尽快上手方面
做的相当出色。三年前我首次接触 Linux,很多人通过论坛,在线聊天和电子邮件等帮助我,这些“企
鹅”们真是相当热心。
一、不要以根用户登录
这是你首先应该注意和遵守的。以前我们可能已经习惯了 Windows,我们一直以为权限越高越好,
所以我们喜欢以管理员帐户登录。但是这也许是 Windows 经常被病毒骚扰和不安全的重要原因,现在太
多人都在用根用户登录。
权限越高责任越大,拥有管理员权限你需要谨慎对待你所做的任何事情,但是错误还是不可避免。
我记得我最先使用的是 Suse Linux,有很多事项需要管理但是没有图像用户界面我不知道如何做,于
是我天真的注销并登录到了根用户的图形界面。根用户图形界面的默认壁纸是一排排的高亮地雷。这些
符号在我脑海里盘旋,我很小心没有终于没有做错什么。
那么以根用户登录有那些危险呢?
1.你可以想象你在没有保护网的情况下打秋千,会不会感到害怕?这和你以根用户登录的道理是一
样的,你会不经意间毁掉你的系统。
2.你可能会不小心运行恶意软件。通常在根
用户模式下任何程序的启动都默认给予所有权限
的。
3.如果你的系统有安全漏洞没有修补,你就
可能被别人完全控制。
通常,我们不必登录根用户界面,下面是几
条技巧: 图1
*使用“sudo”或“su”命令,并在你完成管理时退出
开
oss.linuxpk.com 2009 年第 2 期 78
源
经验技巧
*如果你不知道如何使用命令行完成这些,你可以使用“gksu”或“kdesu”。比如,按 Alt+F2 并
打出“gksu nautilus”,并在你完成时马上结束程序
二、合理命名文件
Linux 环境下,你可以按照你的意愿命名文件,但是以下两点是不允许的: 1)“/”是根目录专用
的;2)不要使用无效字符。其它的在技术上都是可以的,但是为了避免以后的麻烦这里有几点经验你可
以遵守:
*经验上,只使用字母、数字、连接符(-)和下划线(_)
*避免使用空格,在终端上处理含有空格的文件是很愚蠢的。你可以用连接符或下划线来代替空格。
图2
四、合理的灾难管理
Linux 是比较强大和稳定的,但是任何系统都会崩溃。在你 CTRL-ALT-DEL,重启之前,你应该学
会如何处理你遇到的事故。你需要知道如何在不重启的情况下轻松恢复你的系统。我个人认为这种情况
分为几个不同的层次,如果前一步不奏效的话请转向下一步:
1.我将“强制关闭”程序放在我的任务栏上,如果哪个程序出现问题可以单击“强制关闭”图标并
结束该程序
2.如果上一步不奏效,调用终端,用“ps -A”,记下那个出问题程序的进程号,结束它
3.使用“killall”命令,比如“killall firefox-bin”
开
oss.linuxpk.com 2009 年第 2 期 79
源
经验技巧
4.如果整个图形界面都冻结,你已经不可能调用终端,按 CTRL-ALT-F1,这样可以转到另一个终
端,这样你就可以使用步骤 2 和 3 来结束出问题的程序
图3
五、主动尝试
你可能对朋友给你设置设计的当前版本和配置很满意,这适合你。这很好,但是可能会有比这更好
的。为什么不尝试下 Linux 和开源的灵活性和丰富性呢?不要害怕尝试不同的程序,图形管理和桌面。
实验直到你找到最适合你的。你可以这样想,你现在居住在世界上最好的地方,但是环球旅行也不会有
什么坏处的?或许说不定你还可以找到一个更好的居住地,就算不能,你旅行的时间也值得好好品味,
你对其它国家,它们的人和风俗,思考方式了解的更多,最终说不定你会喜欢上这样的尝试。你尝试的
任何新事物都会增加你的学识,一年左右的时间你将会对 Linux 和开源世界有一个很好的把握。
在你尝试之前,你可以参考以下几点:
*设置好你感觉最舒服的系统,因为你需要一个时刻工作的系统。这样你就可以按照下面的几点进行
尝试
*如果你不知道如何运用虚拟机,你可以设置一个独立分区来尝试
开
oss.linuxpk.com 2009 年第 2 期 80
源
经验技巧
*最好的,你可以用一个设置好的 PC,再有一个当作测试用。这样你就可以随心所欲的进行尝试
图4
六、熟悉使用你的命令行
虽然我不提倡你一定要学习命令行,有太多的文章一直强调学习命令行的重要性。这里我假设你已
经知道他的重要性并且已经知道怎样用它处理一些简单的管理任务。你可以按照指导书和手册做相应的
配置。但是不要一味的复制和粘贴。就是说,不止不加思考的执行命令许多有自由天性的人劝诫你要尽
量深刻的理解每条命令行的含义,它能做什么。为什么手册上这样做的,而不是那样做?理解你所做步骤
的基本原理。
过了一段时间你就会感觉你已经能很好的运用它了。
最后你会发现它仅仅是种伪装的语言。每条命令可能只是一些词语的首字母,或一个单词的缩写。
你希望你的狗理解“Spike fetch ball”这样的长句,为什么不尝试理解下“sudo mv /file1
/file2”那?
七、为你的用武之地做些准备
我有过很多这样的经历,当有个朋友请求我在他的电脑上做些东西,但是由于他所选择的操作系统
会出现糗事。有时候我有急事但是仅有的电脑有很挫的操作系统。不必痛苦,随身戴上你的 linux 系统,
不管是存储在 U 盘或 CD 上。有相当多的 linux 版本很方便的,象 Knoppix, DSL 和 Puppy Linux 等。
很惭愧,事实上我自己还没用上这个习惯,我想我也需要言行一致。
图5
开
oss.linuxpk.com 2009 年第 2 期 81
源
经验技巧
Linux 管理员新手易犯的十种错误
落英缤纷
对于许多人来说,迁移到 Linux 是一件乐事。而对于另外一些人来说,这简直是一场恶梦。尤其是
对于一些刚步入 Linux 管理大门的管理员来说,如果不避免一些常见的错误,就容易给单位的网络或系
统带来安全风险。本文将为帮助这些新手们避免这些错误提供一些建议。
一、不经过严格审核,从多种渠道下载安装各种类型的应用程序
乍看起来,这也许是一个不错的主意。如果你在运行 Ubuntu,你会知道包管理程序使用的是.deb
软件包。不过,你找到的许多应用程序是以源代码的形式提供的。没有问题吗?这些程序安装后也许能
够正常工作。但是你为什么不能随意安装程序呢?道理很简单,如果你以源的形式安装了程序,那么,
你的软件包管理系统将无法跟踪你所安装的东西。因此,在程序包 A(以源的形式安装)依赖于程序包
B(从一个.deb 库安装的),而软件包 B 是从更新管理器更新的时候,会发生什么事情呢?程序包 A 可能
运行,也可能无法运行。不过,如果程序包 A 和 B 都从.deb 库安装的话,二者都能运行的机会将更高。
此外,在所有的程序包都来自于同样的二进制类型时,更新程序包将更为容易。
二、忽视更新
这并不是说 Linux 管理员缺乏技巧。不过,许多 Linux 管理员在运行了 Linux 之后,以为日后就
无事可做了,以为它安全可靠。其实,新的更新可以为一些新的漏洞打上补丁。维持更新可以在一个易
受损的系统与一个安全的系统之间构造分水岭。Linux 的安全来自于不断地维护。为了实现安全性,为
了使用一些新的特性和稳定性,任何管理员都应当跟上 Linux 的更新步伐。
三、糟糕的口令
记住,root 的口令通常是 linux 王国的关键。所以为什么要让 root 的口令那么容易被破解呢?
保障你的用户口令的健壮性至关重要。如果你的口令比较长,且难于记忆,可将这个口令存放在一个可
被加密的位置。在需要这个口令时,可用解密软件解开这个口令使用之。
四、将服务器启动进入到 X
在一台机器是专用服务器时,你可能会想到安装 X,这样一些管理任务就会简单一些。不过,这并不
意味着用户需要将服务器启动进入到 X。这样会浪费珍贵的内存和 CPU 资源。相反地,你应当在级别 3
上停止启动过程,进入命令行模式。这样做不但会将所有的资源留给服务器,而且还会防止泄露机器的
机密。要登录到 X,用户只需要以命令行方式登录,然后键入 startx 进入到桌面。
开
oss.linuxpk.com 2009 年第 2 期 82
源
经验技巧
五、随意许可,原因是不理解许可
如果对许可配置不当,就会给黑客留下机会。处理许可问题的最简单方法是使用所谓的 RWE 方法,
即 Read(读取)、Write(写入)、Execute(执行)。假设你想让一个用户能够读取一个文件但不能写
入文件。为此,你可以执行:
一些新用户可能会看到一个错误,说他们没有使用文件的许可,因此他们就使用了:Chmod 777
文件名,以为这样能够避免问题。但这样做实际上会导致更多的问题,因为它给了文件的可执行的权限
记住这一点:777 将一个文件的读取、写入、执行的许可给了所有用户,666 将一个文件的读取、写入
权限给了所有用户,而 555 将文件的读取、执行权限给了所有用户,还有 444、333、222、111 等等。
六、没有备份关键的配置文件
许多管理员都有这样的体会,在升级到某个 X 版本,如 X11 之后,却发现新版本破坏了你的
xorg.conf 配 置 文 件 , 以 至 于 你 再 也 无 法 使 用 X ? 建 议 你 在 升 级 X 之 前 , 先 对 以 前
的 /etc/x11/xorg.conf 作 一 个 备 份 , 以 免 升 级 失 败 。 当 然 , X 的 升 级 程 序 会 设 法 为 用 户 备 份
xorg.conf 文件,但它却在/etc/x11 目录内备份。即使这种备份看起来不错,你最好还是自己做一个
备份吧。笔者的一个习惯是将其备份到/root 目录中,这样,用户就可以知道只有根(root)用户能够
访问此文件。记住,安全第一。这里的方法也适用于其它的关键备份,如 Samba、Apache、Mysql 等。
七、以根用户身份登录
这是一种很危险的错误。如果用户需要根特权来执行或配置一个应用程序,可以在一个标准的用户
账户中使用 su 切换到 root 用户。登录到 root 为什么不是一件好事儿?在用户以标准用户身份登录时,
所有正在运行的 X 应用程序仍拥有仅限于此用户的访问权。如果用户以根用户身份登录,X 就拥有了
root 的许可。这就会导致两个问题,一、如果用户由 GUI 犯了一个大错,这个错误对系统来说,有可能
是一个巨大的灾难。二、以根用户的身份运行 X 使得系统更易于遭受攻击。
八、没有安装一个可正常运行的内核
你可能不会在一台机器上安装 10 个以上的内核。但你需要更新内核,这种更新并没有删除以前的内
核。你是怎么做的呢?你一直保持使用最近的可正常工作的内核。假设你目前正常工作的内核是
2.6.22,而 2.6.20 是备份内核。如果你更新到 2.6.26,而在新内核中一切都工作正常,你就可以删
除 2.6.20 了。
九、逃避使用命令行
开
oss.linuxpk.com 2009 年第 2 期 83
源
经验技巧
恐怕很少有人愿意记住那么多命令。在大多数情况下,图形用户界面是许多人的最爱。不过,有时,
命令行使用起来更加容易、快捷、安全、可靠。逃避使用命令行是 Linux 管理的大忌。管理员至少应当
理解命令行是如何工作的,至少还要掌握一些重要的管理命令。
十、忽视日志文件
/var/log 的存在是有理由的。这是存放所有的日志文件的唯一位置。在发生问题时,你首先需要
看 一 下 这 里 。 检 查 安 全 问 题 , 可 看 一 下 /var /log/secure 。 笔 者 看 的 第 一 个 位 置
是/var/log/messages。这个日志文件保存着所有的一般性错误。在此文件中,你可以得到关于网络、
媒体变更等消息。在管理一台机器时,用户可以使用某个第三方的应用程序,如 logwatch,这样就可
以创建为用户创建基于/var/log 文件的各种报告。
攻击级别一:服务拒绝攻击(DoS)
到目前为止,没有一个绝对的方法可以制止这类攻击。但这并不表明我们就应束手就擒,除了强调
个人主机加强保护不被利用的重要性外,加强对服务器的管理是非常重要的一环。一定要安装验证软件
开
oss.linuxpk.com 2009 年第 2 期 84
源
经验技巧
和过滤功能,检验该报文的源地址的真实地址。另外对于几种服务拒绝可以采用以下措施:关闭不必要
的服务、限制同时打开的 Syn 半连接数目、缩短 Syn 半连接的 time out 时间、及时更新系统补丁。
攻击级别二:本地用户获取了他们非授权的文件的读写权限
本地用户是指在本地网络的任一台机器上有口令、因而在某一驱动器上有一个目录的用户。本地用
户获取到了他们非授权的文件的读写权限的问题是否构成危险很大程度上要看被访问文件的关键性。任
何本地用户随意访问临时文件目录(/tmp)都具有危险性,它能够潜在地铺设一条通向下一级别攻击的
路径。
级别二的主要攻击方法是:黑客诱骗合法用户告知其机密信息或执行任务,有时黑客会假装网络管
理人员向用户发送邮件,要求用户给他系统升级的密码。
攻击级别三:远程用户获得特权文件的读写权限
第三级别的攻击能做到的不只是核实特定文件是否存在,而且还能读写这些文件。造成这种情况的
原因是:Linux 服务器配置中出现这样一些弱点:即远程用户无需有效账号就可以在服务器上执行有限
数量的命令。
密码攻击法是第三级别中的主要攻击法,损坏密码是最常见的攻击方法。密码破解是用以描述在使
用或不使用工具的情况下渗透网络、系统或资源以解锁用密码保护的资源的一个术语。用户常常忽略他
们的密码,密码政策很难得到实施。黑客有多种工具可以击败技术和社会所保护的密码。主要包括:字
典 攻 击 ( Dictionary attack ) 、 混 合 攻 击 ( Hybrid attack ) 、 蛮 力 攻 击 ( Brute force
attack)。一旦黑客拥有了用户的密码,他就有很多用户的特权。密码猜想是指手工进入普通密码或通
过编好程序的正本取得密码。一些用户选择简单的密码 —如生日、纪念日和配偶名字,却并不遵循应使
用字母、数字混合使用的规则。对黑客来说要猜出一串 8 个字生日数据不用花多长时间。
防范第三级别的攻击的最好的防卫方法便是严格控制进入特权,即使用有效的密码。
使用象“#”或“%”或“$”这样的特殊字符也会添加复杂性。例如采用"countbak"一词,在它后面
添加“#$”(countbak#$),这样您就拥有了一个相当有效的密码。
攻击级别四:远程用户获得根权限
开
oss.linuxpk.com 2009 年第 2 期 85
源
经验技巧
第四攻击级别是指那些决不应该发生的事发生了,这是致命的攻击。表示攻击者拥有 Linux 服务器
的根、超级用户或管理员许可权,可以读、写并执行所有文件。换句话说,攻击者具有对 Linux 服务器
的全部控制权,可以在任何时刻都能够完全关闭甚至毁灭此网络。
TCP/IP 连续偷窃实际就是网络嗅探,注意如果您确信有人接了嗅探器到自己的网络上,可以去找一
些进行验证的工具。这种工具称为时域反射计量器(Time Domain Reflectometer,TDR)。TDR 对
电磁波的传播和变化进行测量。将一个 TDR 连接到网络上,能够检测到未授权的获取网络数据的设备。
不过很多中小公司没有这种价格昂贵的工具。对于防范嗅探器的攻击最好的方法是:
1、安全的拓扑结构。嗅探器只能在当前网络段上进行数据捕获。这就意味着,将网络分段工作进行
得越细,嗅探器能够收集的信息就越少。
2、会话加密。不用特别地担心数据被嗅探,而是要想办法使得嗅探器不认识嗅探到的数据。这种方
法的优点是明显的:即使攻击者嗅探到了数据,这些数据对他也是没有用的。
特别提示:应对攻击的反击措施
对于超过第二级别的攻击您就要特别注意了。因为它们可以不断的提升攻击级别,以渗透 Linux 服
务器。此时,我们可以采取的反击措施有:
首先备份重要的企业关键数据。
改变系统中所有口令,通知用户找系统管理员得到新口令。
隔离该网络网段使攻击行为仅出现在一个小范围内。
允许行为继续进行。如有可能,不要急于把攻击者赶出系统,为下一步作准备。
记录所有行为,收集证据。这些证据包括:系统登录文件、应用登录文件、
AAA ( Authentication 、 Authorization 、 Accounting , 认 证 、 授 权 、 计 费 ) 登 录 文 件 ,
RADIUS(Remote Authentication Dial-In User Service)登录,网络单元登录(Network
Element Logs)、防火墙登录、HIDS(Host-base IDS,基于主机的入侵检测系统)事件、NIDS
(网络入侵检测系统)事件、磁盘驱动器、隐含文件等。收集证据时要注意:在移动或拆卸任何设备之
开
oss.linuxpk.com 2009 年第 2 期 86
源
经验技巧
前都要拍照;在调查中要遵循两人法则,在信息收集中要至少有两个人,以防止篡改信息;应记录所采
取的所有步骤以及对配置设置的任何改变,要把这些记录保存在安全的地方。检查系统所有目录的存取
许可,检测 Permslist 是否被修改过。
进行各种尝试(使用网络的不同部分)以识别出攻击源。
为了使用法律武器打击犯罪行为,必须保留证据,而形成证据需要时间。为了做到这一点,必须忍
受攻击的冲击(虽然可以制定一些安全措施来确保攻击不损害网络)。对此情形,我们不但要采取一些
法律手段,而且还要至少请一家有权威的安全公司协助阻止这种犯罪。这类操作的最重要特点就是取得
犯罪的证据、并查找犯罪者的地址,提供所拥有的日志。对于所搜集到的证据,应进行有效地保存。在
开始时制作两份,一个用于评估证据,另一个用于法律验证。
找到系统漏洞后设法堵住漏洞,并进行自我攻击测试。
网络安全已经不仅仅是技术问题,而是一个社会问题。企业应当提高对网络安全重视,如果一味地
只依靠技术工具,那就会越来越被动;只有发挥社会和法律方面打击网络犯罪,才能更加有效。我国对
于打击网络犯罪已经有了明确的司法解释,遗憾的是大多数企业只重视技术环节的作用而忽略法律、社
会因素,这也是本文的写作目的。
名词解释:拒绝服务攻击(DoS)
它的项目主页是:http://code.google.com/p/iptux/,你可以在上面下载到源码包、二进制
包和 deb 安装包。
oss.linuxpk.com 开开
源 2009 年第 2 期 87
源
经验技巧
它非常易用,直接会将当前网段的所有计算机列出,那个 QQ 即是 Windows 机器。
如果 Windows 机器上刚好开着“飞鸽传书”的话,它就会收到了。
然而 iptux 还有更强大的地方,不仅支持发送文件、发送目录,还支持设置共享。
非常简单易用、而且功能强大的一款软件,如果你需要的话,赶紧去下载试用吧。
Linux 下时间的查看
刘敏
在图形界面下,Linux 下的用户对于时间的查看基本和 Windows 一样方便。对于使用字符界面的用
户来说,如果想查看时间其实也很简单,熟练使用下面介绍的几条命令,就能够让时间在指间自由闪现。
显示年月
在 Linux 中,用户可以通过“cal”命令来显示某年某月。示例如下:
此外,“cal”命令还有两个参数如下:
- j 显示出给定月中的每一天是一年中的第几天(从 1 月 1 日算起)。
- y 显示出整年的日历。
开
oss.linuxpk.com 2009 年第 2 期 88
源
经验技巧
April 2004
Sun Mon Tue Wed Thu Fri Sat
92 93 94
95 96 97 98 99 100 101
102 103 103 104 105 106 107
108 109 110 111 112 113 114
115 116 117 118 119 120
显示日期和时间
在字符界面下,除了可以显示年月之外,用户还可以使用“date”命令的功能是显示和设置系统日
期和时间。需要特别说明的是,只有超级用户才能用“ date”命令设置时间,一般用户只能用“date”
命令显示时间。
1.用指定的格式显示时间,命令如下:
2.设置时间为上午 9 点 16 分,命令如下:
# date -s 09:16:00
其中-s 是设置日期的参数。
另外,“date”命令还有许多有用的参数,能够帮助用户随心所欲地设定和显示时间,例如%H 显示
小时(00..23)、%M 显示分(00..59)、%p 显示出 AM 或 PM、%S 显示秒(00..59)和%Z 显示时区
等。熟能生巧,经常将这些命令参数运用起来,相信会有更多意想不到的精彩等着大家。
开
oss.linuxpk.com 2009 年第 2 期 89
源
经验技巧
现面就一步步的好好学习一下 vi 的真正使用方法吧。首先我们在 Ubuntu 8.10 下来安装 Gvim 并
添加菜单项目。
Comment[zh_CN]=Gvim 编辑器
Exec=gvim
Icon=/usr/share/pixmaps/gnome-word.png
Terminal=false
X-MultipleArgs=false
Type=Application
Categories=Application;Development;
Encoding=UTF-8
StartupNotify=true
Name=GVim Text Editor
在 shell 里输入中文
用户要想确定在所使用的 Linux 系统上有没有加上中文环境,具体可分为以下两步来进行。
执行下面的命令:
开
oss.linuxpk.com 2009 年第 2 期 90
源
经验技巧
#export LANG =C
#export LC_CTYPE=iso-8859-1
然后,在$HOME/.inputrc 里加上以下语句:
set convert -meta off
set output -meta on
修改之后,用户不必重新启动系统,只需新开一个虚拟终端,或者注销后再登录即可生效。
开
oss.linuxpk.com 2009 年第 2 期 91
源
企业应用
Linux 流量控制提高网络效率
王政
目前很多企业的内部局域网已经建立,很多还在局域网基础上建立了企业内部的 MIS 系统和邮件服
务器等,甚至在系统中开展了视频点播等数据流量较大的业务。
流量控制的基本实现
Linux 操作系统中的流量控制器(TC)主要是通过在输出端口处建立一个队列来实现流量控制。
Linux 从 2.1.105 版内核开始支持流量控制,使用时需要重新编译内核。Linux 流量控制的基本实现
可简单地由图 1 来描述。从图 1 可以看出,内核是如何处理接收包、如何产生发送包,并送往网络的。
图 1 Linux 流量控制的基本实现
接收包进来后,由输入多路分配器(Input De-Multiplexing)进行判断选择:如果接收包的目
的是本主机,那么将该包送给上层处理;否则需要进行转发,将接收包交到转发块( Forwarding
Block)处理。转发块同时也接收本主机上层(TCP、UDP 等)产生的包。转发块通过查看路由表,决定
所处理包的下一跳。然后,对包进行排列以便将它们传送到输出接口( Output Interface)。Linux
流量控制正是在排列时进行处理和实现的。
开
oss.linuxpk.com 2009 年第 2 期 92
源
企业应用
图 2 流量控制基本框架
如图 2 所示,Linux 流量控制主要由三大部分来实现:
◆ 队列规则(Queue Discipline)
◆ 分类(Classes)
◆ 过滤器(Filters)
因此,Linux 流量控制主要分为建立队列、建立分类和建立过滤器三个方面。其基本实现步骤为:
(1)针对网络物理设备(如以太网卡 eth0)绑定一个队列;
(2)在该队列上建立分类;
(3)为每一分类建立一个基于路由的过滤器。
流量控制的具体使用
现在对流量控制(TC)的具体使用做个介绍。首先是 TC 的总用法。
开
oss.linuxpk.com 2009 年第 2 期 93
源
企业应用
#tc [ OPTIONS ] OBJECT { COMMAND | help }
其中
OBJECT := { qdisc | class | filter }
OPTIONS := { -s[tatistics] | -d[etails] | -r[aw] }
下面分别介绍 TC 中队列、分类和过滤器的用法。
1.TC 中队列(qdisc)的用法
其中
QDISC_KIND := { [p|b]fifo | tbf | prio | cbq | red | etc. }
OPTIONS := ... try tc qdisc add <desired QDISC_KIND> help
2.TC 中分类(class)的用法
其中
QDISC_KIND := { prio | cbq | etc. }
OPTIONS := ... try tc class add <desired QDISC_KIND> help
开
oss.linuxpk.com 2009 年第 2 期 94
源
企业应用
[ allot BYTES ] [ mpu BYTES ] [ weight RATE ]
[ prio NUMBER ] [ cell BYTES ] [ ewma LOG ]
[ estimator INTERVAL TIME_CONSTANT ]
[ split CLASSID ] [ defmap MASK/CHANGE ]
3.TC 中过滤器(filter)的用法
其中
FILTER_TYPE := { rsvp | u32 | fw | route | etc. }
FILTERID := ... format depends on classifier, see there
OPTIONS := ... try tc filter add <desired FILTER_KIND> help
其中
SELECTOR := SAMPLE SAMPLE ...
SAMPLE := { ip | ip6 | udp | tcp | icmp | u{32|16|8} } SAMPLE_ARGS
FILTERID := X:Y:Z
TC FW 过滤器(filter fw)的用法:
... fw [ classid CLASSID ] [ police POLICE_SPEC ]
其中
POLICE_SPEC := ... look at TBF
CLASSID := X:Y
开
oss.linuxpk.com 2009 年第 2 期 95
源
企业应用
流量控制应用实例
EXPERIMENTAL _OPTIONS = y
Class Based Queueing (CBQ) = y
QoS and/or fair queueing = y
CBQ packet scheduler = y
Rate estimator= y
Packet classifier API = y
编译生成新内核:
#make dep
#make clean
#make bzImage
Linux 操作系统中,流量控制器(TC)在输出端口处建立一个队列进行流量控制,控制的方式基于
目的 IP 地址、目的子网的网络号及端口号,或者基于源 IP 地址、源子网的网络号及端口号。
配置和使用流量控制器 TC,除了建立队列、分类、过滤器和路由外,还需要对现有的队列、分类、
过滤器和 ipchains 进行监视。
开
oss.linuxpk.com 2009 年第 2 期 96
源
企业应用
eth1 的配置
开
oss.linuxpk.com 2009 年第 2 期 97
源
企业应用
突的发送最长包数目为 20 字节。
这里采用源地址及源端口号进行控制。假如有三种类型的流量需要控制:
1.建立队列
一般情况下,针对一个网卡只需建立一个队列。
2.建立分类
分类建立在队列之上。一般情况下,针对一个队列需建立一个根分类,然后在其上建立子分类。对
于分类,按其分类的编号顺序起作用,编号小的优先。一旦符合某个分类匹配规则,通过该分类发送数
据包,则其后的分类不再起作用。
开
oss.linuxpk.com 2009 年第 2 期 98
源
企业应用
该队列的最大可用带宽为 10Mb,实际分配的带宽为 1.2Mb,可接收冲突的发送最长包数目为 1 字
节,最大传输单元(加 MAC 头)大小为 1514 字节,优先级别为 1,包的平均大小为 1500 字节,包间隔
发送单元的大小为 8 字节,相应于实际带宽的加权速率为 10Kb/s。
3.建立过滤器
过滤器主要服务于分类。一般只需针对根分类提供一个过滤器,然后为每个子分类提供一个
ipchains 映射。
4.建立 ipchains 映射
该路由与前面所建立的路由映射一一对应。
注意,一般对于流量控制器所直接连接的网段,建议使用 IP 主机地址流量控制限制,不要使用子网
流量控制限制。如一定需要对直连子网使用子网流量控制限制,则在建立该子网的 ipchains 映射前,
需将原先由系统建立的 ipchains 删除,才可完成相应步骤。
5.监视
开
oss.linuxpk.com 2009 年第 2 期 99
源
企业应用
主要包括对现有队列、分类、过滤器和路由状况的监视。
(1)显示队列的状况
简单显示指定设备(这里为 eth1)的队列状况:
#tc qdisc ls dev eth1
qdisc cbq 1: rate 10Mbit (bounded,isolated) prio no-transmit
详细显示指定设备(这里为 eth1)的队列状况:
#tc -s qdisc ls dev eth1
qdisc cbq 1: rate 10Mbit (bounded,isolated) prio no-transmit
Sent 7646731 bytes 13232 pkts (dropped 0, overlimits 0)
borrowed 0 overactions 0 avgidle 31 undertime 0
(2)显示分类的状况
简单显示指定设备(这里为 eth1)的分类状况:
#tc class ls dev eth1
class cbq 1: root rate 10Mbit (bounded,isolated) prio no-transmit
class cbq 1:1 parent 1: rate 10Mbit prio no-transmit #no-transmit 表示优先
级为 8
class cbq 1:2 parent 1:1 rate 1200Kbit prio no-transmit #no-transmit
class cbq 1:10 parent 1:2 rate 100Kbit prio 1
class cbq 1:20 parent 1:2 rate 1100Kbit prio 6
详细显示指定设备(这里为 eth1)的分类状况:
#tc -s class ls dev eth1
class cbq 1: root rate 10Mbit (bounded,isolated) prio no-transmit
Sent 17725304 bytes 32088 pkts (dropped 0, overlimits 0)
borrowed 0 overactions 0 avgidle 31 undertime 0
class cbq 1:1 parent 1: rate 10Mbit prio no-transmit
Sent 16627774 bytes 28884 pkts (dropped 0, overlimits 0)
borrowed 16163 overactions 0 avgidle 587 undertime 0
class cbq 1:2 parent 1:1 rate 1200Kbit prio no-transmit
Sent 628829 bytes 3130 pkts (dropped 0, overlimits 0)
borrowed 0 overactions 0 avgidle 4137 undertime 0
开
oss.linuxpk.com
源 2009 年第 2 期 100
企业应用
class cbq 1:10 parent 1:2 rate 100KMbit prio 1
Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
borrowed 0 overactions 0 avgidle 159654 undertime 0
class cbq 1:20 parent 1:1 rate 1100Kbit prio no-transmit
Sent 5552879 bytes 8076 pkts (dropped 0, overlimits 0)
borrowed 3797 overactions 0 avgidle 159557 undertime 0
这里主要显示通过不同分类发送的数据包、数据流量、丢弃的包数目、超过速率限制的包数目等。
其中根分类(class cbq 1:0)的状况应与队列的状况类似。
(3)显示过滤器的状况
#tc -s filter ls dev eth1
filter parent 1: protocol ip pref 1 fw
filter parent 1: protocol ip pref 1 fw handle 0x4 classid 1:10
filter parent 1: protocol ip pref 100 fw
filter parent 1: protocol ip pref 100 fw handle 0x5 classid 1:20
6. 维护
主要包括对队列、分类、过滤器和路由的增添、修改和删除。
增添动作一般依照队列→分类→过滤器→ipchains 的顺序进行;修改动作没有什么特殊要求;删
开
oss.linuxpk.com
源 2009 年第 2 期 101
企业应用
除则依照 ipchains→过滤器→分类→队列的顺序进行。
这里采用的方法是全部删除,然后重新设置。删除命令如下:
#tc qdisc del root dev eth1
#ipchains -F
eth0 的配置
1.主动传输模式
开
oss.linuxpk.com
源 2009 年第 2 期 102
企业应用
当 FTP 的控制连接建立,客户提出目录列表、传输文件时,客户端发出 PORT 命令与服务器进行协
商,FTP 服务器使用一个标准端口 20 作为服务器端的数据连接端口(ftp-data),与客户建立数据连
接。端口 20 只用于连接源地址是服务器端的情况,并且端口 20 没有监听进程来监听客户请求。
在主动传输模式下,FTP 的数据连接和控制连接方向相反,由服务器向客户端发起一个用于数据传
输的连接。客户端的连接端口由服务器端和客户端通过协商确定。
2.被动传输模式
在被动传输模式下,FTP 的数据连接和控制连接方向一致,由客户端向服务器发起一个用于数据传
输的连接。客户端的连接端口是发起该数据连接请求时使用的端口。当 FTP 客户在防火墙之外访问 FTP
服务器时,需要使用被动传输模式。
3.单端口模式
FTP 服务器实现的基本功能是上传下载,下面就分几个步骤来搭建一个可以实现下载功能的简易
FTP 服务器。
开
oss.linuxpk.com
源 2009 年第 2 期 103
企业应用
中选中 FTP 服务器,单击“更新”即可。
如果无法确认是否安装了该软件,可以使用以下命令查看:
#rpm -qa|grep vsftpd
vsftpd-1.1.3-8
4.测试
使用 FTP 客户端登录到本地服务器,然后以匿名身份(anonymous)登录:
# ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 1.1.3)
Name (127.0.0.1:root): anonymous
331 Please specify the password.
Password:
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
开
oss.linuxpk.com
源 2009 年第 2 期 104
企业应用
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 21 Dec 04 01:35 test.txt
226 Directory send OK.
下载 test.txt 文件:
ftp> mget test.txt
mget test.txt? y
227 Entering Passive Mode (127,0,0,1,186,210)
150 Opening BINARY mode data connection for test.txt (21 bytes).
226 File send OK.
21 bytes received in 0.0108 secs (1.9 Kbytes/sec)
退出登录:
ftp> bye
221 Goodbye.
由测试可以看出,已经可以下载文件,但不能上传文件(也不能在服务器上创建目录和文件)。实
际上这是一个专门提供下载服务的匿名 FTP 服务器。
开
oss.linuxpk.com
源 2009 年第 2 期 105
企业应用
这样一个 FTP 服务器。
1.创建欢迎语。如果希望使用者在进入目录时,能够看到欢迎语或对本目录的介绍,可以通过以下
方法来实现。
在文件最后增加如下一行内容:
listen_port=2121
4.设定使用者不得更改目录。这样做的目的也是基于安全性的考虑。一般情况下,使用者的预设目
录为/home/username。若是不希望使用者在登录后能够切换至上一层目录/home,则可通过以下设置
来实现。在/etc/vsftpd/vsftpd.conf 文件中找到以下三行内容:
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
将其改为:
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
新增一个文件/etc/vsftpd/chroot_list,文件内容为两个用户名:
ylg
user1
增加一个名为/etc/vsftpd/userconf 的目录:
开
oss.linuxpk.com
源 2009 年第 2 期 106
企业应用
#mkdir /etc/vsftpd/userconf
以缺省方式登录会被拒绝,因为此时的默认端口号已经更改为 2121,所以登录时需指定端口。
# ftp 127.0.0.1
ftp: connect: Connection refused
此时也不能再使用匿名方式登录:
# ftp 127.0.0.1 2121
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 1.1.3)
Name (127.0.0.1:root): anonymous
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.
开
oss.linuxpk.com
源 2009 年第 2 期 107
企业应用
Password:
230-欢迎来到我的 FTP 站点
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
因为在设置中设定了不能切换目录,所以下列命令无法正确执行:
ftp> cd /home
550 Failed to change directory.
用 ls 命令查看服务器目录,会发现该文件已成功上传。
开
oss.linuxpk.com
源 2009 年第 2 期 108
企业应用
在实际应用中,有时为了增加安全性,会将 FTP 服务器置于防火墙之后。如本文开头所述,被动传
输模式适合于带有防火墙的情况。下面就来创建一个防火墙后的 FTP 服务器,该服务器 FTP 端口为
2121,数据传输端口为 2020。
修改/etc/vsftpd/vsftpd.conf 文件,在文本最后添加以下两行:
listen_port=2121
ftp_data_port=2020
重新启动 vsftpd:
#service vsftpd restart
有时希望直接在/etc/hosts.allow 中定义允许或拒绝某一源地址,可以通过以下配置来实现。先
确保/etc/vsftpd/vsftpd.conf 中 tcp_wrappers=YES,Red Hat 9.0 中,这是默认值。重新启
动 vsftpd:
#service vsftpd restart
配置虚拟用户 FTP
在 VSFTP 中,认证这些虚拟用户使用的是单独的口令库文件(pam_userdb),由可插入认证模块
(PAM)认证。使用这种方式更加安全,并且配置更加灵活。
下面介绍配置过程。
1.生成虚拟用户口令库文件。为了建立此口令库文件,先要生成一个文本文件。该文件的格式如下,
单数行为用户名,偶数行为口令:
#vi account.txt
开
oss.linuxpk.com
源 2009 年第 2 期 109
企业应用
ylg
1234
zhanghong
4321
gou
5678
2.生成口令库文件,并修改其权限:
#db_load -T -t hash -f ./account.txt /etc/vsftpd/account.db
#chmod 600 /etc/vsftpd/account.db
4.建立虚拟用户,设置该用户所要访问的目录,并设置虚拟用户访问的权限:
#useradd -d /ftpsite virtual_user
#chmod 700 /ftpsite
6.编辑/etc/vsftpd/vsftpd.conf 文件,使其整个文件内容如下所示(去掉了注释内容):
anonymous_enable=NO
local_enable=YES
local_umask=022
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
write_enable=YES
开
oss.linuxpk.com
源 2009 年第 2 期 110
企业应用
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
one_process_model=NO
chroot_local_user=YES
ftpd_banner=Welcom to my FTP server.
anon_world_readable_only=NO
guest_enable=YES
guest_username=virtual_user
pam_service_name=vsftp.vu
7.重新启动 VSFTP:
#service vsftpd restart
测试下载服务器目录中的一个文件 mytest:
ftp> get mytest
local: mytest remote: mytest
227 Entering Passive Mode (127,0,0,1,159,19)
150 Opening BINARY mode data connection for mytest (21 bytes).
226 File send OK.
21 bytes received in 0.00038 secs (54 Kbytes/sec)
测试上传本机目录中的文件 vsftpd.conf:
开
oss.linuxpk.com
源 2009 年第 2 期 111
企业应用
ftp> !ls
account.db chroot_list k mytest userconf vsftpd.conf
ftp> put vsftpd.conf
local: vsftpd.conf remote: vsftpd.conf
227 Entering Passive Mode (127,0,0,1,117,203)
150 Ok to send data.
226 File receive OK.
4229 bytes sent in 0.00195 secs (2.1e+03 Kbytes/sec)
user_config_dir=用户配置文件目录
开
oss.linuxpk.com
源 2009 年第 2 期 112
嵌入式
了解硬件体系
开发嵌入式 Linux
肖文鹏
与单纯的硬件开发或软件开发有所不同,嵌入式 Linux 系统在研发过程中通常都要涉及到硬件和软
件两个环节。许多计算机软件开发人员在转向嵌入式系统 Linux 开发的过程中显得力不从心,一个原因
就在于缺乏对嵌入式系统的硬件体系结构的了解,而偏偏嵌入式系统开发又对硬件的要求非常高。
中央处理器
嵌入式系统的核心部件是各种类型的嵌入式中央处理器。根据所用指令集的不同,嵌入式中央处理
器 可 以 分 成 两 种 主 要 的 体 系 结 构 , 一 种 是 复 杂 指 令 集 ( Complex Instruction Set
Computer , CISC ) 系 统 , 另 一 种 则 是 精 简 指 令 集 ( Reduced Instruction Set
Computer,RISC)系统。
在 20 世纪 60 年代,CISC 结构曾是嵌入式中央处理器的设计主流。但是随着时间的推移,这种设计
思想已经越来越难以满足实际应用的需要。于是有人开始提出了一种全新的处理器体系结构—— RISC。
目前使用的嵌入式中央处理器大多采用 RISC 结构。
现在几乎所有的半导体制造商都有能力生产嵌入式中央处理器,根据所用技术的不同,可以将嵌入
式中央处理器分成如下四种类型:
微处理器
现在的通用计算机都是以微处理器为中心。从严格意义上说,“微处器”指的是芯片内部只包括
CPU 本身,而不包括存储器和 I/O 接口等其它功能模块,采用的是冯·诺依曼体系结构。在一些高端的嵌
入式应用中,通过将微处理器装配在专门设计的电路板上,并配以必要的外围接口电路和扩展电路,可
开
oss.linuxpk.com
源 2009 年第 2 期 113
嵌入式
以快速构造出一个实用的嵌入式系统。
为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上与通用微处理器基本相同,但在工
作电压、工作温度、抗干扰性和可靠性等方面都做了增强。一般说来,采用微处理器来构建嵌入式系统
具有良好的实时性能、支持多任务处理、便于存储区保护、提供处理器扩展、丰富的调试功能和完善的
电源管理等优势。
微控制器
DSP 处理器
为了加快数字信号的处理速度,DSP 处理器在设计时加入了许多特殊结构,以增强它的并行处理能
力。通用处理器在设计时遵循的是便宜和简单的原则,一般面向普通用户。因而它采用的是冯·诺依曼体
系结构,指令和数据处于同一地址空间。当处理器要执行某条指令时,必须先将指令从内存中读出来进
行译码,然后再将运算数据从内存中取出来,之后才能执行真正的运算,耗费在运算之外的时间非常多
DSP 处理器则拥有一种称为哈佛的总线结构。这种结构使用不同的指令和运算数据总线,可以同时从内
存中读出指令和数据进行运算,从而减少了运算所耗费的时间。
开
oss.linuxpk.com
源 2009 年第 2 期 114
嵌入式
嵌入式 DSP 处理器对系统结构和指令都进行了特殊设计,使其能够在资源受限的情况下执行某种
DSP 算法。由于编译效率和指令执行速度都很高,因此,像数字滤波、快速傅立叶变换和离散余弦变换
等 DSP 算法正在被大量引入到嵌入式领域中来。目前,DSP 处理器主要应用在嵌入式系统的智能化领域,
如生物信息识别终端、实时语音处理和虚拟现实等。这类智能化算法一般运算量较大,特别是乘法运算
和向量运算非常多,而这恰好是 DSP 处理器的优势所在。
SoC
◆ 降低内部工作电压,减少芯片功耗;
◆ 减少芯片引脚数目,简化制造过程;
◆ 简化外围驱动单元,优化处理速度;
◆ 优化内部电路结构,降低系统噪声。
存储设备
存储设备的主要作用是保存操作系统和应用程序的映像,以及系统在运行时所需的数据。在嵌入式
系统中使用的存储设备可以分为内部存储器和外部存储器两类。内部存储器和处理器处于同一块芯片上
CPU 不必通过 I/O 电路就可以直接访问它们,处理速度非常快,但造价也异常昂贵。外部存储器是用来
存储程序或数据的独立设备,访问时需要花费比内部存储器更多的时间,并且需要在处理器周围搭建额
外的寻址电路。
无论存储器位于处理器的内部还是外部,都可以进一步划分成如下几种类型:
◆ 混合存储器(Hybrid Memory)。
RAM
RAM 既可以位于处理器内部,也可以位于处理器外部。它与处理器的连线一般包括地址总线、数据
总线、片选信号和读/写控制信号等。通用计算机一般采用 DRAM,而嵌入式系统则多少会采用一些
开
oss.linuxpk.com
源 2009 年第 2 期 115
嵌入式
SRAM,或者完全采用 SRAM。
ROM
嵌入式系统一般都不采用磁盘,其操作系统和应用程序的映像,以及系统运行时所需的数据,都必
须保存在某种断电以后数据不会丢失的存储设备中,即通常所说的不挥发存储器。与通用计算机相比,
嵌入式系统往往配备更多的不挥发存储器。现在基于半导体技术的不挥发存储器大多是只读的或接近只
读的,一般泛称为 ROM,常见的有掩膜式 ROM、可编程 ROM 和可擦除 ROM。
ROM 的特点是即使关闭电源,其中的内容仍然能够保存不变。因此,它通常被嵌入式系统用来保存
系统所需的程序代码和所有永久性数据。
混合存储器
在嵌入式系统中使用的混合存储器主要有以下几类:
◆ Flash 也称为闪存,其本质上是一种 EEPROM,但能够在正常的工作电压和电流下进行擦除和写
入操作。因此,它可以在目标系统中在线地改变其内容
在现有的技术条件下,闪存对嵌入式系统来讲是理想的、不挥发存储器。
I/O 设备
◆ DSTN 利用液晶在不同电场下能够呈现不同的光学特性,在显示屏上用水平和垂直放置的导线做
成网格,并加以电信号进行扫描,就可以依次在每个交点上形成并保持一定的电场,从而使该点上的液
晶在反射或透射光线时能够显示出不同的颜色。
开
oss.linuxpk.com
源 2009 年第 2 期 116
嵌入式
配备了 LCD 显示器的嵌入式设备往往还同时配有透明的触摸屏,通常触摸屏与液晶显示器是叠放在
一起的。这样用户可以用触笔或手指在屏幕上定位,从而取代鼠标的作用,或者直接进行手写输入,以
取代键盘的作用。
通信设备
Firewire
蓝牙
蓝牙(Bluetooth)是一个用于无线通信的标准协议。它可以给嵌入式系统提供无线数据传输功能 ,
其通信频率处于 2.4GHz 以内,即使在无线噪声很强的环境下仍然能够保持很高的准确性。用于无线通
信的蓝牙模块主要由三个部分组成,无线传输收发单元、基带处理单元和数据传输接口。
当无线信号由蓝牙的无线传输收发单元接收到之后,会被送到基带处理单元进行信号处理。处理后
的数字信号再通过数据传输接口,传送到嵌入式系统的处理器之中作进一步的处理。
红外线
嵌入式系统中的红外收发模块主要由三个部分组成:红外线发光二极管、硅管光检测器和控制电路。
红外线发光二级管是用于发射红外线的装置。它能够发射波长在 0.85 微米到 0.90 微米之间的红外光波。
硅管光检测器是用于接收红外线的装置。由它接收到的信号将被传到控制电路当中,然后再送给嵌入式
系统的处理器作进一步的处理。
开
oss.linuxpk.com
源 2009 年第 2 期 117
嵌入式
0.90 微米的红外线进行传输,传输速度为 115.2Kbps,距离大约在 1 米左右,接收角度在 30 度之内。
而在 1999 年提出的 VFIR 标准中,传输速度已经可以高达 16Mbps,有效距离为 8 米。
802.11
嵌入式操作系统 uClinux
开
oss.linuxpk.com
源 2009 年第 2 期 118
嵌入式
器领域,而更大的影响在于它正逐渐地应用于嵌入式设备。 uClinux 正是在这种氛围下产生的。
uClinux 是面向无 MMU 的 CPU 的嵌入式操作系统。它的内核是由 Linux 2.0 Kernel 发展起来的,目
前可以支持 Linux Kernel Veriosn 2.0.X。由于 Linux 具有很高的可移植性,所以嵌入式 Linux
操作系统可以很容易地提供对特定厂家 CPU 的支持。该嵌入式 Linux 操作系统使用的是通用 Linux
API 接口,即 Posix 标准接口。嵌入式 Linux 操作系统 Kernel 小于 512KB, Kernel 及 Tools(fs)
小于 900kB。
基于 uClinux 应用程序设计
1.基于以太网的开发环境,这种开发方式比较适合团队开发。我们可以把目标机和硬件调试器挂接
在局域网上,开发小组可以通过 PC 机(运行 Windows 操作系统),以超级终端的形式通过 Fterm 登陆
到运行 Linux 的主机上。这样每个小组成员都可以编译调试自己的应用程序。在编译通过后,可以通过
Fterm 以 telnet 的方式登陆到目标机上,然后通过目标机提供的 NFS,mount 到 Linux 主机,然后
就可以调试或运行程序了。采用这种方式比较适合组团开发。
如果编译时发现错误,那么很可能存在以下问题:
(1)交叉编译器或库文件的路径不正确。最彻底的解决办法是重新装一次编译器。
(2)遇到库不支持的函数。此时需要自己把函数的实现做成另外一个库供应用程序使用。如果是
uClinux 本身不支持的调用,那么就需要改写代码了。
(3)C++的一些写法不太标准,需要修改。
开发平台选择
开
oss.linuxpk.com
源 2009 年第 2 期 119
嵌入式
硬件系统
图2
此,HHDREZ328—R2 开发板成为低端手持设备、PDA、显示
终端等设备开发商的首选开发平台。其硬件结构如图 1 所示。
软件系统
开发模式
图3
1.系统开发模式,如图 2 所示。
2.应用程序开发模式
直接在目标板上进行开发,并将宿主机和目标板通
过串口相连,在宿主 PC 机上运行 minicom 作为目标
板的显示终端,实现在目标板上的调试。下面给出这种
TARGET 开发模式下的开发流程,如图 3 所示。
工作流程和软件设计
整个系统的工作流程如图 4 所示。当数据包通过相
图4
开
oss.linuxpk.com
源 2009 年第 2 期 120
嵌入式
应接口传送到以太网控制器和 MCU 后,系统内部的 TCP/IP 堆栈进行数据包解析和流向判断,然后进行解
包或者打包的动作,以继续进行后续工作。显然,最终的处理结果都要通过 Web Server 来进行。
图5
网络协议栈的实现
1.TCP/IP 协议栈
IP 包含编址方案,并提供寻址功能;TCP 则是在不同主机的对等进程之间提供可靠的进程间通信。
与 TCP 两端口所连接的实体中,一端为应用程序进程或用户,另一端则为底层协议,如 IP 协议。TCP 在
建立连接过程中采用三向握手机制,以保证数据的可靠性。当通信建立以后,就可以在此基础上进行后
续的进一步功能扩展,开展例如 HTTP、PPP 等应用层的协议实现。
2.HTTP
开
oss.linuxpk.com
源 2009 年第 2 期 121
嵌入式
传送回来,用户才能够看到网页。
E2PROM 的编程
不足之处
小结
网络技术正在以惊人的速度渗透到社会的每一个角落,嵌入式产品也不例外。因此,嵌入式 Web
Server 的研究意义深远,而基于 uClinux 的 Web Server 的研究与实现更具有一定的实用价值。这里
给出了基于 uClinux 构架 Web Server 的主要原理和方法,至于采用其它平台或方案的实现步骤及过
程大同小异,大家可举一反三。
开
oss.linuxpk.com
源 2009 年第 2 期 122
编读往来
三、[RedHat] 开机脚本,不明白请教各位老师
http://bbs.linuxpk.com/thread-37057-1-1.html
五、Linux 的考试题目,请高手帮忙作答
http://bbs.linuxpk.com/thread-36847-1-2.html
六、成功完成编译 gnome-2.24.0
http://bbs.linuxpk.com/thread-37155-1-1.html
九、求助,删除一个文件夹中的大量小文件的方法?
http://bbs.linuxpk.com/thread-36935-1-1.html
十、RRDtool 中文使用手册
http://bbs.linuxpk.com/thread-37101-1-1.html
开
oss.linuxpk.com 源 2009 年第 2 期 123
封底