由snakehsu主译《自由/开源软件:通论》中文版v1.01发布,点击这里下载。
英文原文的PDF下载在:这里。
欢迎批评反馈。
自由/开源软件:通论
作者:Kenneth Wong,Phet Sayo
This primer introduces Free/Open Source Software (FOSS), its philosophy, history and benefits/disadvantages of FOSS, including developing-country specific issues. It also contains a brief survey of FOSS initiatives in various governments around the world, legislative or otherwise. Other topics such as localization, licensing and Linux are briefly covered. It is meant as a basic introductory document that can be handed to a person when asked, "what is Free/Open Source?"
本册介绍自由/开源软件(Free/Open Source Software, FOSS),其指导思想、历史以及优点和不足,并包括了针对发展中国家的讨论。此外本册对世界各地政府的自由/开源软件促进活动(立法性的和非立法性的)也进行了简要的探讨。简要提及的其它的主题包括本地化,授权制度和 Linux 等等。本册的目的在于用一个基本的绪论文本回答人们的问题:“什么是自由/开源软件?”
版权页
前言
绪论
为什么要自由/开源?
自由/开源软件成功案例
Linux
知识产权和授权
本地化和国际化
案例研究
附录一:词汇表
附录二:软件许可
附录三:丛书授权
附录四:编写人员/文档历史
尾注
封底
联合国发展署亚太地区发展信息项目(UNDP-APDIP)出版
马来西亚,吉隆坡
http://www.apdip.net/
Email: info@apdip.net
版权所有 UNDP-APDIP 2004
在知会 UNDP-APDIP 的前提下,本书内所有材料可以复制,再发行,或被包括于其他文稿中。关于本出版物的授权详情,请参看相关附录。
ISBN:983-3094-00-7
外观设计和封面制作:
Rezonanze
www.rezonanze.com
什么是自由/开源软件
自由/开源软件的历史
“简单地说,开源/自由程序是这样一种程序:它们的发布协议给用户自由来以任何目的运行程序、来研究和修改程序,以及传播原始的或经过修改的程序(而不需要支付原开发者权利金)。”
——David Wheeler[1]
自由/开源软件已经成为一种国际现象,在短短几年里从少有人知变成了最新的热门词语。然而,对于什么真正构成了自由/开源软件和这个新概念的影响还是缺少理解。为了更好的解释这个现象,我们来研究一下自由/开源软件背后的理念和开发方法。
=自由/开源软件理念=
自由/开源软件世界中有两种主流的理念:自由软件基金会(Free Software Foundation, FSF)的理念和开放源代码运动(Open Source Initiative, OSI)的理念。因为 FSF 的历史比较悠久,并在整个运动中处于先驱的地位(见下一节,“自由/开源运动简史”),我们先讨论 FSF 的理念。
自由软件基金会认为,自由软件应保护用户的如下四大自由:
- 运行任何程序实现任何目的的自由;
- 研究程序如何工作并按个人需要修改的自由。能够获取源代码是其先决条件;
- 分发拷贝以便帮助身边其他人的自由,以及
- 改进程序并向公众发布的自由,以便让整个社群受益。能够获取源代码是其先决条件。[2]
FSF 的理念核心是合作的自由。因为非自由软件限制人们合作的自由,FSF 认为非自由软件是不道德的。FSF 也反对软件专利和除现有版权法以外的其他限制。所有这些都限制了以上列出的用户四大自由。关于软件自由的必要性请参看 FSF 的解释:“Why Software Should Be Free”,在
http://www.fsf.org/philosophy/shouldbefree.html
OSI 的理念则有些不同:
开源背后的基本想法非常简单:当程序员能够阅读,分发,和修改某个软件的源代码时,软件就能进步。许多人改进它,许多人改造它,许多人为它除错。而这可以以一个——在习惯于常规软件开发的缓慢节奏的人看来——惊人的速度发生。[3]
OSI 专注于制造强大可靠的软件的技术价值,因此相比 FSF 更容易被业界接纳。它不像自由软件那样考虑道德要求而是更多地专注于开源软件分布式开发方法的实用优势。
虽然这两种运动的理念有不同,FSF 和 OSI 享有同样的空间并在共同的立场上就软件开发、对抗私有软件,软件专利和类似事由进行合作。如 Richard Stallman 所说,自由软件和开源软件运动是同一阵营内的两个政党。
=自由/开源软件开发方法=
因特网的产生和随之迅速发展的通讯使得自由/开源软件独特的开发模式成为可能。传统软件开发方法和自由/开源软件开发模型之间的差别可以用大教堂和市集[4]的比喻来说明。
传统软件开发方法就像古代建造大教堂的方式。一小队技艺精湛的匠人孤立地设计,一切都是独立地完成。大教堂一旦竣工就几乎不再改动。传统上的软件也是这样生产的。一群群程序员在细致的计划和管理下孤立地工作,直到完成程序并向外界发布。发布后的程序被认为是成品,后续的工作非常有限。
相反,自由/开源软件开发就像一个有机地扩展的集市。最初的商人来到这里,建立起货架并开始做生意。后来的商人们也建立起自己的货架,集市就这样以一种看起来非常纷乱的方式发展。商人们所关心的只是建立起最简单可用的货架以便开始做生意。后来附加的功能都是由环境决定。自由/开源软件的开发也是从类似的无结构的状态开始。开发者向公众发布最初的只有最基本功能的代码,然后根据公众的反馈修改他们的程序。其他开发者也可以加入进来,参与修改或发展现有的代码。假以时日,整套操作系统和应用套件都可以被开发出来并不断演化。
在长期的应用中,集市开发方法已被证明有如下几个优点:
1) 减少重复劳动
通过在开发初期发布程序并允许用户修改和再发布源代码,自由/开源软件开发者可以利用同行的成果。这样做的规模效应是巨大的。与10个公司里各有5名开发者编写一个网络应用程序相比,50名开发者现在有可能合力编写这个程序。减少的重复劳动使得自由/开源软件可以达到闻所未闻的规模,由世界各地的数千名开发者共同开发。
2) 在他人工作基础上发展
由于可以利用现有的源代码继续编写程序,开发的时间缩短了。许多自由/开源软件项目利用其他项目的软件产品实现需要的功能。例如,Apache 万维网服务器使用了 OpenSSL 项目的成果实现加密,而不是自己从头编写加密代码,因而节省了数千小时的编写和测试时间。即使在源码无法直接整合的情况下,开发者也可以通过学习现有代码了解另一个项目如何解决类似的问题。
3) 更好的质量控制
“只要眼球足够多,所有臭虫都好捉”[5]是自由/开源软件界的一句名言,意思是说只要有足够多合格的开发者使用程序并检查其源代码,程序中的错误将能更快地被发现和修正。私有软件也接受错误报告,但由于用户无法看到源代码,他们只能报告错误的症状。而自由/开源软件的用户能够查看源代码,他们不但报告问题,还常常指出原因所在,有时还提供改正方案。这大大减少了开发和质量控制环节的耗时。
4) 减少维护费用
维护任何一个软件包的费用常常相当于甚至超过初始开发的费用[6]。对于单个组织而言,维护软件的工作耗费不菲。而在自由/开源软件开发模式中,维护费用可以由软件的数千名潜在用户分担。软件的功能增强也可以由最精通该领域的组织/个人完成,因而实现了资源的更有效利用。
What is Free/Open Source Software?
“Briefly, OSS/FS programs are programs whose licenses give users the freedom to run the program for any purpose, to study and modify the program, and to redistribute copies of either the original or modified program (without having to pay royalties to previous developers).”
David Wheeleri
Free and Open Source Software (FOSS) has become an international phenomenon, moving from relative obscurity to being the latest buzzword in a few short years. However, there is still a lack of understanding about what really constitutes FOSS and the ramifications of this new concept. To better explain this phenomenon, we will examine the philosophy and development methods behind FOSS.
The FOSS philosophy
There are two major philosophies in the FOSS world: the Free Software Foundation (FSF) philosophy and the Open Source Initiative (OSI) philosophy. We begin with the FSF philosophy, due to its historical precedence (see the following section, “A Brief History of FOSS”) and pioneering position in the movement.
According to the FSF, free software is about protecting four user freedoms:
The freedom to run a program, for any purpose;
The freedom to study how a program works and adapt it to a person’s needs. Access to the source code is a precondition for this;
The freedom to redistribute copies so that you can help your neighbour; and
The freedom to improve a program and release your improvements to the public, so that the whole community benefits. Access to the source code is a precondition for this.ii
At the heart of FSF is the freedom to cooperate. Because non-free (free as in freedom, not price) software restricts the freedom to cooperate, FSF considers non-free software unethical. FSF is also opposed to software patents and additional restrictions to existing copyright laws. All of these restrict the four user freedoms listed above. For a more detailed explanation of why software needs to be free, please refer to the FSF explanation, “Why Software Should Be Free”, found at http://www.fsf.org/philosophy/shouldbefree.html
The OSI philosophy is somewhat different:
The basic idea behind open source is very simple: When programmers can read, redistribute, and modify the source code for a piece of software, the software evolves. People improve it, people adapt it, people fix bugs. And this can happen at a speed that, if one is used to the slow pace of conventional software development, seems astonishing.iii
The OSI is focused on the technical values of making powerful, reliable software, and is more business-friendly than the FSF. It is less focused on the moral issues of Free Software and more on the practical advantages of the FOSS distributed development method.
While the fundamental philosophy of the two movements are different, both FSF and OSI share the same space and cooperate on practical grounds like software development, efforts against proprietary software, software patents, and the like. As Richard Stallman says, the Free Software Movement and the Open Source Movement are two political parties in the same community.
The FOSS development method
The FOSS development model is unique and became possible only with the advent of the Internet and the communication boom caused by it. The cathedral and bazaar analogiesiv are used to contrast the FOSS development model with traditional software development methods.
Traditional software development is likened to the way cathedrals were built in ancient times. Small groups of skilled artisans carefully planned out the design in isolation and everything was built in a single effort. Once built, the cathedrals were complete and little further modification was made. Software was traditionally built in a similar fashion. Groups of programmers worked in isolation, with careful planning and management, until their work was completed and the program released to the world. Once released, the program was considered finished and limited work was subsequently done on it.
In contrast, FOSS development is more akin to a bazaar, which grows organically. Initial traders come, establish their structures, and begin business. Later traders come and establish their own structures, and the bazaar grows in what appears to be a very chaotic fashion. Traders are concerned primarily with building a minimally functional structure so that they can begin trading. Later additions are added as circumstances dictate. Likewise, FOSS development starts off highly unstructured. Developers release early minimally functional code to the general public and then modify their programs based on feedback. Other developers may come along and modify or build upon the existing code. Over time, an entire operating system and suite of applications develops and evolves continuously.
The bazaar method of development has been proven over time to have several advantages:
1.Reduced duplication of effort
By releasing programs early and granting users the right to modify and redistribute the source code, FOSS developers reuse the work produced by compatriots. The economies of scale can be enormous. Instead of five software developers in 10 companies writing a single networking application, there is the potential for the combined efforts of 50 developers. The reduced duplication of effort allows FOSS development to scale to massive, unheard of levels involving thousands of developers around the world.
2.Building upon the work of others
With the availability of existing source code to build on, development times are reduced. Many FOSS projects rely on software built by other projects to supply needed functionality. For example, instead of writing their own cryptographic code, the Apache web server project uses the OpenSSL project’s implementation, thereby saving thousands of hours of coding and testing. Even in cases where source code cannot be directly integrated, the availability of existing source code allows developers to learn how another project has solved a similar problem.
3.Better quality control
“Given enough eyeballs, all bugs are shallow”v is an oft-cited quotation in the FOSS world. It means with enough qualified developers using the application and examining the source code, errors are spotted and fixed faster. Proprietary applications may accept error reports but because their users are denied access to the source code, users are limited to reporting symptoms. FOSS developers often find that users with access to the source code not only report problems but also pinpoint the exact cause and, in some cases, supply the fixes. This greatly reduces development and quality control time.
4.Reduced maintenance costs
Maintenance of any software package can often equal or exceed the cost of initial software developmentvi. When a single organization has to maintain software, this can be an extremely expensive task. However, with the FOSS development model, maintenance costs can be shared among the thousands of potential users of a software application, reducing per-organization costs. Likewise, enhancements can be made by the organization/individual with the best expertise in the matter, which results in a more efficient use of resources.
“自由/开源软件运动在20世纪60和70年代起源于美国计算机科学实验室(斯坦福,伯克利,卡内基梅隆,以及麻省理工)中的‘黑客’文化。
“程序员的群体是一个紧密联系的小团体。代码在这个群体的成员中传来传去。如果你对程序作出了改进就应该把代码提交给开发者群体。而不开放代码会被人们看作是不知趣的做法——毕竟你从朋友的工作中受益了,就应该有所回报。”
-- 自由/开源软件运动简史[7]
自由/开源软件运动几乎可以追溯到计算机工业的最初时期,虽然当时它还没有正式的定义和概念。直到1970年代和1980年代早期分享软件的做法才和私有软件产生了冲突。最早提出私有软件的可能是比尔盖茨现在尽人皆知的“给玩家的公开信”(An Open Letter to Hobbyists)[8]。在这封发表于1976年3月2日的信里,他抨击了当时盛行的软件分享文化:
“为什么?大多数玩家应该明白,你们在偷窃软件。硬件是要花钱购买的,软件却可以分享。谁真正关心软件工作者是否获得了报偿?”
在后来数年里私有软件越发盛行。在1980年代早期,业界领先的麻省理工(MIT)人工智能实验室里诞生了一家叫 Symbolics 的公司,他们将当时可以自由获取的代码(LISP 编程语言)变成了私有软件。这种做法使 MIT 实验室当时的软件分享文化化为乌有[9]。但是这样的毁灭最终导致了 FSF 的创建和今天的自由/开源软件文化。
当时还是 MIT 实验室成员的 Richard Stallman 对于发生的一切感到恼怒。他在那时形成了对私有软件的看法,并坚定了创造一个自由的操作系统的决心。GNU(GNU is Not Unix 的迭代缩写形式)工程在1984年1月诞生。在后来10年中,它创造了许多工具,都成为自由操作系统的关键组成部分。1985年,为推广自由软件和 GNU 工程, FSF 成立了。但是直到1991年,GNU 工程都无法完成完全自由的软件系统,因为缺少一个关键部件:操作系统内核。
内核就是操作系统的心脏。1991年,还在赫尔辛基大学念研究生二年级的 Linus Torvalds 编写并发布了一个类 Unix 的内核。这个内核被按照自由/开源软件开发的方式广泛传播、改进并迅速被改造成 GNU/Linux 操作系统的核心。
这一时期还有其他的自由/开源软件项目,包括 BIND,Perl 和 BSD 操作系统家族。后来这些项目间都产生了合并和相互影响。
此后 GNU/Linux 操作系统继续稳步增加功能和能力。1997年,国际数据集团(International Data Corp, IDC)发现 GNU/Linux 已经占有25%的服务器市场[10]并正在以每年25%的速率增长。Linux 受到了媒体的广泛关注。
1998年,作为对网景(Netscape)开放 Netscape Navigator 浏览器代码的回应,一群自由/开源软件开发者聚到一起并创造了“开源”(Open Source)的标志。随之而来的是开放源代码运动和开源定义的形成。这一运动的主旨是让业界注意到自由/开源软件并在自由软件运动的“对抗”态度之外开辟另一条道路[11]。
1999年,GNU/Linux 厂商 Red Hat 以48亿美元的价值成功上市。当年其他成功的上市企业还有 VA Linux (70亿美元),Cobalt Networks(31亿美元)和 Andover.net(7.12亿美元)[12]。GNU/Linux 的成功也代表了其源头自由/开源软件的成功。
What is the history of FOSS?
“The free/open source software movement began in the "hacker" culture of U.S. computer science laboratories (Stanford, Berkeley, Carnegie Mellon, and MIT) in the 1960's and 1970's.
The community of programmers was small, and close-knit. Code passed back and forth between the members of the community--if you made an improvement you were expected to submit your code to the community of developers. To withhold code was considered gauché--after all, you benefited from the work of your friends, you should return the favor.”
A Brief History of Free/Open Source Software Movementi
The FOSS movement dates back to almost the very beginning of the computer industry, although it was not then formally defined or conceptualized. It was only in the late 1970s and early 1980s that the sharing of software began to really come in conflict with proprietary software. One of the earlier references to proprietary software was made by William H. Gates III in his now-famous “An Open Letter to Hobbyists.”ii In this letter, dated 3rd February 1976, he rails against the prevailing culture of software sharing:
Why is this? As the majority of hobbyists must be aware, most of you steal your software. Hardware must be paid for, but software is something to share. Who cares if the people who worked on it get paid?
Proprietary software would gain momentum over the years. At the pioneering MIT Artificial Intelligence Lab in the early 1980s, a company called Symbolics was formed and took what was freely available code (the LISP programming language) and made it proprietary. In the process, it wiped out the software-sharing culture of the MIT lab at the timeiii. This destruction, however, would eventually result in the creation of the FSF and the FOSS culture today.
Richard Stallman, one of the MIT lab members at the time, was appalled at the turn of events. It would shape his view of proprietary software and instill in him the resolve to create a free operating system. The GNU (recursive acronym for GNU is Not Unix) project was born in January 1984 and over the next decade, it created a variety of critical tools that formed a portion of the operating system. The FSF was created a year later to promote Free Software and the GNU project. However, up until 1991, the GNU project had yet to produce a totally free software system due to a missing critical piece: the kernel.
The kernel is the heart of the operating system. In 1991, Linus Torvalds, who at the time was a second year graduate student at the University of Helsinki, wrote and distributed a Unix-like kernel. In the manner of FOSS development, it was distributed widely, improved upon and soon adapted to become the core of the GNU/Linux operating system.
There were other FOSS projects in progress at the time, including BIND, Perl and the BSD operating systems. All of these projects eventually ended up merging or cross-pollinating.
The GNU/Linux operating system would continue to grow steadily in features and capabilities. In 1997 Linux exploded into the press limelight, with International Data Corp (IDC) noting that GNU/Linux already owned 25 percent of the server marketiv and was growing at an annual compound growth rate of 25 percent.
In 1998, in response to Netscape’s release of its Netscape Navigator code as FOSS, a group of FOSS developers came together and the label “Open Source” was created. This led to the formation of the Open Source Initiative and the Open Source Definition. The primary purpose of this initiative was to get the corporate world to pay attention to the FOSS development process and steer a path away from the “confrontational” attitude of the Free Software movementv.
In 1999, the massively successful IPO of GNU/Linux distributor Red Hat gave it a market capitalization of US$4.8 billion. Other successful IPOs that year were VA Linux (US$ 7 billion), Cobalt Networks ($3.1 billion) and Andover.net ($712 million)vi. As the poster child of FOSS, GNU/Linux’s success meant that FOSS had truly arrived.
“开源软件有很多称谓:一种运动,一种潮流,一种病毒,一个共产主义阴谋,甚至有人说它是因特网的灵魂。但人们常常忽视了一点:开源软件也是把财富从发达国家向发展中国家转移的一种极为有效的工具。”
-- Andrew Leonard[13]
自由/开源软件免费吗?
自由/开源软件能节省多少?
自由/开源软件有什么好处?
自由/开源软件有什么缺点?
关于自由/开源软件的一种常见想法是认为它总是“免费的”。在某种程度上这种想法是对的。没有真正的自由/开源软件收取用户授权费用。大部分自由/开源软件发行版本(Red Hat,SuSE,Debian 等等)可以免费从因特网上获取。考虑授权费用的话,自由/开源软件几乎总是比私有软件便宜。
但是,授权费用并不是软件包或基础架构的唯一花费。考虑人员开支,硬件需求,机会成本和培训费用也很必要。一个经常使用的概念是总体拥有成本(Total Cost of Ownership, TCO),这些成本给我们最清楚地展示了使用自由/开源软件所节省的花销。(2)
The popular myth surrounding Free/Open Source Software is that it is always “free”—that is, “free of charge.” To a certain degree this is true. No true FOSS application charges a licensing fee for usage. Most FOSS distributions (Red Hat, SuSE, Debian, etc.) can be obtained at no charge off the Internet. On a licensing cost basis, FOSS applications are almost always cheaper than proprietary software.
However, licensing costs are not the only costs of a software package or infrastructure. It is also necessary to consider personnel costs, hardware requirements, opportunity costs and training costs. Often referred to as the Total Cost of Ownership (TCO), these costs give the clearest picture of the savings from using FOSS1.
除了廉价以外,公共或私人组织还有很多理由大力推动自由软件的使用。这些理由包括:
对于政府来说最后四点需要根据各自的不同情况考虑,因而特别重要。公司和最终用户一般不考虑这些事项。
=安全=
虽然并没有完全安全的系统或平台,像开发方法、程序架构和目标市场这样的因素都会极大地影响系统的安全性并决定攻破它是否困难。在这方面,自由/开源软件系统有一些指标优于私有软件系统:
对安全的考虑已经推动许多公共机构转移到或考虑转移到自由/开源软件方案。法国海关和间接税管理部门主要出于安全的考虑,迁移到了 Red Hat 6.2 平台[24]。
一般认为,自由/开源软件较好的安全记录有如下原因:
=可靠性/稳定性=
自由/开源软件因为它们的可靠性和稳定性而闻名。业界已经有许多自由/开源软件服务器不需维护连续运行数年的故事。但是,定量研究相对而言更加困难。以下介绍两个近年进行的研究:
=开放标准和摆脱供应商依赖=
开放标准的用户,不论是个人还是政府,都拥有在不同的软件、平台和供应商之中选择的灵活性和自由。而私有的、保密的标准使得用户只能使用一个供应商的软件,并且因为他们的数据都存储为私有格式,转换代价高昂而在此后继续受供应商的摆布。
荷兰国际信息经济研究所(International Institute of Infomatics)《自由/开源软件:调查研究》这篇论文的作者们也反对在政府中使用私有软件。他们认为:
“……因此反对在公共部门使用私有软件的一个主要理由是对私有软件供应商的依赖。私有标准一旦建立人们就必须服从。即使在开放的竞标制度下,与私有标准兼容的需求也使得制度偏向于特定的软件供应商,因此造成长期的依赖。”
自由/开源软件的另一大优点就是它们几乎总是使用开放标准。这样做主要有两个原因:
在不同的地区,使用自由/开源软件作为摆脱供应商依赖的手段都获得了提倡。一份提交英国政府的报告认为“数据标准的开源实现常常能加速标准的推行,推荐政府有选择地支持这样的开源实现。”[29]
=减少进口依赖=
发展中国家选择自由/开源系统的一个重要动机是可以节省高昂的私有软件授权成本。发展中国家所有的私有软件几乎都依赖进口,因而消耗了宝贵的硬通货和外汇储备。而这些储备本可以用于其他开发项目。
《自由/开源软件:调查研究》这个在欧洲进行的研究也显示:“开源软件偏向服务的模式带来的成本都在政府机构内部被消化,而不是流向大型跨国公司。这对就业、本地投资、税收等等都起到促进作用。”[30]
=增强自身软件能力=
人们发现经济体内自由/开源软件开发者的增长与创造能力(软件)成正相关关系。国际信息经济研究所的一份报告列出了这个现象的三个原因[31]:
自由/开源软件的开发方式不仅极大地促进了创新,也有利于创新成果的传播。一份微软的内部备忘录写到,“基于 Linux 的研究/教学项目由于 Linux 源代码随处可以获取而很容易传播。特别是新的研究想法都先被在 Linux 上实现和发布,然后才在其他平台上被整合或发布。”[32]
=杜绝盗版,遵守知识产权条约和世贸组织规定=
对于世界上几乎每一个国家,软件盗版都是个问题。商业软件联盟(Business Software Alliance)估计盗版仅在2002年一年就造成了130.8亿美元的损失。即使像美国和欧洲这样在理论上能够负担软件费用的发达地区盗版率也分别高达24%和35%。而在收入较低的发展中国家,软件相对更加昂贵,盗版率可达90%以上[33]。
软件盗版和缺乏相应的法律会在很多方面对国家造成不利影响。对知识产权(Intellectual Property Rights, IPR)的保护较差的国家对外国投资者的吸引力较小。世界贸易组织(World Trade Organization, WTO)的成员资格和从中获取的收益与国家对知识产权的保护紧密相关。最后,盗版软件的风气损害软件开发,因为本地的软件开发者开发产品的动机较弱。
=本地化=
“本地化的含义是使产品符合目标区域(使用和销售产品的国家/地区和相应语言)的语言和文化要求。”
-- 本地化产业标准协会(Localisation Industry Standards Association)[34]
本地化是开放的自由/开源软件的强项之一。用户可以修改自由/开源软件以适应特定文化区域的需求,不论其经济规模的大小。开发一个最基本的本地化自由/开源软件版本只需要少数有技术能力的人。建立一个完全本地化的软件平台并不容易,但还是可以办到的。如果没有自由/开源的替代品,微软公司1998年拒绝开发冰岛语版本 Windows 98 [35]的决定可能会带来严重的后果。
大多数亚太地区最初的自由/开源软件项目都与软件的本地化有关。关于本地化的更多详情可以参阅本册书的“本地化和国际化”小节。
Besides the low cost of FOSS, there are many other reasons why public/private organizations are aggressively adopting FOSS. These include:
Security
Reliability/Stability
Open standards and vendor independence
Reduced reliance on imports
Developing local software capacity
Piracy, IPR, and WTO
Localization
Of particular importance to governments are the last four points as they are government-specific. Corporations and end users usually do not deal with these issues.
Security
While there is no perfectly secure operating system or platform, factors such as development method, program architecture and target market can greatly affect the security of a system and consequently make it easier or more difficult to breach. There are some indications that FOSS systems are superior to proprietary systems in this respect:
1.The Gartner Group recommends that businesses switch from Microsoft Internet Information Server (IIS) to Apache or another web server, due to IIS’s poor security track record. The Gartner Group noted that by July 2001 US enterprises had spent US$1.2 billion simply fixing Code Red (IIS-related) vulnerabilitiesi.
2.“Hacker Insurance” issued by J.S. Wurzler Underwriting Managers costs five to 15 percent more if Windows is used instead of GNU/Linux or Unix systems. Walter Kopf, senior vice president of underwriting at J.S. Wurzler Underwriting Managers, says, “We have found out that the possibility for loss is greater using the NT system.”ii
The security aspect has already encouraged many public organizations to switch or to consider switching to FOSS solutions. The French Customs and Indirect Taxation authority migrated to Red Hat Linux 6.2 largely because of security concernsiii.
Three reasons are often cited for FOSS’s better security record:
Availability of source code: The availability of the source code for FOSS systems has made it easier for developers and users to discover and fix vulnerabilities, often before a flaw can be exploited. Many of the vulnerabilities of FOSS listed in Bugtraq were errors discovered during periodic audits and fixed without any known exploits. FOSS systems normally employ proactive rather than reactive audits.
Security focus, instead of user-friendliness: FOSS can be said to run a large part of the Internetiv and is therefore more focused on robustness and functionality, rather than ease of use. Before features are added to any major FOSS application, its security considerations are considered and the feature is added only if it is determined not to compromise system security.
Roots: FOSS systems are mostly based on the multi-user, network-ready Unix model. Because of this, they come with a strong security and permission structure. Such models were critical when multiple users shared a single powerful server—that is, if security was weak, a single user could crash the server, steal private data from other users or deprive other users of computing resources. Consequently, vulnerabilities in most applications result in only a limited security breach.
Reliability/Stability
FOSS systems are well known for their stability and reliability. There are many anecdotal stories of FOSS servers functioning for years without requiring maintenance. However, quantitative studies are more difficult to come by. Here are two of the studies conducted to date:
In 1999 Zdnet ran a 10-month reliability test between Red Hat Linux, Caldera Systems OpenLinux and Microsoft’s Windows NT Server 4.0 with Service Pack 3. All three ran on identical hardware systems and performed printing, web serving and file serving functions. The result was that NT crashed once every six weeks but none of the FOSS systems crashed at all during the entire 10 monthsi.
A stress test using random testing stressed seven commercial systems and the GNU/Linux system in 1995. Random characters were fed to these systems, to simulate garbage from bad data or users. The result was that the commercial systems had an average failure rate of 23 percent while Linux as a whole failed nine percent of the time. GNU utilities (software produced by the FSF under the GNU project) failed only six percent of the time. A follow-up study years later found that the flaws identified by the study were all fixed in the FOSS system, but were generally untouched in proprietary softwareii.
Open standards and vendor independence
Open standards give users, whether individuals or governments, flexibility and the freedom to change between different software packages, platforms and vendors. Proprietary, secret standards lock users into using software only from one vendor and leave them at the mercy of the vendor at a later stage, when all their data is in the vendor’s proprietary format and the costs of converting them to an open standard is prohibitive.
The authors of the paper “Free/Libre and Open Source Software: Survey and Study” produced by the International Institute of Infonomics in the Netherlands also argue against use of proprietary software in government. They say:
…Consequently one major argument against the implementation of proprietary software in the public sector is the subsequent dependency on proprietary software vendors. Whenever the proprietary standards are established the necessity to follow them is given. Even in an open tender acquisition system, this requirement for compatibility with proprietary standards makes the system biased towards specific software vendors, perpetuating a dependency.
Another advantage of FOSS is that they almost always use open standards. This is due to two primary reasons:
Availability of the source code: With the source code, it is always possible to reverse-engineer and document the standard used by an application. All possible variations are plainly visible in the source code, making hiding a proprietary standard in FOSS systems impossible. Proprietary software, however, are much harder to reverse-engineer and in some cases are deliberately obfuscated.
Active standards compliance: When established standards exist, such as HyperText Markup Language (HTML), which controls how web pages are displayed, FOSS projects actively work to follow the standards faithfully. The Mozilla web browser, a FOSS effort, is fully compliant with many standards from the World Wide Web Consortium (W3C). Webstandards.org notes that Mozilla is one of the most compliant browsers available todayi. Compliance with standards is due to the FOSS development culture, where sharing and working together with other applications are the norm. It is also much easier to work with a globally dispersed group of developers when there is a published standard to adhere to.
Using FOSS systems as a means of gaining vendor independence has been raised in several areas. A report to the UK Government concludes that “the existence of an OSS reference implementation of a data standard has often accelerated the adoption of such standards, and recommends that the Government consider selective sponsorship of OSS reference implementations.”ii
Reduced reliance on imports
A major incentive for developing countries to adopt FOSS systems is the enormous cost of proprietary software licenses. Because virtually all proprietary software in developing countries is imported, their purchase consumes precious hard currency and foreign reserves. These reserves could be better spent on other development goals.
The European study, “Free/Libre and Open Source Software: Survey and Study”, also notes that, “The costs of this more service-oriented model of open source are then also normally spent within the economy of the governmental organization, and not necessary to large multinational companies. This has a positive feedback regarding employment, local investment base, tax revenue, etc.”iii
Developing local software capacity
It has been noted that there is a positive correlation between the growth of a FOSS developer base and the innovative capacities (software) of an economy. A report from the International Institute of Infonomics lists three reasons for thisi:
Low barriers to entry: FOSS, which encourages free modification and redistribution, is easy to obtain, use and learn from. Proprietary software tends to be much more restrictive, not just in the limited availability of source code, but due to licensing, patent and copyright limitations. FOSS allows developers to build on existing knowledge and pre-built components, much like basic research.
FOSS as an excellent training system: The open and collaborative nature of FOSS allows a student to examine and experiment with software concepts at virtually no direct cost to society. Likewise, a student can tap into the global collaborative FOSS development network that includes massive archives of technical information and interactive discussion tools.
FOSS as a source of standards: FOSS often becomes a de facto standard by virtue of its dominance in a particular sector of an industry. By being involved in setting the standards in a particular FOSS application, a region can ensure that the standard produced takes into account regional needs and cultural considerations.
The FOSS developmental approach greatly facilitates not only innovation but also its dissemination. A Microsoft internal memo noted, “Research/teaching projects on top of Linux are easily ‘disseminated’ due to the wide availability of Linux source. In particular, this often means that new research ideas are first implemented and available on Linux before they are available / incorporated into other platforms.”ii
Localization
“Localization involves taking a product and making it linguistically and culturally appropriate to the target locale (country/region and language) where it will be used and sold.”
Localisation Industry Standards Associationi
Localization is one of the areas where FOSS shines because of its open nature. Users are able to modify FOSS to suit the unique requirements of a particular cultural region, regardless of economic size. All that is necessary is the technical capability within a small number of individuals to create a minimally localized version of any FOSS. While the construction of a completely localized software platform is no small feat, it is at least possible. Microsoft’s decision in 1998 against producing an Icelandic version of Windows 98ii would have had serious implications if it were not for the emergence of FOSS alternatives.
Most initial FOSS initiatives in the Asia-Pacific region have dealt with localizing FOSS. More details on localization can be found in the “Localization and Internationalization” section of this primer.
虽然自由/开源软件带来了种种好处,但它并不总是最合适的选择。以下是自由/开源软件需要改进的地方。
=缺乏商务应用=
虽然当今已经有许多自由/开源软件项目,但很多领域中仍然缺乏功能全面的产品,特别是在商务应用方面。最近像 SAP 和 Peoplesoft [36]这样的企业资源规划平台的移植满足了高端应用市场的需求,但中小型企业(Small and Medium Enterprise, SME)的市场还是空白。像 Quickbooks,Peachtree 和 Great Plains 这样的提供基本或提高功能的软件目前都没有自由/开源的相应同等产品。
这种情况的部分原因是缺乏对技术和商业问题都精通的人才。目前存在的大部分自由/开源软件项目都是由于开发者遇到了问题而编写软件试图解决。这些项目都非常偏向技术本身,例如开发 web 服务器,编程语言/环境和网络工具。软件开发者很少遇到像会计这样的问题,也缺乏相关的商业知识从技术上提供解决方案。
=与私有软件系统的配合=
自由/开源软件系统不能与私有软件系统完全兼容,特别是在桌面方面。对于已经在私有应用软件和数据格式上投入了大量资金的组织来说,整合自由/开源系统的尝试可能会极为昂贵。私有软件常常为了阻止其他解决方案的整合而频繁改变标准,使问题更加严重。
随着组织从私有标准转向开放标准,这个问题有望得到缓解。
=文档和“美容”=
现有的自由/开源软件缺乏商业软件中全面的文档和用户友好的界面[37]。早期自由/开源软件的开发者只注重功能,认为优异的性能比易用性更重要。
除了高质量的文档,自由/开源软件的图形用户界面(Graphical User Interface, GUI)。因为大多数自由/开源软件系统中的 GUI 元素并不统一,而是一系列不同项目的组合,因此元素的行为千差万别。不同程序的“保存”命令都不同,而不像 Mac OS X 或 Microsoft Windows 这样的系统基本统一。不同程序间的复制/粘贴可能完全不同,甚至根本无法办到。虽然为桌面统一化人们已经做了许多重要工作,在未来一段时间内桌面程序不一致的现象仍将继续存在。
For all the benefits FOSS brings, it is not suitable for every situation. There are areas where FOSS needs improvement.
Lack of business applications
While there are many FOSS projects out there today, there are still many areas that lack a full-featured product, especially in the business world. The recent porting of Enterprise Resource Planning platforms such as SAP and Peoplesofti have helped cover the high-end application market, but the Small and Medium Enterprise (SME) market is still poorly served. Basic, polished accounting applications such as Quickbooks, Peachtree or Great Plains do not have FOSS equivalents at this time.
This problem has come about in part due to the scarcity of people competent in both technical and business subjects. Technical developers who encountered problems and wrote software to “scratch an itch” started most of the existing FOSS projects today. These projects are usually fairly technical in nature, such as the creation of web servers, programming languages/environments and networking tools. It is rare for a software developer to encounter accounting problems, for example, and have the business knowledge to create a technical solution.
Interoperability with proprietary systems
FOSS systems, especially on the desktop, are not completely compatible with proprietary systems. For organizations that have already invested massive amounts of capital into proprietary applications and data storage formats, attempting to integrate FOSS solutions can prove to be prohibitively expensive. Changing proprietary standards, which is often aimed at preventing the integration of alternate solutions, exacerbates this problem.
In time, as organizations shift from proprietary to open standards, this problem should be reduced.
Documentation and “polish”
Established FOSS lacks the extensive documentation and user-friendliness found in commercial softwareii. The primary focus of early FOSS developers was functionality. Creating a program that worked well was far more important than ease of use.
Besides the dearth of high-quality documentation, there are also user interface issues with FOSS Graphical User Interfaces (GUI). Because the GUI element in most FOSS systems is not a single element but a collection of different projects glued together, the behaviour of the GUI elements differ greatly. Command-to-save data differ from one program to another, quite unlike proprietary desktop operating systems such as the Mac OS X or Microsoft Windows. Cutting and pasting between different programs can be wildly inconsistent or even impossible. While there is significant ongoing work to unify the desktop, the desktop is likely to remain inconsistent for some time to come.
已经有许多因使用自由/开源软件节约大量开支的案例报告,特别是那些把内部系统迁移到 GNU/Linux 平台上的大公司。英特尔在报告中说把系统从 Unix 迁移到 GNU/Linux 为他们节省了2亿美元,而 Amazon 通过把服务器换成 GNU/Linux 平台节省了1,700万美元[14]。许多金融机构如 Credit Suisse First Boston,Morgan Stanley,Goldman Sachs 和 Charles Schwab 都把他们信息系统的一大部分迁移到自由/开源系统以节约成本[15]。
有一些 TCO 研究比较了运行自由/开源系统和私有软件系统的成本差别。这些研究分析了除授权费用以外的多种成本因素,包括维护费用,人员开支和服务中断的机会成本。自由/开源软件在以下一些研究中获得好评:
* Robert Frances 集团进行的一项 TCO 研究发现 GNU/Linux 的成本只是微软 Windows 系统的40%,是升阳 Solaris 系统的14%[16]。
* NetProject 在报告中说 GNU/Linux 的 TCO 是微软 Windows TCO 的35%[17]。值得注意的是节约的并不仅仅是授权费用,也包括使用 GNU/Linux 后减少技术支持人员和软件更新次数节约的费用。
* Gartern 报告说在不变配置的情况下使用 GNU/Linux 比使用 Windows XP 节省了15%的总体拥有成本[18]。
著名的金融管理公司美林集团在最近的报告中认为 GNU/Linux 可以极大地降低成本。他们的 TCO 研究显示最大的成本节约不是软件授权成本而是人员和硬件的成本。[19]
直接费用的节约——一个例子
澳大利亚的 Cybersource[20] 通过比较提供类似功能的微软产品和自由/开源软件产品分析了自由/开源软件节约的费用。这项名为“Linux 对 Windows:底线”的研究,比较了三个假想的公司可能的费用削减。所有的金额单位均为美元:
| 微软方案 | Linux/FOSS 方案 | |
| 甲公司:50名用户 | $87,988 | $80 |
| 乙公司:100名用户 | $136,734 | $80 |
| 丙公司:250名用户 | $282,974 | $80 |
注:采用自由开源软件而非微软方案节约的费用随着用户数量的增加而增多——规模越大,节约越多。因此大的组织有更大的经济驱动使他们转移到自由/开源软件平台。
Cybersource 的研究非常直观,只比较软件包的费用。下面的两个表格列出了50名用户的公司采用微软和自由/开源软件两种方案的软件价格。
| 微软方案软件价格 | ||
|---|---|---|
| 软件名称 | 拷贝数 | 花费 |
| Norton Antivirus 2002 | 50 | $2,498 |
| MS Internet Information Server | 2 | $0 |
| MS Windows 2000 Advanced Server | 5 | $19,995 |
| MS Commerce Server | 1 | $12,333 |
| MS ISA Standard Server 2000 | 1 | $1,499 |
| MS SQL Server 2000 | 1 | $4,999 |
| MS Exchange Standard Server 2000 | 1 | $1,299 |
| Windows XP Professional | 50 | $14,950 |
| MS Visual Studio 6.0 | 3 | $3,237 |
| MS Office Standard | 50 | $23,950 |
| Adobe Photoshop 6 | 2 | $1,218 |
| 附加访问授权 | 30 | $2,010 |
| 合计 | $87,988 |
| 自由/开源软件价格 | ||
|---|---|---|
| 软件名称 | 拷贝数 | 花费 |
| Linux 发行版本(如 Red Hat 9.0) | 1 | $80 |
| Apache (Web 服务器) | $0 | |
| Squid (代理服务器) | $0 | |
| PostgreSQL (数据库) | $0 | |
| iptables (防火墙) | $0 | |
| Sendmail/Postfix (邮件服务器) | $0 | |
| KDevelop (集成开发环境) | $0 | |
| GIMP (图形) | $0 | |
| Open Office (办公套件) | $0 | |
| OSCommerce (电子商务套件) | $0 | |
| 合计 | $80 |
注:当用户数量增加时 GNU/Linux 软件解决方案的价格保持不变。这是因为 GNU/Linux 的授权不限定数量,而微软和其他私有软件的授权对增加的每个用户有附加的费用。
公共事务机构的用户常常多得多,因此使用自由/开源软件可以节省更多。比如,瑞典政府每年节约了10亿美元,而丹麦政府也节省了4.8亿到7.3亿美元[21]。
Cybersourcei of Australia has done an analysis of FOSS savings based on a comparison between Microsoft products and FOSS-based software that provide similar functionalities. The study, “Linux vs. Windows: The Bottom Line”, looked at potential savings for three hypothetical companies (A: 50 users; B: 100 users; and C: 250 users). All numbers are in US dollars:
Microsoft Solution
Linux/FOSS Solution
Savings
Company A: 50 Users
$87,988
$80
$87,908
Company B: 100 Users
$136,734
$80
$136,654
Company C: 250 Users
$282,974
$80
$282,894
Note: The savings achieved from implementing the FOSS solution instead of the Microsoft solution actually increases with the number of users—the bigger the outfit, the greater the savings. The financial incentives for migrating to FOSS increase with the size of the organization.
The Cybersource study is straightforward, comparing nothing more than the costs of software packages. The following two tables list the prices of two software solutions, Microsoft and FOSS, for a company of 50 users.
Microsoft Solution Software Cost
Software
Copies
Cost
Norton Antivirus 2002
50
$2,498
MS Internet Information Server
2
$0
MS Windows 2000 Advanced Server
5
$19,995
MS Commerce Server
1
$12,333
MS ISA Standard Server 2000
1
$1,499
MS SQL Server 2000
1
$4,999
MS Exchange Standard Server 2000
1
$1,299
Windows XP Professional
50
$14,950
MS Visual Studio 6.0
3
$3,237
MS Office Standard
50
$23,950
Adobe Photoshop 6
2
$1,218
Additional Client Access Licenses
30
$2,010
Total
$87,988
FOSS Solution Software Cost
Software
Copies
Cost
Linux Distribution (eg Red Hat 9.0)
1
$80
Apache (Web server)
$0
Squid (Proxy server)
$0
PostgreSQL (Database)
$0
iptables (Firewall)
$0
Sendmail/Postfix (Mail servers)
$0
KDevelop (IDE)
$0
GIMP (Graphics)
$0
Open Office (Productivity suite)
$0
OSCommerce (e-Commerce suite)
$0
Total
$80
Note: The cost of the GNU/Linux software solution remains fixed even when the number of users increases. This is because the licensing for GNU/Linux is not limited, whereas there are additional costs per user in licensing Microsoft and other proprietary software.
Public sector organizations often have far more users, which means even more dramatic savings. For example, the government of Sweden has identified savings of $1 billion a year while the government of Denmark has identified savings of between $480 million to $730 millionii.
政府用自由/开源软件做什么?
有哪些成功的自由/开源项目?
世界各地的许多政府都开始注意到自由/开源软件并启动了项目以利用它们。许多这样的项目还处于早期阶段,但明显的趋势是将自由/开源软件作为自有体系和开发政策的一部分。据报道,除了推荐自由/开源软件解决方案的大量报告和白皮书,世界各地有70条立法提案强制或鼓励使用自由软件[38]。其中有几部法律是国家级的,而大多数是省级或市级的法案。以下是世界各地一些最值得注意的进展。
=欧洲=
欧洲不仅有一大批自由/开源软件开发者,而且其行政部门对自由/开源软件有很强烈的兴趣。特别是以德国、法国和英国为代表的欧盟正领导着自由/开源软件的开发。
==欧盟==
欧盟撰写了一篇讨论文稿,强调开放标准和在合适的领域提倡自由/开源软件。这篇名为“连接欧洲:电子政府服务的相互可操作性”的论文,关注连接不同国家的电子政务系统,并对过去“产生了封闭的、垂直的、规模不变的而且常常是私有的信息系统”[39]的开发方式提出了批评。这篇论文是 eEurope 计划的一部分。欧盟也建立了自由/开源软件竞争力中心并资助了一些与健康服务相关的应用的开发[40]。
==德国==
德国有许多不同的项目同时进行。德国议会的150台服务器使用 Linux [41],而慕尼黑市在微软突然的降价条件[42]面前仍然计划将14,000台桌面计算机换为 Linux 系统。德国警察部门也正在将11,000台终端换为 Linux 系统。有趣的是价格并不总是大规模平台迁移的原因。德国内务部长 Otto Schilly 说:“我们通过避免单一化提高了计算机系统的安全性,也降低了对单一供应商的依赖。”[43]德国议会在2001年决定自由/开源软件产品在任何其应用能够降低成本的场合都应当被使用 [44]。财政部使用了一套支持15,000名用户的基于 Linux 和 Apache 的内部网系统[45]。
==法国==
官方的政府部门信息技术和通讯局(Agency for Technologies of Information and Communication in Administration)的目的之一是“鼓励政府部门使用自由软件和开放标准。”[46]海关和间接税管理局也由于安全理由迁移到了 Linux 平台。法国的电子政务管理部门强制所有公共管理机构使用开放标准以保证相互可操作性 [48]。
==英国==
英国在最近才开始指定关于采用自由/开源软件的政策,但至今的其他政策态度都有利于自由/开源软件。英国主要想避免对私有软件的依赖问题,并制定了“在所有将来的信息技术开发中只使用支持开放标准和要求的软件以保证互操作性”的政策 [49]。对自由/开源软件最积极的推动者之一是国家健康服务,其部分原因是无力支付私有软件的费用迫使医院转向使用 Linux [50]。
==芬兰==
Linux 之父的祖国顺理成章地应该是自由/开源软件界的活跃角色。一项计划是把整个 Turku 市的所有桌面系统逐步迁移到 Linux 和 Open Office。目前200台计算机的试点计划正在进行中。
芬兰政府据报道也正在考虑把所有桌面系统更换为 Linux ,这涉及多达 147,000 台计算机 [51]。
=美洲=
==美国==
虽然美国联邦政府并没有官方的自由/开源软件政策,在州一级却有一些通过支持自由/开源软件的法规的尝试。这样的州包括加利福尼亚[52],得克萨斯[53],以及俄勒冈[54]。至今还没有法案被正式通过,但这样的势头近期内不会减缓。
关于美国政府使用自由/开源软件的正式信息很难找到,但 MITRE 公司的一份调查显示美国国防部共使用了115种不同的自由/开源软件,并有251份使用的例子[55]。此外,有多份报告推荐在美国联邦政府使用自由/开源软件,其中由总统信息技术顾问团(President's Information Technology Advisory Committee, PITAC)编写的一份报告推荐“美国联邦政府鼓励将开源软件开发作为高端计算软件开发的一条新路”[56]。
一些较小的公共机构转换到了自由/开源软件平台。最广为人知的例子是佛罗里达的 Largo 市。他们让900名公务员使用 GNU/Linux,并节约了一百万美元的硬件和软件成本[57]。Largo 市并不仅仅使用 Linux 操作系统,而且把整个计算方式改为瘦客户端模式(目前的微软 Windows 系统无法做到这点)并因此节省了大量的硬件成本。得克萨斯的休斯敦也在微软提出一个1,200万美元的长期授权方案后迁移到了自由/开源软件平台[58]。
==秘鲁==
秘鲁作为世界上首先提出在政府采购中支持自由/开源软件的法规的国家而在自由/开源软件社区中享有盛名。这些法规带来的舆论,微软的反应和立法的支持者 Edgar David Villanueva Nu\~nez 博士的强有力的回应将会在信息技术媒体上占据很长一段时间。Nu\~nez 博士的一些回应如下:
“为保证公民对公共信息的自由获取,数据编码方式必然不能受制于单一的供应商。使用标准和开放的格式并在必要是开发与之兼容的自由软件能够保证这样的自由获取。
“为了保证公共数据的永久性,软件的可用性和维护不能依赖于供应商的善意,或者他们的垄断条款。因此国家需要能够获得源码的系统以保证其进一步的开发。”[59]
虽然法案至今未能通过(由于微软一份55万美元的捐赠和来自美国大使馆的压力),秘鲁法案背后的理由是任何一个需要处理公共数据的政府应当考虑的。
==巴西==
巴西政府准备在未来3年内把政府和国有机构的80%的计算机迁移到 Linux 平台。试点计划正在进行,缓慢渐进的迁移计划也已制定。政府设立了“软件自由实施小组”推动迁移进程。这一举动的理由包括降低成本,增加本地软件开发和“知识获取的民主化”[60]。
=亚太地区=
==区域情况==
发达国家和发展中国家并存的亚太地区,自由/开源软件的使用和开发都非常活跃。这个地区内的三个大国——日本,南韩和中国——最近都宣布了开发适应其各自需要的自由/开源操作系统的计划[61]。
==中国==
中国在未来几年里将成为自由/开源软件的重要阵地。自由/开源软件在该国的使用发展势头迅猛,仅 Linux 的增长在2003年估计就达到175%[62]。
这样显著的增长的一个主要的推动者是中国政府本身。它的目标之一是建立“不会落入外国知识产权陷阱的”硬件和软件工业[63]。中国正试图发展自己的技术产业,而不是依赖于外国硬件和软件厂商,而自由/开源软件很好地满足了它的软件需求。最近,中国政府宣布政府各部门禁止采购外国生产的软件,从而有效地避免了向微软和甲骨文这样的私有软件厂商购买软件[64]。
除了支持本地化的 GNU/Linux 发行版本(红旗 Linux,蓝点 Linux 等),中国也在政府一级采用自由/开源软件方案。北京市自2001年开始启动了将2,000台桌面计算机的操作系统更换为红旗 Linux 的计划[65]。中国邮政与 IBM 签订了协议,在1,200所分局运行 GNU/Linux 系统[66]。虽然这些项目只涉及中国政府部门的一小部分,它们也为未来的迁移提供了基础。
2002年1月启动的“扬帆”和“启航”计划是北京市政府计算机化工程的一部分。这两个计划的目标是开发功能、可靠性和易用性与微软 Windows 98 相当的本地化 GNU/Linux 操作系统。超过150名工程师已经完成了初步目标,开发出了基本的操作系统,办公套件,浏览器和邮件客户端。计划最新的目标包括字体的开发和向 GNU/Linux 迁移政府的应用软件[67]。
中国正在与日本和南韩合作进行一个自由/开源软件联合开发计划,涉及从操作系统到中间件和桌面应用等各种类型的软件[68]。
==印度==
虽然印度联邦政府目前并没有对自由/开源软件和私有软件的问题正式表态[69],但印度是自由/开源软件的重要开发国。在部门一级有很多项目:
在邦一级,也有几个自由/开源软件项目。最有名的是邦长官 Digvijay Singh 证实的在 Madhya Pradesh 邦政府的电子政务和创业项目中使用 Linux 的计划[71]。Red Hat 已经在印度学校的6,000台桌面计算机上安装了它的 Linux 发行版[72],今后可能还会安装更多。Kerala 邦也有一些正在进行的项目,包括电子政府和教育方面。
其他已宣布的项目在微软2002年大作宣传的投资活动之后没有进一步的消息[73]。
==中国台湾==
2003年,台湾启动了为期两年的“国家开源计划”,目标是建设可以在政府和教育系统取代所有私有软件的软件产业。这个计划主要的动机是减少对垄断供应商的依赖可能带来的开支节省。“国家计算中心”正在起草将教育系统转换到自由/开源软件的方案以“提供多样化的信息技术教育环境并确保人民享有信息自由的权利。”[74]。这一计划有望使政府节约20亿新台币,而全社会的成本节约可达100亿新台币。
==泰国==
《曼谷邮报》2003年6月23日的一篇文章报道说泰国 ICT 部定下了在2003年底以前在5%的政府计算机系统中安装 Linux 的目标。项目的预算是1000万铢。最终的目标是在50%的政府计算机系统上安装 Linux。这个目标没有设置完成时间,但试点计划已在进行之中。
泰国的低价电脑计划也迫使微软用40美元的价格提供 Windows XP 操作系统和 Office 套件,这是目前世界最低的价格(2003年第3季度)[75]。
==马来西亚==
政府自2001年11月起表示了对自由/开源软件的支持。2002年4月,马来西亚计算机和多媒体行业协会(the Association of Computer and Multimedia Industry of Malaysia, PIKOM)的报告中声称马来西亚从此“正式接纳开源软件”[76]。最初的部署将从服务器开始,然后逐渐转向桌面系统以减少实施中的问题。
马来西亚在2002年7月还推出了基于自由/开源软件的廉价电脑 Komnas [77]。它安装了一种 Linux 的本地化版本,包括办公套件、浏览器和各种应用程序。
==日本==
由于微软 Windows 软件的安全问题,日本正在考虑将其电子政府系统迁移到自由/开源平台[78]。也有报道称官方正在组织一个专家小组研究自由/开源软件的部署。同时,日本政府正在将其整个工资系统迁移到 GNU/Linux 平台。这次转换估计将节省一半的运行费用,特别是硬件的维护费用[79]。
=其他地区=
==非洲==
南非政府的政策鼓励尽量使用自由/开源系统,除非有不可抗的理由要求使用私有软件[80]。这一政策的理由是传统的私有软件模式使南非只能进口软件而对软件开发几乎没有任何干预和影响。自由/开源软件系统有望改变这种情况。
坦桑尼亚也由于成本原因正在政府中使用自由/开源软件系统,而据报道乌干达、加纳和赞比亚也正在向自由/开源软件迁移[81]。
Various governments around the world have begun to take notice of FOSS and launch initiatives to reap the benefits it poses. Many of these initiatives are still in the early stages, but there is a significant trend towards incorporating FOSS into procurement and development policies. Besides the large numbers of reports and white papers recommending FOSS solutions, there are reportedly about 70 proposed laws mandating or encouraging FOSS around the worldi. A few are at the national level while most are at much lower (state or city) levels. The following are highlights of some of the more noteworthy efforts from around the world.
Europe
Besides being home to a significant number of FOSS developers, Europe is also an area with strong government interests in FOSS. In particular, the European Union, Germany, France and the United Kingdom are leading the way in FOSS development.
European Union
The European Union has produced a working paper that stresses Open Standards and encourages Free/Open Source Software where appropriate. The paper, titled “Linking Up Europe: the Importance of Interoperability for E-government Services”, focuses on connecting the different national e-government systems together. It is also critical of past developments that “resulted in closed, vertical, un-scalable and frequently proprietary information systems"ii. This paper was produced as part of the eEurope initiative. The European Union is also creating FOSS competency centers and funding the development of certain health-related applicationsiii.
Germany
Germany has many different initiatives underway. The German Bundestag uses Linux on its 150 serversiv, while the city of Munich plans to switch over 14,000 desktops to Linux, despite Microsoft’s last minute price cutsv. The police force is also transitioning 11,000 clients to Linux. It is interesting to note that price is not always the factor cited for the large number of migrations to Linux. Germany’s Interior Minister, Otto Schilly, said, “We are raising computer security by avoiding a monoculture, and we are lowering dependence on a single supplier”vi. The German Parliament decided in 2001 that FOSS products should be used wherever costs could be decreased by their usagevii. The Ministry of Finance has an Apache/Linux-based intranet system that supports 15,000 usersviii.
France
The officially sanctioned Agency for Technologies of Information and Communication in Administration (ATICA) counts as part of its mission, “to encourage administrations to use free software and open standards.”ix The Authority for Customs and Indirect Taxation has also migrated to Linux, citing security reasonsx. The French agency for e-government has made open standards mandatory for all public administrations to guarantee full interoperabilityxi.
United Kingdom
The United Kingdom (UK) has only recently started formulating policy regarding FOSS procurement but the policies that have been produced to date have been favorable towards FOSS. The UK is primarily interested in avoiding the proprietary lock-in problem and has produced a policy to “only use products for interoperability that support open standards and specifications in all future IT developments”xii. One of the most active proponents of FOSS is the National Health Service, in part due to the insolvency of a proprietary software vendor that forced hospitals to migrate to Linuxxiii.
Finland
It is only fitting that the homeland of Linux’s creator is also active in the FOSS arena. One of the more public initiatives is the gradual migration of the city of Turku to Linux and Open Office. All desktop systems will be migrated, with the first pilot project of 200 computers in progress.
The Finnish State Administration is also reportedly considering replacing all of its desktops with Linux, affecting as many as 147,000 computersxiv.
Americas
United States
Although there is no official FOSS policy in the US federal government, there have been a number of attempts to pass pro-FOSS legislation at the state level. The states include Californiaxv, Texasxvi and Oregonxvii. To date none of the bills have been passed but the momentum is not expected to slow down anytime soon.
Finding detailed information about FOSS usage in the US government is difficult, but a survey from MITRE Corporation shows that the US Department of Defense used a total of 115 different FOSS applications, with 251 examples of their usexviii. Additionally, multiple reports recommending the use of FOSS in the US Federal government have appeared, including one by the (US) President’s Information Technology Advisory Committee (PITAC) which recommended that the US “Federal government should encourage the development of open source software as an alternate path for software development for high end computing”xix.
A few smaller public institutions have shifted over to FOSS platforms. The most well known is the City of Largo, Florida. They have transitioned 900 city employees over to GNU/Linux, saving over $1 million in both hardware and software costsxx. The City of Largo did more than just use Linux as an operating system; they changed their entire computing model to a thin-client system (something which Microsoft Windows currently cannot do) and as a result saved a huge amount in hardware costs. The city of Houston, Texas has also shifted systems over to a FOSS platform after Microsoft demanded that the city change to a $12 million dollar, multi-year licensing planxxi.
Peru
Peru is well known within the FOSS community for being one of the first countries in the world to have introduced legislation favoring FOSS in government procurement. The ensuing publicity, Microsoft’s response and Dr. Edgar David Villanueva Nuñez’s (legislation sponsor) powerful reply would occupy IT news media for quite a while. Among the choice quotes from Dr. Nunez’s response are:
To guarantee the free access of citizens to public information, it is indespensable (sic) that the encoding of data is not tied to a single provider. The use of standard and open formats gives a guarantee of this free access, if necessary through the creation of compatible free software.
To guarantee the permanence of public data, it is necessary that the usability and maintenance of the software does not depend on the goodwill of the suppliers, or on the monopoly conditions imposed by them. For this reason the State needs systems the development of which can be guaranteed due to the availability of the source code.xxii
Although the bill remains stalled (after a US$550,000 donation by Microsoft and pressure from the US Embassy), the reasoning behind the Peruvian bill is something all governments concerned with public data should consider.
Brazil
The Brazilian government plans to migrate 80 percent of all computers in state and state-owned institutions to Linux over the next three years. Pilot programs are already underway and a slow, gradual migration is planned. A “Chamber for the Implementation of Software Libre” has been set up by the government to smooth this transition. Among the reasons cited for this move are lower costs, increased production of local software and “democratiz(ing) access to knowledge”xxiii.
Asia Pacific
Regional
The Asia-Pacific region, with its mix of developed and developing nations, is a very active region in FOSS usage and development. Three of the major nations in the area—Japan, South Korea and China—have recently announced an initiative to create a FOSS operating system adapted to their regional needsxxiv.
China
China is set to be a major stronghold for FOSS over the next few years. FOSS usage in the country is growing rapidly, with Linux growth alone expected to be 175 percent in 2003xxv.
A primary driver of this massive growth is the Chinese government itself. One of its goals is to create both a hardware and software industry that “will not fall into the foreign intellectual property rights trap”xxvi. Rather than becoming dependent on foreign hardware and software vendors, China is trying to develop its local technology industry, and FOSS fits well into its software needs. Recently, the Chinese government announced that government departments would be barred from purchasing foreign produced software, effectively eliminating most proprietary software vendors such as Microsoft and Oraclexxvii.
Beyond sponsoring the creation of localized versions of GNU/Linux (RedFlag Linux, Blue Point Linux, etc.), China is also implementing FOSS solutions at the government level. The city of Beijing has had a project to convert 2,000 desktops to Red Flag Linux since 2001xxviii. China Post Office signed a deal with IBM to run GNU/Linux at 1,200 branch officesxxix. While these projects cover only a small fraction of the Chinese government, they also serve as capacity-building projects for future transitions.
The Yangfan and Qihang projects launched in January 2002 are part of the Beijing Municipal Government’s computerization project. The goal of these projects is to produce a localized GNU/Linux with functionality, consistency and ease of use matching that of Microsoft Windows 98. Over 150 engineers have completed their initial target of a basic operating system, office suite, web browser and email client. The latest iteration of the project includes font development and experimental transition of government applications to GNU/Linuxxxx.
China is also one of three countries (the other two are Japan and South Korea) that are forming a joint FOSS project that would cover the entire spectrum of software, from operating systems to middle ware and desktop applicationsxxxi.
India
While the Indian federal government currently has no official position on the FOSS/proprietary software issuexxxii, India represents a hotbed of FOSS development. There are many department level initiatives:
The Central Excise Department has moved 1,000 desktops to Linux.
The government supercomputer arm, the C-DAC, has moved over entirely to Linuxxxxiii.
The Supreme Court has several pilot projects under way.
At the state level, there have been several FOSS initiatives. The most prominent is the Madhya Pradesh state government’s plan to use Linux in its e-governance and Headstart programs, according to Chief Minister Digvijay Singhxxxiv. Red Hat has installed its version of Linux on over 6,000 desktops in schoolsxxxv, with more likely to come. The state of Kerala has also several initiatives underway, including e-government and educational initiatives.
Other state level initiatives have been announced, but little has been heard about these initiatives since Microsoft’s much-publicized investment in 2002xxxvi.
Taiwan
In 2003, Taiwan launched its “National Open Source Plan”, a two-year plan to build a software industry that could replace all of the proprietary software on government and educational systems. The primary drivers for this plan are the existing dependence on a monopoly supplier and the expected cost savings. The National Computer Center is drafting the basic plan while the national education system will be switched to FOSS “to provide a diverse IT education environment and ensure the people's rights to the freedom of information.”xxxvii Expected savings from the plan are about NT$2 billion for the government and NT$10 billion for the society as a whole.
Thailand
An article in the Bangkok Post on 23rd June 2003 reported that the Thailand ICT Ministry had set a target of five percent Linux installations on government systems by the end of 2003. A 10 million baht budget has been allocated. The ultimate goal is to have 50 percent of all government systems on Linux. No time frame has been set for the more ambitious target but pilot projects are already underway.
Thailand's low-cost PC program is also credited with forcing Microsoft to offer both the Windows XP operating system and Microsoft Office for a mere US$40, the lowest price available in the world at present (3rd quarter 2003)xxxviii.
Malaysia
The government has expressed support for FOSS solutions since November 2001. In April 2002, the Association of Computer and Multimedia Industry of Malaysia (PIKOM) produced a paper suggesting that Malaysia “officially embrace OSS” in April 2002xxxix. Initial deployment will start on servers and then gradually shift to desktops to minimize disruptions in operations.
Malaysia also launched in July 2002 Komnas, a low-cost computer based on FOSSxl. Komnas carries a localized version of Linux, including office suite, web browser and various utilities.
Japan
Japan is considering moving its e-government projects over to FOSS platforms due to security problems in Microsoft Windows softwarexli. Authorities are reportedly putting together a panel of experts to study FOSS deployment. In the meantime, the Japanese government is moving its entire payroll system over to a GNU/Linux platform. The switch is expected to cut operating costs by half, especially maintenance costs from hardwarexlii.
Other Regions
Africa
The South African government has a policy preferring FOSS systems unless there are compelling reasons otherwisexliii. Among the reasons cited for this preference is that with the traditional proprietary software model, South Africa ends up primarily being an importer of software, with little influence over how software is developed. It is hoped that using FOSS systems will change this.
Tanzania is also implementing FOSS systems in its government for cost reasons, while Uganda, Ghana and Zambia are also reportedly moving towards FOSSxliv.
自由/开源软件表面上是一个新的概念,但其实在因特网出现之前很久就已存在。自由/开源软件已经证明能够胜任高负荷的关键应用。有些自由/开源软件是使因特网成为可能的支柱。以下是几个成功的自由/开源软件项目。
BIND (域名服务器)
如果没有域名服务器(Domain Name Servers, DNS)的话像 yahoo.com 和 microsoft.com 这样的地址就不能使用。这些服务器把容易让人理解的域名和计算机能够识别的数字信息相互转换。没有这些服务器,用户就得强记像 202.187.94.12 这样的数字才能访问网站。
伯克利因特网名称域(Berkeley Internet Name Domain, BIND)服务运行在95%的域名服务器上[82],包括大部分的 DNS 根服务器。这些服务器保存着因特网上所有域名的主记录。BIND 是因特网软件联盟(Internet Software Consortium)在 BSD 授权方式下发布的自由/开源软件。
Apache (网页服务器)
负责接受和响应浏览器发送的请求的 Apache 网页服务器是今天万维网(World Wide Web, WWW)的基础。从1996年4月起,Apache 就是使用最多的网页服务器,目前占有62.53%的网页服务器市场[83]。这个份额比其最接近的竞争对手,微软的 IIS 服务器市场份额(27.17%)的两倍还要多。
这些数据每月都有波动。最新的数据可以从 Netcraft 的网页服务器调查网站获得,网址是:http://news.netcraft.com/archives/web_server_survey.html。
Sendmail (电子邮件服务器)
没有电子邮件,我们今天的因特网不会存在。自由/开源软件在这方面有一次成了主要的推动因素。邮件服务器(有时被称为邮件传送程序,Mail Transport Agent 或 MTA)的功能是把用户的电子邮件传送到目的地。像邮件转发和重定向,垃圾邮件拒收和中转这样的功能增加了邮件服务器的复杂程度。垃圾邮件(或称 spam)的问题使安全问题显得尤为重要,因为垃圾邮件发送者会夺取邮件服务器的控制权并影响一般用户的使用。
D. J. Bernstein 2001年的一项研究发现 Unix Sendmail 拥有最大的市场份额,占所有邮件服务器的42%。这比它的两个最大竞争者,占18%的微软 Exchange 和占17%的 Unix qmail 加起来还要多[84]。注意 qmail 是基于 Unix 的邮件服务器但授权条款限制性太强,并不是自由/开源软件。
OpenSSH (安全的网络管理工具)
当用户通过因特网连接到远程服务器时数据可能会经过多个子网络,因此安全成为一个主要问题。Secure Shell (SSH)协议允许系统管理员安全地远程管理服务器,因为他们传送的信息几乎不可能被截获和解码。
OpenSSH 是 SSH 协议的一个开源实现,其市场占有率从2000年的5%增长到2002年4月的66.8%。OpenSSH 的出现是当时限制性的标准 SSH 实现改变授权方式的结果。
Open Office (办公套件)
用于服务器的自由/开源软件已经相当强大,但自由/开源软件的桌面应用相对起步较晚。在过去私有的 StarOffice 代码基础上开发的 Open Office 是功能与微软 Office 相似的自由/开源软件,具有微软 Office 的大部分功能。它包括功能齐备的字处理软件、电子表格和演示软件。对于许多正在考虑从 Windows 桌面迁移到 Open Office 的用户来说,它的一个重要优点是能够顺利地读取微软 Office 生成的大部分文档。这一点方便了平台转换,因此 Open Office 在近期一些被广为宣传的从 Windows 向 Linux 迁移的计划中都被采用。虽然它目前并没有很大的市场份额,但随着更多的组织使用这个功能完整,价格低廉的软件,预计它将会有很大的发展。
While FOSS may seem a relatively new concept, it has actually been around since long before the Internet came into existence. FOSS has more than proven that it is ready for prime time, mission-critical usage. In some cases, it is the critical linchpin that makes the Internet possible. The following is a small sample of successful FOSS projects.
BIND (DNS Server)
Internet addresses such as yahoo.com or microsoft.com would not function if not for Domain Name Servers (DNS). These servers take these human-friendly names and convert them into the computer-friendly numeric addresses and vice-versa. Without these servers, users would have to memorize numbers such as 202.187.94.12 in order to use a website.
The Berkeley Internet Name Domain (BIND) server runs 95 percent of all DNS serversi, including most of the DNS root servers. These servers hold the master record of all domain names on the Internet. BIND is a FOSS program licensed under a BSD-style license by the Internet Software Consortium.
Apache (Web Server)
Responsible for receiving and fulfilling requests from web browsers, the Apache web server is one of the foundations of the World Wide Web (WWW) as we know it today. Apache has been the number one web server since April 1996 and currently commands 62.53 percent of the total web server marketii. That is more than double the market share (27.17 percent) of its closest competitor, Microsoft’s IIS server.
These figures fluctuate monthly of course. The latest figures can be found at Netcraft’s Web Server Survey site, at:
http://news.netcraft.com/archives/web_server_survey.html.
Sendmail (Email Server)
The Internet as we know it would not exist without email and once again, FOSS is one of the primary drivers. An email server’s (sometimes called a Mail Transport Agent or MTA) function is to deliver user email to its destination. Complex functionality, such as email forwarding and redirection, junk email rejection and routing, makes email servers rather complex systems. The problem of junk email (sometimes referred to as spam) makes security a critical feature, as spammers sending their unsolicited email to unsuspecting users would otherwise hijack an email server and render it useless to legitimate users.
A 2001 survey by D.J. Bernstein found that Unix Sendmail had the largest market share, at 42 percent of all email servers. This was larger than the share of its next two competitors combined, Microsoft Exchange and Unix qmail, with 18 percent and 17 percent, respectivelyiii. Note that qmail is a Unix-based email server but is not FOSS as its licensing terms are too restrictive.
OpenSSH (Secure Network Administration Tool)
Because Internet traffic can pass through multiple networks when a user connects into a remote server, security is a major concern. The Secure Shell (SSH) protocol allows system administrators to control their servers from a distance, safe in the knowledge that it is almost impossible to intercept and decipher the information that they may be transmitting.
OpenSSH, a FOSS implementation of the SSH protocol, has grown from a mere five percent of the market in 2000 to 66.8 percent of the market in April 2002. OpenSSH came into existence as a result of a restrictive licensing change in the standard SSH implementation at that time.
Open Office (Office Productivity Suite)
While FOSS products have been strong on the server side, FOSS desktop applications are relatively new. Open Office, which is based on the source code of the formerly proprietary StarOffice, is a FOSS equivalent of Microsoft Office, with most of its features. It includes a full-featured word processor, spreadsheet and presentation software. One of the advantages for many considering the shift from a Windows desktop environment to Open Office is that it reads most Microsoft Office documents without problems. This makes the transition relatively painless and Open Office has been used in recent high profile switches from Windows to Linux. While it does not have a very large market share as yet, its usage is expected to grow dramatically over time as more organizations use this full-featured, low-cost application.
什么是 Linux ?
Linux 是自由/开源软件吗?
从哪里获取 Linux?
Linux 内核是自由/开源软件,在 GNU 一般公共许可(GNU General Public License, GPL)下发布。但是,不同的 Linux 发行版本包含着不同的组件,其中一些可能不是自由/开源软件。例如,德国的 SuSE Linux 版本就包含有非自由/开源的 YaST (Yet another Setup Tool)安装程序。
Debian GNU/Linux [87] 是少数几个承诺在核心系统中只包括自由/开源软件组件(根据 OSI 的定义)的发行版本之一。
The Linux kernel is FOSS, licensed under the GNU General Public License. However, different distributions of Linux contain different components, some of which are not FOSS. For example, the German SuSE Linux distribution includes the non-FOSS YaST (Yet another Setup Tool) installation program.
The Debian GNU/Linuxi distribution is one of the few distributions that are committed to including only FOSS components (as defined by the Open Source Initiative) in its core distribution.
Linux 是当今大众媒体中关于自由/开源软件最热门的字眼。但是 Linux 这个词在被广泛使用的同时其含义也越来越宽泛。在关于自由/开源软件的讨论中,了解 Linux 的不同定义是非常重要的。
=作为内核的 Linux=
Linux 最初是 Linus Torvalds 开发的操作系统内核的名字。内核是操作系统的核心部分,它控制中央处理器,管理内存和硬件设备。操作系统内运行的不同程序也需要内核来协调和通信。一些 BSD 版本使用的 Mach 内核也是自由/开源核心中的一种。
核心在某种程度上是可以更换的。大多数自由/开源应用很容易就可以在 Mach 内核,Linux 内核甚至实验性的 GNU Hurd 内核上运行。但是,内核的类型对性能和自由/开源系统硬件平台的兼容性有很大影响。例如,尚不成熟的 GNU Hurd 内核只能在 x86 (PC)架构上运行。Linux 内核已被移植到几乎所有的计算架构上,包括 PlayStation 2 [85],大型机和嵌入式设备。
=作为发行版的 Linux =
Linux 如今更普遍地用于指称一个内容远不止于内核的 Linux 发行版本。Linux 发行版本(有时被称为 GNU/Linux 以强调 GNU 项目的巨大贡献)包括作为心脏的 Linux 核心以及所有用于实现完整操作系统功能的自由/开源软件组件,包括系统函数库,图形用户界面,各种数据库,网页服务器,email 程序,等等。同样的组件也包含在其他自由/开源的甚至是私有的操作系统中。例如 Linux 和 BSD 缺省的图形服务器 XFree86 也被用于私有的 Unix 系统,如 Solaris,HP-UX 和 IBM 的 AIX 系统。
新闻报道“慕尼黑最终倾向于 Linux”[86] 中的 Linux 是指包括字处理、绘图和 email 软件的发行版本。虽然 Linux 内核二进制文件的长度只占整个 Linux 发行版本的 0.25%,其重要性足以让整个发行版本被称为 Linux。
世界上没有统一的 Linux 发行版本。虽然所有的发行版本都包含 Linux 内核,但它们包括的自由/开源应用软件和配置都各有不同。Linux 有许多商业发行版本,其中一些可以免费获取,还有大量的定制发行版本满足不同用户的独特需求。虽然不同 Linux 发行版本的自由/开源内容大都相同,它们也对从高端服务器到桌面系统甚至嵌入式系统等不同的用途进行了优化。本地化的发行版本至少包括字体、输入法和必要的地区语言菜单翻译。
Linux is the most frequently heard FOSS buzzword in the mass media today. However, because of its common usage, the term Linux has been used to refer to broader and broader definitions. It is important to understand the different definitions of Linux to be able to follow the discussions on FOSS.
Linux as the kernel
Linux was originally the name of the kernel created by Linus Torvalds. A kernel is the critical center point of an operating system that controls CPU usage, memory management and hardware devices. It also mediates communication between the different programs running within the operating system. There are other FOSS kernels, including the Mach kernel that is the core of some of the BSD distributions.
Kernels are to a certain extent interchangeable. Most FOSS applications will run on a Mach kernel, Linux kernel or even the experimental GNU Hurd kernel, without too much difficulty. However, the kernel type greatly influences performance and the hardware platforms that the FOSS system can run on. For instance, the less mature GNU Hurd kernel can run only on the x86 (PC) architecture. The Linux kernel has been ported to run on almost any computing architecture, including the Playstation 2i, mainframes and embedded devices.
Linux as a distribution
The more common usage of Linux today refers to a Linux distribution, which includes far more than the kernel. The Linux distribution (sometimes referred to as the GNU/Linux distribution in recognition of the GNU Project’s significant contribution) contains the Linux kernel at its heart and all the FOSS components required to produce full operating system functionality. This includes the system libraries, GUI, various databases, web servers, email utilities, and others. These same components are also often found on other FOSS and even on proprietary operating systems. For instance, XFree86 is the default GUI foundation in Linux and BSD. XFree86 is also used on proprietary Unix systems such as Solaris, HP-UX and IBM’s AIX system.
Reports that say “Munich May Opt for Linux After All”ii refer to the Linux distribution, including word processing, printing and email software. Even though the Linux kernel forms less than 0.25 percent (binary file size) of a Linux distribution, its functionality is critical enough to allow the entire distribution to be called Linux.
There is no single Linux distribution. While all distributions contain the Linux kernel at its heart, the FOSS applications included and the configurationssupported vary. There are multiple commercial distributions, several freely available, and numerous customized distributions that are targeted to the unique needs of different users. While the FOSS contents of different Linux distributions are mostly identical, they are optimized for different uses such as for high-end servers, user-friendly desktops or even embedded systems. Localized distributions at a minimum include the fonts, input methods and menu translations necessary to use the software in the regional language.
二进制和源代码形式的自由/开源软件都可以从因特网免费下载。Linux 核心可以从 http://www.kernel.org/ 下载,其它应用程序也有各自的站点。但是,大部分用户倾向于获取整套 Linux 发行版本。下表列出了一些最知名的 Linux 发行者:
| 知名 Linux 发行者 | |
|---|---|
| Debian | www.debian.org |
| Redhat | www.redhat.com |
| SuSe | www.suse.com |
| Mandrake | www.mandrakelinux.com |
| SlackWare | www.slackware.com |
| TurboLinux | www.turbolinux.com |
从供应商处获取 Linux 成套发行版本的好处有很多。成套的 Linux 相对于“组装”的 Linux 最大的好处是节省了用户的时间:
FOSS, in binary and source code format, is free and downloadable from the Internet. The Linux kernel itself can be downloaded from http://www.kernel.org and other applications from their respective websites. However, most users tend to obtain distributions of Linux. The following is a table of some of the most popular distributors of Linux:
Popular Linux Distributors
Debian
www.debian.org
Redhat
www.redhat.com
SuSe
www.suse.com
Mandrake
www.mandrakelinux.com
SlackWare
www.slackware.com
TurboLinux
www.turbolinux.com
The advantages of going with distributions of Linux are many. The single most important advantage of vendor Linux over “stock” Linux is that it saves users time:
Download time: The Linux operating system and complementary software involve large files and long download times. A standard 56kbps modem would take at least 45 days to download a standard 3 CD distribution. Vendors also provide bundled software—browsers, server applications, office suite, etc.—that saves the users from the tedious work of hunting and downloading individual software packages.
Installation and compiling time: Many FOSS packages are downloadable only as source code. Users are required to compile and install the software themselves, assuming they are competent enough to do so. On a slow computer, compilation of source code may take days or even weeks. Vendor distributions of Linux often come precompiled and packaged with an easy installation system that takes less than an hour to install on most modern systems.
Quality assurance: Vendors typically perform extensive testing to ensure that all of the components work well together. Since FOSS projects are developed independently, there is always the chance that changes in one package have outdated another package. Vendors resolve these dependencies for the user, supplying an integrated package that works “out of the box”.
Learning time: Vendors provide manuals and publish reference material (for sale) for their products, making Linux much easier for the average user to learn.
自由/开源软件有哪些授权方式?
自由/开源软件能与私有软件联合使用吗?
自由/开源软件在一系列不同的许可下发布。有两种主要的许可类型,在其基础上衍生的许可则数不胜数。这两种基本的许可是 GNU (“GNU's not Unix”的迭代缩写)通用公共许可(General Public License, GPL)和 BSD 类许可。详细的许可列表可以在 FSF 的网站上找到:http://www.fsf.org/licenses/license-list.html。
=GNU 通用公共许可(GPL)=
这个许可的目的是永久保护用户的自由。用户几乎可以对 GPL 程序做任何他们想做的事,包括复制、分发和修改。许可的条件主要在软件传播给另一个用户时发生作用。
用 GPL 授权发布软件的主要要求是:
GPL 软件占自由/开源软件的大多数,多达73%的自由/开源软件项目使用 GPL 授权[88]。在自由/开源软件中使用 GPL 的主要动力是一旦软件按 GPL 发布,它将永远具有 GPL 授权。任何人不能用附加的授权夺取用户重发布和修改程序的自由。商业软件公司因此不能在获取并修改 GPL 软件后将其在不同的私有软件授权下出售。
GPL 的全文可以在 http://www.fsf.org/licenses/gpl.html 找到。
=BSD 类许可=
BSD (Berkeley System Distribution,伯克利系统发布版本)类许可因为与加州大学伯克利分校最初的授权方式一脉相承而得名。这一类许可是最宽松的授权制度之一,因为它们允许用户在遵守以下条件的前提下对软件做任何事:
早期的这类授权需要在所有宣传材料中提及加州大学伯克利分校(或任何发布原始软件的组织),但这一条款在最新版本中已经去掉了。
包括一些关键组件在内的大量的自由/开源软件项目都在 BSD 类许可下发布,例如:
BSD 类许可的代码很容易整合到商业应用软件中。过去就连微软也在 Windows 代码的网络部分使用了一些 BSD 的代码 [91]。许多公司把 Apache 网页服务器作为它们软件产品的一部分。与 GPL 不同的是 BSD 类许可不要求发布源代码,因此允许公司隐藏自己对初始代码的修改。公司也不用给用户查看、修改或发布被公司修改的部分代码的权力。
附录二是关于不同软件授权的更详细的列表。
FOSS is released under a variety of different licenses. There are two primary types of licenses and countless variants. The two main licenses are the GNU (recursive acronym for GNU’s not Unix) General Public License and the BSD-style licenses. A more detailed listing of licenses can be found on the FSF’s website at http://www.fsf.org/licenses/license-list.html.
The GNU General Public License (GPL)
This is designed to ensure that user freedoms under this license are protected in perpetuity. Users are allowed to do pretty much anything they want to a GPL program, including copying, distributing and modifying. The conditions of the license primarily affect the user when it is distributed to another user.
Among the key provisions of distributing GPL software are:
The distributor of a GPL program must also make available the source code to the recipient.
Any changes made to a GPL program by the distributor must also be licensed under the GPL.
Distributors may not place any non-GPL restrictions upon the users they distribute the GPL program to.
Recipients of GPL software are granted the same rights to copy, modify and distribute the software as the original distributor.
GPL software forms a significant majority of FOSS: as much as 73 percent of FOSS projectsi. One of the main motivations for the usage of the GPL in FOSS is assurance that once something is released as FOSS, it will remain so permanently. It is not possible to add additional licensing to strip away a user’s right to redistribute or modify the program. A commercial software company cannot take a GPL program, modify it and then sell it under a different, proprietary license.
The full text of the GPL can be found at http://www.fsf.org/licenses/gpl.html.
BSD-style Licenses
BSD-style (Berkeley System Distribution) licenses are so named because they are identical in spirit to the original license issued by the University of California, Berkeley. These are among the most permissive licenses possible, because they basically permit users to do anything they wish with the software as long as:
Attribution is given to the original licensor by including the original copyright notice in source code files; and No attempt is made to sue or hold the original licensor liable for damages.
Earlier versions required the acknowledgement of the University of California, Berkeley (or whichever organization released the original software) in all promotional material but this requirement has been dropped in most recent versions.
A large number of FOSS projects, including several critical components, are licensed under BSD-style licenses. Examples include:
The Apache Web Server – the #1 web server used on the Internet todayi
The XFree86 Window System - the foundation of almost all graphical user interfaces in FOSS systems
FreeBSD, NetBSD and OpenBSD – all variants based on the original Berkeley System Distribution (BSD) version of Unix; all are widely used on the Internet, especially FreeBSD, which runs Yahoo and Microsoft’s Hotmail servicesii
It is fairly easy to incorporate BSD-style licensed code into commercial applications. Even Microsoft has used some BSD code in the networking portions of its Windows codeiii in the past. Many companies include the Apache web server as part of their commercial software offerings. Unlike the GPL, BSD-style licenses do not require the distribution of source code, allowing a company to hide its modifications to the original code. Nor are companies required to grant users the right to view, modify or distribute the company’s modifications to the code.
A more detailed listing of different software licenses can be found in Annex II.
将自由/开源软件和私有软件联合使用是可能的,具体取决于“联合使用”的方式和软件的授权。在所有的自由/开源软件授权中,GNU GPL 许可是最需要注意的。它这样定义“联合使用”:
“集成两个程序是指将它们放在同一张光盘或同一个硬盘中。我们将这个说法(……)用于不同的程序,而不是单个程序的不同组件。这种情况下,如果一个程序使用 GPL 授权,它对其他的程序没有影响。而合并两个模块是指将其连接在一起形成一个较大的程序,如果其中任何一个部件采用 GPL 授权,则整个合并后的程序也必须按照 GPL 发布。如果你不能或不愿那样做,就不能将它们合并[92]。”
就是说,如果在自由/开源操作系统环境下使用一个私有应用程序,这个私有程序并不受自由/开源软件系统的授权制约。比如运行在 GNU/Linux 系统下的甲骨文数据库就是如此。
而使用 Gnome 应用程序框架写一个 GUI 应用程序是另一类例子。Gnome 应用程序框架通过向开发者提供统一的功能,使他们不必从头开始,从而加快了 GUI 程序的开发。Gnome 是在 GPL 授权下发布的。因为完成后的应用程序(经过编译后)将含有 Gnome 应用程序框架的代码,整个程序就必须按照 GPL 发布。
其他授权一般远没有这样严格。使用 BSD 类授权写一个与上例相同的应用程序只需要在源代码中保留最初授权人的著作权信息。下表显示了发布与 GPL 和 BSD 类授权的软件联合使用的程序时的不同。
| GPL 授权 | BSD 类授权 | |
| 必须发布原始代码 | 是 | 否 |
| 必须发布用户创建的源代码 | 是 | 否 |
| 用户创建的源代码必须按 GPL 发布 | 是 | 否 |
Combining FOSS with proprietary software is possible, depending on the manner of “combination” and on the specific license of the software. Of all the common FOSS licenses, the GNU GPL license is the one that requires the most care. It defines “combination” as follows:
Mere aggregation of two programs means putting them side by side on the same CD-ROM or hard disk. We use this term (…) where they are separate programs, not parts of a single program. In this case, if one of the programs is covered by the GPL, it has no effect on the other program. Combining two modules means connecting them together so that they form a single larger program. If either part is covered by the GPL, the whole combination must also be released under the GPL—if you can't, or won't, do that, you may not combine them.iv
In this case, if one uses a proprietary application in a FOSS operating system environment, the proprietary application is unaffected by the licensing of the FOSS system. An example of this is running an Oracle database on a GNU/Linux operating system.
An example of combining programs would be writing a GUI application using the Gnome application framework. The Gnome application framework speeds up the development of any GUI program by supplying functionality developers who would otherwise have to write from scratch. Gnome is licensed under the GPL. Because the completed application program (after a compiler has been through it) would contain source code from the Gnome application framework, the entire application would have to be licensed under the GPL.
Other licenses are usually far less strict. Writing the same application above using a BSD-style license would only require keeping the attributions to the original licensor within the source code. The matrix below highlights the differences when distributing software combined with GPL or BSD-style licensed software:
GPL Licensed BSD License
Must distribute original source code Yes No
Must distribute user-created source code Yes No
User-created source code must be GPL’ed Yes No
什么是本地化?什么是国际化?
本地化和国际化有哪些例子?
怎样本地化 GNU/Linux ?
根据本地化机构的定义,
本地化(localization)是针对某一本地特性,如语言、文化、习俗和特殊的市场需求制造或改造产品的过程。用户在使用得当地本地化的产品时,可以使用其自己的语言和文化习惯与产品互动。这个概念也表示所有用户可见的信息和所有用户文本(包括印刷版和电子版)都使用用户的语言和文化习惯。最后,正确地本地化的产品符合用户所在国家/地区的法规和其他规定。
国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式。它要求从产品中抽离所有的与语言,国家/地区和文化相关的元素。换言之,应用程序的功能和代码设计考虑在不同地区运行的需要,其代码简化了不同本地版本的生产。开发这样的程序的过程,就称为国际化 [93]。
According to the Localization Institute,
Localization is the process of creating or adapting a product to a specific locale, i.e., to the language, cultural context, conventions and market requirements of a specific target market. With a properly localized product, a user can interact with this product using his/her own language and cultural conventions. It also means that all user-visible messages and all user documentation (printed and electronic) use the language and cultural conventions of the user. Finally, the properly localized product meets all regulatory and other requirements of the user’s country/region.
Internationalization is a way of designing and producing products that can be easily adapted to different locales. This requires extracting all language, country/region and culturally dependent elements from a product. In other words, the process of developing an application whose feature design and code design do not make assumptions based on a single locale, and whose source code simplifies the creation of different local editions of a program, is called internationalization.[93]
“将 Linux 本地化为印度语可以引发一场深及国家草根阶层的革命。”[95]
——Venkatesh Hariharan 教授
本地化带来的挑战对于不同的国家和地区都是不同的。有些地区的本地化工作不会花费太多精力,有些地区则可能发现本地化需要大量地修改和定制程序。这是由当地的需求和 GNU/Linux 已有的地区设定之间的相似程度决定的。
本地化 GNU/Linux 有许多不同的方法,它们使用不同的编码、输入和现实系统。目前,最有效的方法是通过 Linux-Unicode-OpenType 模式进行本地化。以下是不同技术的简要介绍。
Unicode (www.unicode.org)
最新版本为4.0的 Unicode 编码系统是编码字符和符号的工业标准。它与国际标准组织(ISO)的通用字符集标准10646紧密相关。对两个标准的任何修改都在 ISO 和 Adobe,IBM,微软,Sybase,康柏,惠普,甲骨文,升阳,网景和爱立信组成的 Unicode 联合会之间获得协调。
Unicode 和 ISO 10646 的目标是纳入世界上的所有语言,每个字符编码对应一个“glyph”。字符编码的组合构成合成的 glyph ,用于表达复杂的字符(特别用于东亚语言)。最初的 Unicode 标准指定了16位字符集的编码方法,一共支持65,535种字符/符号。标准的较新版本扩展到了32位编码,支持超过一百万种不同字符和符号的编码。
Unicode 标准在加速的全球化进程中显得越来越重要。它是最适合因特网的编码系统。随着因特网在发达国家和发展中国家的越来越广泛的应用,将 Unicode 整合到软件和内容的开发中带来的益处是不容忽视的。
Open Type (www.adobe.com/type/opentype/main.html)
字体是本地化的“前端”,因而最受非技术用户的注意。因此,字体开发常被看作是本地化的唯一和最终工作。但是,虽然字体开发是本地化工作中最明显的部分,但它并不是唯一的重要部分。
就像我们提倡使用 Unicode 编码系统,我们也提倡使用 OpenType 字体文件格式作为本地化工作中字体开发工作的标准。
OpenType 是一种由微软和 Adobe 联合开发的跨平台字体文件格式。它基于 Unicode 编码标准并能在单一字体文件中提供多种语言的字符集。OpenType 字体可以包括超过 65,000 个 glyph,让多种语言能够用同一种字体显示,而传统的西方 Postscript 字体只支持256个 glyph。
使用 Linux-Unicode-OpenType 模型,大部分本地化工作包括以下几个步骤:
=Unicode 标准更正/加强=
设计一种能够处理世界上多不胜数的语言的编码是非常复杂的工作。巨大的工作量导致了某些语言错误和不当的编码,特别是那些信息和通讯技术不发达的国家的语言。而且,虽然 Unicode 包括了世界上所有主要语言的编码,对其他语言和方言(仅印度就有超过1,000种语言和方言)的编码都是不完整的甚至不存在。对于现有的 Unicode 标准没有覆盖的国家,有必要对现有 Unicode 标准进行审议并将改进建议提交 Unicode 联合会。
=字体开发=
开发出可用的 Unicode 标准后,下一个挑战是确保开发出自由的、跨平台的字体。没有字体,就不能在电子设备上显示、使用和处理任何语言。现代字体,特别是 OpenType 字体,不仅仅是语言的可视表现。OpenType 字体暗含着词语显示背后的逻辑,字符可以与周围的字符互动并改变它们。不基于西方字母的语言(阿拉伯语,老挝语,不丹语等等)常常没有开放的、非私有的字体。
字体开发并不是简单的工作。高质量的、专业的字体的开发可能需要数年时间。
=输入法=
下一步是用于输入这种语言的系统的标准化和部署。最常用的输入方法是通过键盘,许多国家都设计了标准键盘与本地语言字符之间的映射表。例如,有几种键盘方案经常被用来输入孟加拉语。缺乏统一的标准是字符集/编码、键盘映射、字体等等不兼容的结果,并进一步导致更多的不