正本清源,开源软件究竟是什么
维护用户的自由和权利
消除技术壁垒,创造良性的创新环境
$TONY: $
FOSS for the masses是专门为推广与普及FOSS理念而写的一本书。这个计划最先是在祈愿行发起,得到很多朋友的支持。我们现在使用的是洛基开放文化实验室的网站平台来沟通和协调整个写作计划。
Google中华区总裁李开复先生曾讲过,中国开源软件界要跟上欧美,就必须要有中国自己的SourceForge, Slashdot,很显然,上述两者皆为用户踊跃参与的社区。在欧美,以及巴西印度等地,开源软件已经不再是一个仅仅被黑客挂在嘴边的话题。越来越多各行各业的人士意识到FOSS的魅力之所在,并积极的为之作推广,这些用户与开源软件的开发者们组成FOSS社区,共同为我们的社会进步添砖加瓦。但是,在国内,我们普通民众对于FOSS基本上是不了解,更谈不上社区参与。我们希望能通过以一种通俗易懂的方式写FOSS,解开FOSS的神秘面纱,让更多的人参与到FOSS社区中来。
我们这个写作计划的目的有二:一为记录开源社区的成长历史,以此抛砖引玉;二为把开源合作这一概念引申到软件开发以外的领域,比如教育、设计等,并预言这一类的在线合作将成为未来网络发展的主流。
我觉得我们首先应该有这么一个观念,就是FOSS不仅仅是编程高手的玩具,举例如下:Google, Wikipedia, drupal, movable type, etc. 这一类我们在网上经常使用的工具之背后就是FOSS。另外,我们不应成为FOSS生态圈以外的旁观者——相反,我们应当将自身融入到这个全球的生态圈中去 ——假如我们要想在下一个50年的国际合作与竞争中取得胜利的话。加入这个生态圈就意味着一个不断学习的过程,一个与社区里的人一起呼吸、一起成长的过程、一个需要我们做出一定的贡献/付出的过程;我们这么做为的是给整个社区,以至整个社会创造更多的价值。不同的人可以以不同的方式做出个人的贡献:企业家可以在资金上对FOSS社区给予支持;艺术家和设计师可以通过为FOSS进行形象设计而提高自己的声望;会外语的人可以参与翻译;文章写的好的朋友可以写文档或者其他的介绍文章;而假如你仅仅是普通的用户,也可以通过编辑页面wiki 整个社区增值。
为什么说我们现在要宣传、推广FOSS这样的概念呢?我们不妨先问一问:假如我们不这么做会有什么后果?我们知道Apple公司在2007年推出了 iPhone手机,震撼一时。但是,iPhone的开发平台是苹果公司私有的,局外的人无法自由的参与到项目当中。许多草根程序员有能力写出运行于移动平台的非常cool的程序代码,但是由于iPhone的封闭性使得他们的创意得不到尽情的发挥。还有著名的维机百科与大英百科权威性之争……
在子页面里大家可以见到相关的书籍介绍以及网站推荐。也欢迎大家参与评论和添加新的内容。
我们计划在洛基开放文化实验室这个基于drupal的网站上进行这个写作计划。大家可以如wiki那样编辑页面,只是wiki的语法无法支持。还有就是可以在论坛发表自己关于写作计划的看法。我们认为集大家的智慧并有机的汇于一炉,才能写出一本好的关于开源的书。
欢迎开发者、普通用户以及对于开源感兴趣的社会各界人士参与本书的写作。
***我是TONY,曾在祈愿行上发起了这个FOSS写作计划项目。下面列出的是我自己的写作思路,欢迎大家添加评论。***
卷一:历史回溯
卷二:中外FOSS团体一览
卷三:FOSS精神
GNU
free as in freedom
spirit of opensource
ubuntu
free culture
better than free (Kevin Kelly)
卷四:FOSS·应用篇
教育
科研
政府
金融
环保
……
卷五:FOSS中国困境与出路
“假繁荣”?
仅仅是技术高手的玩物?
如何让FOSS说中文?
FOSS在中国之机遇分析
……
卷六:FOSS名人面对面·访谈录·人物特写
卷七:FOSS·行动篇
I want to pitch in, just tell me how!
卷八:参考书名、网站
useful_websites [from TONY's collection]
The Cathedral and the Bazaar http://www.catb.org/~esr/writings/cathedral-bazaar/
Perspectives on Free and Open Source Software http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=11216&mode=...
Free Software Foundation: http://www.fsf.org
Audio and Video Recordings about our Philosophy: http://www.gnu.org/philosophy/audio/audio.html
The Ubuntu Philosophy: http://www.ubuntu.com/ubuntu/philosophy
Open Life: The Philosophy of Open Source http://www.openlife.cc/onlinebook
David A. Wheeler’s website with elaborations on FOSS: http://www.dwheeler.com/
Wired Magazine:Opensource Everywhere http://www.wired.com/wired/archive/11.11/opensource.html
The Open Source Definition http://www.opensource.org/docs/definition.php
Why do Hackers Do What They Do? http://freesoftware.mit.edu/papers/lakhaniwolf.pdf
The Hackers' Ethics: http://project.cyberpunk.ru/idb/hacker_ethics.html
Search for "opensource" in Worldchanging.com: http://tinyurl.com/23kqsk
On the commons: http://onthecommons.org
洛基开放文化实验室: http://rl.rockiestech.com/
Opensource documentary the codebreaker, from BBC http://www.youtube.com/watch?v=LQkDrb14f9I
Revolution OS http://www.youtube.com/watch?v=T9WaI6lZBSU
$habpi: 草稿中$
BIOS项目的一点介绍在 http://rl.rockiestech.com/node/71 。我将在下面几个星期内写一篇详细点的中文介绍。
知识产权(IP,Intellectual Property)的壁垒。
和软件业面对的问题相似;可能更复杂一些。
“金大米”的故事
在世界一些地区,维他命A短缺导致大约50万人失明,也是200多万例死亡的部分愿因。“金大米”是通过基因工程手段产生的新品种,通过携带维他命A的上游原料来经过饮食中补充维他命A。
然而“金大米”要真正进入生产、造福世界,需要获取70多个专利的授权和6个材料转让协议。这就是现代生物技术常常面对的IP壁垒。值得庆幸的是,因为“金大米”在世界上引起的巨大关注,这些IP问题在各方积极配合下最终得到解决。
(“金大米”现在仍然面对绿色和平组织的抵制,这需要另文讲述。参见: http://rl.rockiestech.com/node/628 )
PIPRA
BIOS
就像软件开发者需要开发工具(软件库、编译器等),现代生物技术的研究也需要一些基本的工具和资源。
基因组研究:
你的基因,谁的专利?
参见:
http://www.bios.net/daisy/bios/2296/version/default/part/AttachmentData/...
http://www.congo-education.net/wealth-of-networks/ch-09.htm
http://en.wikipedia.org/wiki/Golden_rice
http://www.sciencemag.org/cgi/content/full/301/5630/174
《通论》和《本地化》基本翻译完毕,欢迎校对和反馈。
其他分册的翻译还需要大量努力。欢迎志愿者参与。
英文的PDF和wikibook链接可以在这个地址找到 (E-Primers on Free/Open Source Software):
http://www.apdip.net/elibrary#foss .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This series can be downloaded from: http://www.apdip.net/elibrary#foss .
In order to make the content table more accessible, the original part of introducint IOSN & FOSS ePrimers has been moved to the comment on this page below.
译文主体见两个子页面(前言、正文),由 inuyasha049 主译。
版本来源:
http://www.apdip.net/publications/fosseprimers/foss-edu.pdf
(wikibook格式 http://en.wikibooks.org/wiki/FOSS_Education )
©联合国发展计划署亚太地区发展信息项目(UNDP-APDIP)-2004年
网址: www.apdip.net
电子邮件: info@apdip.net
本刊物是在创作共用归属权许可2.0下发布的。
要了解详细的使用许可,请参阅下列内容:
creativecommons.org/licenses/by/2.0/legalcode
Elsevier公司
分工
Reed Elsevier公司印度私人有限公司
17A/1, Lajpat Nagar IV,
新德里- 110024
电话: 91-11-26447160
传真: 91-11-26447156
网站: www.asiaelsevier.com
国际标准书号(ISBN): 81-8147-565-8
学术出版社,巴特沃思-海涅曼,数码新闻,焦点新闻,摩根
考夫曼,北荷兰,珀盖蒙出版社是科学和技术的imprints
Elsevier公司。
印刷并装订于印度
目录
前言------------------------------------------------------------------------------------------------------------v
鸣谢------------------------------------------------------------------------------------------------------------vi
绪论------------------------------------------------------------------------------------------------------------1
为什么将FOSS用于教育?------------------------------------------------------------------------1
降低成本------------------------------------------------------------------------------------------1
可靠性,性能和安全性------------------------------------------------------------------------2
建立长期能力------------------------------------------------------------------------------------2
开放的哲学---------------------------------------------------------------------------------------2
鼓励创新------------------------------------------------------------------------------------------3
替代非法复制------------------------------------------------------------------------------------3
本地化的可能性---------------------------------------------------------------------------------3
从源代码中学习---------------------------------------------------------------------------------3
基础设施------------------------------------------------------------------------------------------------------4
教育机构的要求
服务器软件---------------------------------------------------------------------------------------------4
电子邮箱------------------------------------------------------------------------------------------5
文件和打印服务---------------------------------------------------------------------------------5
网络服务------------------------------------------------------------------------------------------5
网络服务器---------------------------------------------------------------------------------------5
其它服务器软件---------------------------------------------------------------------------------5
Linux终端服务器计划(LTSP)------------------------------------------------------------6
工作站软件---------------------------------------------------------------------------------------------7
办公套件------------------------------------------------------------------------------------------7
Web浏览器---------------------------------------------------------------------------------------8
多媒体---------------------------------------------------------------------------------------------8
其他教育软件------------------------------------------------------------------------------------9
节约成本------------------------------------------------------------------------------------------------10
管理------------------------------------------------------------------------------------------------------------12
图书馆管理系统---------------------------------------------------------------------------------------12
Koha------------------------------------------------------------------------------------------------12
学习管理系统------------------------------------------------------------------------------------------13
标准------------------------------------------------------------------------------------------------14
斯坦福大学的Coursework---------------------------------------------------------------------14
Moodle---------------------------------------------------------------------------------------------15
ATutor----------------------------------------------------------------------------------------------17
其他------------------------------------------------------------------------------------------------17
用开放源代码软件来教学---------------------------------------------------------------------------------18
计算机基础技术---------------------------------------------------------------------------------------18
中学------------------------------------------------------------------------------------------------------20
高等教育------------------------------------------------------------------------------------------------20
编程------------------------------------------------------------------------------------------------20
软件工程------------------------------------------------------------------------------------------21
开放内容------------------------------------------------------------------------------------------------------23
麻省理工学院OpenCourseWare------------------------------------------------------------------23
维基百科------------------------------------------------------------------------------------------------24
公共科学图书馆---------------------------------------------------------------------------------------24
采用开放源码软件进行研究------------------------------------------------------------------------------26
生物信息学---------------------------------------------------------------------------------------------26
高阶运算------------------------------------------------------------------------------------------------27
开放源码软件的培训---------------------------------------------------------------------------------------28
认证------------------------------------------------------------------------------------------------------28
Linux专业学会(LPI)------------------------------------------------------------------------28
Red Hat认证工程师(RHCE)---------------------------------------------------------------29
CompTIA Linux+ --------------------------------------------------------------------------------29
政策问题------------------------------------------------------------------------------------------------------30
软件采购------------------------------------------------------------------------------------------------30
移植------------------------------------------------------------------------------------------------------30
学校课程------------------------------------------------------------------------------------------------31
第三方机构课程---------------------------------------------------------------------------------------31
为教育开发开放源码软件------------------------------------------------------------------------31
研究授权------------------------------------------------------------------------------------------------31
培训------------------------------------------------------------------------------------------------------32
术语表---------------------------------------------------------------------------------------------------------33
更深层次读物---------------------------------------------------------------------------------------------37
FOSS: Education
Author: Tan Wooi Tong
© UNDP-APDIP, Elsevier, 2004, 40 pages
ISBN 81-8147-565-8
Table of Contents
* Preface
* Acknowledgements
* Introduction
* Infrastructure
* Administration
* Teaching IT with FOSS
* Open Content
* Research using FOSS
* Training in FOSS
* Policy Issues
* Glossary
* Further Readings
* About the Author
* About APDIP
* About IOSN
$inuyasha049
前言
自由/开放源码软件(FOSS) ,是近年才出现的现象,它有可能带来一场软件产业的革命。在服务器软件部分,它已经有了一个强有力的立足点,并在某些软件种类方面处于全球市场占有率的领先地位。在桌面电脑应用软件中它也占有一席之地,并预示了在不久的将来,它在桌面上的使用会有重大意义。
在全球范围内,特别是发展中国家对自由/开放源码软件的兴趣日益增加。各国政府正考虑政策,以促进其使用,企业开始认识到它的潜力,还有其他各种行业都对其呈现出的本地化的机会给予越来越多的注意力。
在很多领域都可以感受到自由/开放源码软件的影响。这本引论中,我们把专注于自由/开放源码软件在教育方面以及在中小学校,大中专和大学中所起的作用。
信息通信技术(ICTs)有提高教育质量的潜力。但是,教育机构往往面对财政拮据的情况。资源和高成本信息通信技术的竞争需求是为教育机构提供信息通信技术设施的一个重大障碍。开放源码软件具有通过减少软件成本从而降低总体成本的潜力。它是信息通信技术设施的一个重要要素。除成本效益外,在教育方面使用自由/开放源码软件还有许多其他优点,包括教学效益等。
这本引论旨在帮助政策制定者和决策者来理解在教育方面自由/开放源码软件潜在的用途。至于在何处使用它,怎样使用它,为什么应该使用它还有出版物都包括在内。尤其是在政府教育部门,中小学和大学的管理者,教学人员和研究人员应该会觉得这本引论是有帮助的。
这本引论是国际开源组织(IOSN)给您的自由/开放源码软件初级系列丛书的一部分,是联合国发展计划署亚太地区发展信息项目(UNDP-APDIP)的子项目之一。我们在此感谢参与制作本引论的所有人。同时还感谢加拿大国际发展研究中心(IDRC)慷慨的经济支持,否则,便这本引论就不可能面世。
Tan Wooi Tong
Kuala Lumpur
2004
鸣谢
作者感谢这本引论的评论家,Dr M Sasikumar (印度),Dr Nah Soo Hoe(马来西亚)和 Dr Onno Purbo (印度尼西亚),他们宝贵的评论和建议为这本引论做出了贡献。作者还感谢他在UNDP-APDIP的同事,Shahid Akhtar 和 Kenneth Wong的宝贵参与,以及其他所有为此付出努力的人,是他们使得制作这本引论变成可能的。
PREFACE
Free/Open Source Software (FOSS) is a recent phenomenon that has the potential to revolutionize the
software industry. It has already gained a strong foothold in the server software segment, with a leading
market share worldwide in some software categories. It is also gaining ground in desktop applications
and it has been predicted that its use on the desktop will become significant in the near future.
Interest in FOSS is growing globally, particularly in developing countries. Governments are considering
policies to promote its use, businesses are recognizing its potential and various other sectors are giving
increasing attention to the opportunity for localization that it presents.
The impact of FOSS will be felt in many areas. In this primer we focus on FOSS in education and the role
it can play in schools, colleges and universities.
Information and communication technologies (ICTs) have the potential to improve the quality of
education. However, educational institutions are often faced with financial constraints. Competing
demands for resources and the high costs of ICTs can be a major obstacle to providing ICT facilities in
educational institutions. FOSS has the potential to help lower the cost barrier by reducing the cost of
software, which is an important component of ICT facilities. Besides the cost benefits, there are numerous
other advantages in using FOSS in education, including pedagogical benefits.
This primer is intended to help policy-makers and decision-makers understand the potential use of FOSS
in education—where and how it can be used, why it should be used, and what issues are involved. In
particular, officials in ministries of education, school and university administrators, academic staff and
researchers should find this primer useful.
This primer is part of a series of primers on Free/Open Source Software brought to you by the
International Open Source Network (IOSN), an initiative of the UNDP’s Asia-Pacific Development
Information Programme (APDIP).We would like to thank all those who have been involved in the creation
of this primer. We would also like to thank the International Development Research Centre (IDRC) of
Canada for their generous financial support without which this primer would not have been written.
Tan Wooi Tong
Kuala Lumpur
2004
ACKNOWLEDGEMENT
The author would like to thank the reviewers of this primer, Dr M Sasikumar (India), Dr Nah Soo Hoe
(Malaysia) and Dr Onno Purbo (Indonesia), for their valuable comments and suggestions that have
contributed to the improvement of the primer. The author also thanks his colleagues at UNDP-
APDIP, Shahid Akhtar and Kenneth Wong, for their valuable inputs, and all others for their efforts
that have made the creation of this primer possible.
$inuyasha049
$首次参加翻译工作,以下《教育》全文的翻译,不知是否合适。希望大家给出建议和意见!能帮我修改那是再好不过了!谢谢啦!
$原文见 http://www.apdip.net/publications/fosseprimers/foss-edu.pdf
绪论
自由/开放源码软件是可随着源代码作为一个独特特征的软件。人们常常可免费使用。用户可以使用和发布软件。并且如果他们愿意,他们可以研究源代码,并进行修改,以切合他们的需求。修改过软件版本还可以进行再发布。相比之下,专有软件通过收费许可给用户,并且源代码通常被严密保护,而不是提供给用户。不缴付额外的许可费用而复制并散播专有软件是违法的。
自由软件和开放源码软件之间有着很好的区分。自由软件活动的重点在于与用户使用、学习、修改和再发布软件自由性相关的道德和伦理问题。开放源码的倡导者采用更加团体的方式,把重点放在开放源码软件开发模式的优势上。对于大多数用途而言,自由软件和开放源码软件可以认为是一样的。我们称它为自由/开放源码软件(FOSS)。关于FOSS综合方面的更多信息,请参考配套引论《Free/Open Source Software-A General Introduction》 (《自由/开放源码软件-通论》)可在www.iosn.net获取。
FOSS在教育方面起着重要的作用,特别是在发展中国家。这种情况的原因如下所述:在第二章,我们会更详细地探究在教育机构建立信息通信技术基础设施方面FOSS 如何使用,服务器软件和桌面应用软件的使用,还有由使用FOSS而带来潜在的成本节约。第三章,重点在于管理学术机构的FOSS,尤其是图书馆管理系统和学习管理系统。第四章讲的是如何在中小学和大学的信息技术教育中使用FOSS。第五章,虽然开放内容与FOSS没有直接联系,但是它产生于出版物内容相似原理的应用,并且在教育方面是很重要的。FOSS在研究领域的作用涵盖在第六章中。FOSS的培训和认证通常不是正规教育的一部分,但是由于其为FOSS在建立人力资源能力方面的重要性,我们将在第七章讨论它。在最后一章,我们为决策者在教育方面贯彻FOSS的考虑列出了政策问题。
为什么将FOSS用于教育?
降低成本
决策者作出关于信息通信技术在教育领域使用的决定所必须对付主要问题之一就是成本。提供通信基础设施,计算及网络硬件还有必须的软件的成本,不仅发展中国家就连发达国家的穷困地区会被吓倒。
FOSS能够通过减少软件成本从而降低进入信息通信技术的壁垒。FOSS最初的获得成本是可以忽略的。确实,通常可以免费的下载FOSS。如果带宽有限,那么从一张名义上收费的CD光盘来获取开源软件更为方便。但是每一位用户或者每一台电脑并没有许可费并且一旦一个副本被下载或者制作成可以使用的CD光盘,它就可以自由的散播。因此,获得FOSS的最初成本比获得每一位用户或每一台电脑都必须缴付许可费的专有软件的要低很多。FOSS的升级通常能够通过类似的方法获得,这使得升级成本也可以忽略不计。相比之下,即使升级成本可能比最初成本低,专有软件的升级通常还是需要缴费的。
可靠性,性能和安全性
降低成本并不是为什么服务器使用FOSS会如此普遍的唯一原因。人们认为FOSS具有更好的可靠性,性能和安全性。教育机构的管理者在关于本机构信息通信技术基础设施作出决定时,应该把这些考虑在内。这对于大型机构尤为重要。
FOSS的发展方法论趋向于保证软件的高质量。在大量开发人员的帮助下,BUG被迅速地清除,修改后的软件会更加可靠,尤其是更为成熟的服务器FOSS。例如:在Reasoning公司开发的一款数据库定量分析软件中,就发现FOSS数据库MySQL比专有数据库少6次错误。[ ]
一些研究也暗示了FOSS的性能比专有软件要好。例如:2001年和2002年PC杂志对文件服务器进行的性能测试比较了Samba在GNU/Linux和Windows 2000上的运行结果。Samba是一款FOSS文件服务器,它既可以在GNU/Linux平台上运行,也可以无风工作于运行Windows的工作站下。2002年的测试中发现Samba在GNU/Linux下的性能比在Windows 2000下的性能明显高出了近100%。[ ] 2003年IT Week Labs进行的测试指出与Windows相比Samba的后期版本性能差距扩大了。[ ] 有关其他性能比较研究的更多信息可以在Wheeler的论文中获得。[3]
要使FOSS和专有软件就安全性一较高下是很困难的。但还是有一些这方面的尝试的,并且Wheeler都概括了这些。[3] 这些对比表明了在安全性方面FOSS通常比专有软件要好。被引证的理由之一就是源代码的可用性。这些源代码允许第三方识别并解决漏洞。只有FOSS可以独立审核代码,而专有软件是不行的。
建立长期能力
有明确的迹象表明政府,工商业和其他机构正使用越来越多的FOSS。并且对熟悉FOSS的大学毕业生的需求也是有的。因此,为确保IT课程中FOSS的使用,任何可能的地方都应该做出相应的努力。学生们不仅要接触占主导地位的专用软件,同时还要有机会使用更多的软件,包括FOSS。
一些公司认识了到教育市场的重要性。因为今天的学生们乃是明天信息通信技术部门的员工。无论私人领地还是工作场所他们都也是这些技术的用户。因此,如果他们在受教育阶段接触了一些特定的产品,将来他们还会继续使用这些产品的。正是因为这个原因,这些公司才想尽办法来提供优惠,比如狂打折,来占领教育市场。
开放哲学
FOSS的开放哲学是与理论自由一致的,并且开放传播知识与信息是和学术界一致的。“所有艺术和科学的进步,其实就连人类所有的知识,都是开放共享观念、理论、学习和研究的结果。然而在很多校园系统中,电脑上使用的软件是关闭的或上锁的。这就使得教育者成为新时代基础信息审核机构中的一部分。”[ ]
电脑软件通常被用来做研究工作,并且在这些工作中专有软件和操作系统的使用与可证实原则相违背。因为封闭资源软件计算出的结果不能公开审查。而使用FOSS的研究结果,其有效性则是可以被证实的。因为源代码是可以检查的。
鼓励创新
很多创新来源于大学,还有许多FOSS最初是在理论环境中开发的。例如:1984年Richard Stallman 在麻省理工学院的人工智能实验室开始开发一款叫做“GNU”的免费操作系统。Linus Torvalds 在芬兰的赫尔辛基开始了开发Linux的工作。
一个FOSS流行的理论环境将鼓励全体程序员和学生来修改和测试,并且参与FOSS的开发最终可能会带来创新性的解决方案。
取代非法复制
负担不起许可费用的教育机构也许会借助于使用非法的专用软件副本。但使用FOSS,教育机构需要用多少软件副本就可以用多少,而不必顾忌它是用于理论目的或行政目的。
FOSS的使用也同样阻止了学生的盗版行为。他们中的很多人恶意提供专有软件许可副本的买卖。如果专有软件用于教学,学生们别无选择,只能去使用专有软件的非法副本在家或者在笔记本电脑上来做家庭作业。相比之下,在学校之外制作用来使用的FOSS副本却不受限制。
本地化的可能性
由于大多数的原创软件都是用英语开发的,非英语国家的教育机构可能不会从FOSS的使用中获益。然而,可以本地化正是FOSS的开放本性。这种本地化并不是必须包括原创开发人员的。而专有产品的本地化则要受经济利益的限制。当市场规模很小时,专有产品的本地化便没有市场动力。
从源代码中学习
FOSS的主要特征之一就是源代码可以供用户测试和修改。这就给了学生们从研究高质量的实际程序中学习的机会。相比之下,专有软件通常以二进制模式给出,并且源代码很少发布以供用户学习。
基础设施
教育机构的需求
不同的教育机构对信息通信技术有不同的需求,这取决于教育水平,提供课程的性质以及可用的资金。然而不变的是,对于教育机构中计算机实验室的基本计算机班级成员管理的需求。允许学生们完成作业,管理专门的信息通信技术班级成员,提供图书馆系统的使用权,能够使用学习管理系统和促进电子邮件交流。电脑的需求量取决于学生数量和该机构认为合理的学生-电脑比。
网络
实验室内的电脑通常都是通过局域网连通的。在教育环境中,绝大多数学生用户都是以“游牧式”的,并没有指定电脑。因此,这种情况下的设备必须能使学生们从网络中的任意一台电脑上都能工作。
因特网的连通性
与因特网的连接能力是教育机构应该努力去提供的基础需求。因为它能让向学生和理论研究人员访问网上可用的众多数据资源。它还使已经成为一种重要交流方式的电子邮件可用了。对教育机构而言,因特网是一种服务。它促进了机构的有效管理并且在教育者和学生之间提供了一种可以引导更有效学习的沟通渠道。e-learning和远程教育的贯彻也是有必要的。
安全性
有了与因特网的连通,就可以从因特网访问这个机构的网络。因而,拥有一道防火墙来防护未经授权用户的入侵是最基本的保障,尤其是如果有24小时因特网高速访问的。用户鉴定是必须的,以保证只有授权用户才能访问网络。
网络发布
在理论研究机构经常有对发布信息和提供网络资料访问的需求。这包括老师和讲师在线提供课程资料,学生提交网页,管理员在内联网发布信息和机构维持的公共网站。所有这些都需要合适的网络服务器硬件和软件。
服务器软件
一个组织信息通信技术技术设施的一个主要组成部分就是服务器。它提供了例如电子邮件,文件和打印服务等的各种服务。合适的软件是提供这些服务所必需的。FOSS已被认为是适合于这种用途的。按照不同的特点与等价的专有产品相比,FOSS在一定情况下拥有更高的市场占有率。
电子邮件
电子邮件服务的供应需要安装一台能够发送和传递信息的电子邮件服务器。一旦服务器被安装,就希望它能连续不出错的运行。中断会影响通信和组织内部的许多工作。因此,可靠性是电子邮件服务器软件要考虑的主要问题。其他要考虑的就是安全性和性能问题。一些健壮的FOSS电子邮件服务器例如Sendmail(www.sendmail.org )和Postfix(www.postfix.org )都是可用的并且正在成功地配置于很多组织包括教育机构中。与诸如Microsoft Exchange等的专有电子邮件服务器相比,FOSS电子邮件服务器配置更简单,对处理资源需求更少。
文件和打印服务
信息通信技术在教育机构的用法特点之一就是“游牧式”的用户。也就是说,学生能在不同的电脑上使用网络服务。这就要求文件服务器能够允许他们在一个中心服务器上而不是本地工作站上存储他们的作业和设置。任意工作站可能的打印需求就要求服务器软件能够完成上述功能。Samba(www.samba.org )就是一款运行在GNU/Linux下并能同时与运行Windows的工作站无缝结合的文件附带打印服务器的FOSS。
网络服务
将域名转换为IP地址需要域名系统(DNS)。最为广泛使用的DNS服务器是BIND(Berkeley Internet Name Domain)。它是自由软件。
每一台连接到网络的电脑都需要分配一个IP地址。这可以手动完成,但是最公平的还是由DHCP(Dynamic Host Configuration Protocol)服务器动态分配IP地址。绝大多数GNU/Linux的发布版本都包括一个DHCP服务器。
GNU/Linux由一个功能叫做IP表。它可以用来实现防火对入侵的安全保护。一些准完成的FOSS防火墙也能用,例如Shorewall(www.shorewall.net )。入侵检测工具是用来检测安全漏洞的。Snort(www.snort.org )就是一款这样的FOSS。
网络服务器
最流行的网络服务器就是Apache(www.apache.org ),它是自由/开放源码软件。它被誉为拥有全球所有网络服务器市场67%(2004年4月)的占有率。[ ] 它可以用来作为教育机构公共网站的主机和机构内联网的主机。通常它会和GNU/Linux操作系统,MySQL数据库服务器还有PHP脚本语言一起使用。所有的这些都是FOSS。他们的结合通常指的是LAMP-Linux , Apache , MySQL和PHP(可替换为Perl或Python)。
其他服务器软件
还有很多其他能够用于教育环境的自由/开放源码服务器软件,比如数据库管理系统,目录管理系统和邮件清单服务器。
最为有名的FOSS数据库管理系统是MySQL(www.mysql.com )和PostgreSQL(www.postgresql.org )。正如前面提到的,MySQL是建立动态网页经常使用的。作为数据库管理系统它兼容很多其他应用软件并且用于商业为主的企业应用软件和打包软件。各种教育应用软件例如学习管理系统和图书馆管理系统也用MySQL。
目录管理系统(CMS)通过提供可以独立使用而不需熟练掌握基础技术的这样一个平台来促进网络目录的创作、发布和管理。FOSS的目录管理系统的例子有PostNuke(www.postnuke.com) 和Plone(Plone.org )。PostNuke 是基于PHP和MySQL的,然而Plone却是基于Zope应用软件服务器的。Zope是用Python程序语言写的。在教育机构中,这种FOSS CMS的使用使得研究人员和学生为各种目的开发因特网和内联网网站相对的灵活些。
Mailing list是一种比较老的应用软件,用它可以进行在线讨论和协作。当一封邮件在邮件清单中确定了地址时,它会传送到邮件清单指定的人那里。虽然新闻组和基于网络的论坛提供类似功能的服务,但是mailing list在教育环境下可能还是有用的,尤其是因特网还未连通的地方。比较流行的FOSS mailing list 服务器是Majordomo(www.greatcircle.com/majordomo )和Mailman(www.list.org )。
这些FOSS服务器应用软件使得教育机构中的协作开发环境和成本最小化变成可能。这些软件以过去不可能的方式相互影响着理论研究人员,学生,家长及管理者。
Linux 终端服务器计划(LTSP)
桌面应用软件,例如浏览器,电子邮件客户端和办公套件都是教育设施的基础需求。即使是一个小型的计算机实验室,也需要在所有的电脑中安装这些应用软件。与其在每一个工作站上安装这些应用软件,倒不如使用“thin clients”可能会更简单,更便宜。这便是有网卡、显卡、显示器、键盘和鼠标但没有硬盘、光驱和操作系统的电脑。服务器处理所有的运算任务,包括运行应用软件,提供存储空间和管理文件。这就意味着廉价的硬件(或者旧的和捐赠的硬件)可以用作客户端。只要服务器安装了必要的外设和软件,维护就更简单了。
1999年启动的Linux 终端服务器工程(LTSP——www.ltsp.org)提供了建立这样一个无盘工作站所必需的软件。它提供了各种GNU/Linux发布版本和100,000多使用LTSP的站点。
实例:喀拉拉,印度
2002年,在喀拉拉的Kannur,当地议会成员和地方管理者发起了一项在学校中介绍电脑设施的计划。为了节约成本,大家决定Linux终端服务器计划(LTSP)的解决方案可以用来建造这些设施。
硬件由一家国有企业提供,LTSP解决方案由一家私人公司执行。由于这项计划涵盖了新硬件的安装,可能要用同样的处理部件(电脑、显卡、网卡、集线器和其他附件)。这能使整个安装变得单一化。LTSP服务器是一台带有CD光驱和硬盘的奔腾IV电脑。无盘工作站则是没有硬盘和CD光驱的赛扬机器。在被送到学校之前,所有的电脑都经过设置和脱站测试。每所学校最初都收到了一台服务器和3——5台工作站。
服务器运行了一个自定义版本的Red Hat和LTSP。安装的其他从服务器上运行的FOSS软件有OpenOffice套件,多媒体和网络应用软件,编程工具以及其他教育软件。
用LTSP来配置电脑设备能带来实质性的成本节约。因为能够在更多的学校中配置更多的电脑设备。现在有43所公立学校用上了他们自己的运行大量FOSS和GNU/Linux的电脑设备。老师们都接受过GNU/Linux系统的基础培训,并且老师和学生都良好接受对了这些电脑设备。
(有关这项计划的更多信息可在 s2s2net.netfirms.com/project.html 获得)
在启动期间,无盘工作站从服务器获得必需的网络信息并从服务器上下载操作系统。任何服务器支持的程序都可以从工作站上运行。应该注意的是使用LTSP的网络装设备该是GNU/Linux专用网络并且首先适合于新的装置。
工作站软件
虽然采用FOSS的桌面正在增多,但是其普及率还是相对较低的。微软的Windows 估计仍然以90%的市场占有率统治着桌面电脑领域。但是,相信基于GNU/Linux的桌面还是适合许多用户的。[ ] GNU/Linux桌面应用软件的特征能与专有软件相比,其日益增长的可用性将鼓励人们更广泛的采用它。一份与Windows下运行的专有软件对等的FOSS桌面应用软件清单可在 linuxshop.ru/linuxbegin/win-lin-soften/table.shtml 获得
然而应该注意的是没有必要为了在桌面上使用FOSS而丢弃专有桌面操作系统。例如,OpenOffice,Mozilla,和GIMP等程序在Windows平台下也是可用的。因此,FOSS程序可以被轻松的下载、安装和测试,而不必替换原来存在的专有操作系统。
实际上,当考虑桌面FOSS入门的时候有很多选择,它们是:
▲保留Windows的使用并且在此平台上运行FOSS应用软件;
▲用GNU/Linux替换Windows;
▲安装双引导系统,它可以在启动时让用户在Windows和GNU/Linux之间选择;
▲用适当的软件在GNU/Linux下运行Windows或者在Windows下运行GNU/Linux。
办公套件
在教育机构中,工作人员(行政人员和研究人员)和学生都需要一套由文字处理软件,电子制表软件和视频软件组成的办公软件。微软的Office是目前使用最为广泛的套件。然而,FOSS办公套件,OpenOffice(www.openoffice.org ),由于其性能正变得能与专有的Office套件相媲美,所以正越来越多的受到青睐。正如前面所提到的,OpenOffice可以在多种平台上运行,并且不必在使用之前完全移植到Linux平台上。实际上,它能在Windows上和微软的Office同时运行。最新版本的OpenOffice的一个显著特征就是能够直接输出pdf格式的文件。而与其相应的专有软件则没有这种功能。
虽然与现有的专有办公套件的协同工作能力不够完美,但对教育机构而言OpenOffice仍是一个吸引人的选择。其外观和感觉都很像微软的Office。绝大多数情况下,学生和员工只用到了办公套件的基本功能,而这些功能OpenOffice套件中都有。
还有其他FOSS办公套件可用,但是它们没有OpenOffice那么完善。KOffice 就是在KDE桌面上运行的一款办公套件,还有GNOME Office 是在GNOME桌面上运行的办公套件。GNOME Office中包含的文字处理软件(Abiword)和电子制表软件(Gnumeric)其质量是很高的。
AbiWord(www.abiword.com )能工作在包括Windows在内的绝大多数主流操作系统下,而且它还支持多种语言。它能够读写大多数Word格式的文档,外观和感受都和Word一样。AbiWord原始的文件格式采用公开标准的可扩展标记语言(XML)。这就意味着AbiWord文件可以用任何使用适当XML解析器的软件来阅读。
图一 OpenOffice中的文字处理器
Gnumeric(www.gnome.org/projects/gnumeric )是一款正蓬勃发展的快速完善的电子制表软件。它支持多种电子表格文件格式并能良好的支持Excel文件。Excel中的很多工作表函数Gnumeric中也支持。但是目前它还不能在Windows下运行。人们正在为其在Windows下的可用性而努力着。
网络浏览器
有很多可用的开放源码浏览器,比如Mozilla,Galeon和Konqueror。Mozilla(www.mozilla.org )是一款流行的浏览器,它基于Netscape发布的源码。除了浏览器,它还包括一个电子邮件客户端,网页制作和其他功能。它是跨平台的,并且有一个在Windows中不影响当前安装的网络浏览器的情况下能够下载和安装的版本。与Mozilla不同,Galeon(galeon.sourceforge.net )是一个纯粹的网络浏览器。它运行在GNOME桌面下。Konqueror(konqueror.kde.org )是一款在KDE桌面下运行的网络浏览器。
图二 Mozilla,一款FOSS网络浏览器
多媒体
可用的多媒体FOSS范围很广,包括可以用作提高和传播教育需求的图像编辑器和视频播放器。
GIMP(GNU Image Manipulation Programme——www.gimp.org )是最著名的图片编辑和图形设计FOSS。它是一款可以供研究人员和学生用作多种用途的桌面应用软件。GNU/Linux,不同的Unix以及Windows下均可使用。由于其支持多种图片文件格式,所以与其他程序的相互协作应该不成问题。GIMP被认为是FOSS中与专有软件中的Photoshop等价的。
一款能够绘制图表的软件将在教育机构中得到很好的使用。有一些不错的为这种用途服务的专有软件,例如Visio和Smartdraw。已经设计的一款叫做Dia(www.lysator.liu.se/~alla/dia )的与之等价的FOSS 能提供类似的功能。它能用来绘制很多不同种类的图表,并且有特殊对象来辅助流程图,网络图表和简单电路的绘制。除了FOSS操作系统之外,该软件还能在Windows下使用。
Audacity(audacity.sourceforge.net )是一款FOSS音频编辑器,用它你可以录音,播放音频和输入输出多种不同格式的文件。它可以用来编辑音频,混合音轨或者给你的录音添加效果。当你需要在多媒体教育中结合数字音频或者制作录音时这款软件会很有用的。它能在大多数Unix系统(包括GNU/Linux)和Windows下运行。
工作站必须有一个媒体播放器来回放视频和其他多媒体信息。在专有平台上这通常是有的。而在FOSS平台上,Mplayer(www.mplayerhq.hu )是一款提供了类似功能的软件。它能在Linux和许多其他Unix版本中使用,并且支持许多视频和音频格式。
如果您需要其他多媒体FOSS清单,请参考一下网址:linuxshop.ru/linuxbegin/win-lin-soft-en/table.shtml 。
其他教育软件
先不管普通用处FOSS桌面应用软件,还是有很多可以用来教授中小学,高等专科和大学特定科目和课程的自由/开放源码教育软件的。其范围从小学生的画图软件(例如,Tux Paint—www.newbreedsoftware.com/tuxpaint )到学习几何(例如,Kig—edu.kde.org/kig )、化学(例如,Ghemical—bioinformatics.org/ghemical )、物理(例如,Open-Source Physics Education project—www.opensourcephysics.org )的软件。高等教育领域,有QCAD(www.ribbonsoft.com/qcad.html ),它是一款可以用于工程制图课程的计算机辅助设计软件。Scilab(scilabsoft.inria.fr )是一个功能完善的科学软件包,它可以用于大学水平的数字分析或者工程学课程。
这些只代表了用于教育的FOSS的冰山一角。还有许多有用的在线资源用于查找其他教育软件,下面就将介绍一些。
Schoolforge(www.schoolforge.net )是一个提供在教育领域使用自由/开放源码解决方案项目的网站。它被设想为一个其资源可用来帮助学校开发能够负担并且足够可靠的软件和教育内容的网站。
SEUL/edu(richtech.ca/seul )是Simple End-User Linux的一个教育入口,它促进了Linux和其他开放资源在教育领域的使用。它包含了老师、家长以及学生多方面的教育用途。它有一个学校相关的FOSS目录。
教育和教学自由软件组织(OFSET)开发的Freeduc(www.ofset.org/freeduc )提供了教育软件的目录。它还为学校制作最新的FOSS CD光盘。把最新Freeduc系统刻在CD光盘上的用意就是不用再安装了。因此学生和老师都可轻松的使用这款应用软件。
KDE Edutainment Project(edu.kde.org )目的在于为KDE桌面开发教育软件。它主要聚焦在年轻学童,但是也有适合大学学生和老师的软件。
第三方机构使用开源软件的调查[ ]
为了调查开源软件(OSS)在第三方机构的使用范围,澳大利亚西部大学的计算机科学与软件工程学院全体师生进行了一个调查并在2004年二月得出结果。澳大利亚,新西兰和英国的34家第三方机构对此次调查给出了反馈。反馈者负责的系统数量范围从10到18,000。
78%的反馈者报告说其全体员工熟练掌握OSS。所有被调查的机构已经在服务器上配置OSS,50%的机构在管理部门配置OSS,53%的机构将OSS用于教育,56%的机构用于实验室,50%的机构用于研究。
87%的反馈者说对于OSS有等价或者更好的支持产品。68%的人说OSS的支持需求并不比专有软件高,并且OSS有时更容易支持。
引进采用OSS的主要好处就是降低了所有权的总成本。尽管在机构中所有权总成本的彻底评估可能不支持这些。78%的机构说使用OSS的好处是可以对特殊卖主减少信任。
这个调查表明OSS已经深深植根于澳大利亚,新西兰和英国的第三方机构。因为有94%的反馈者说他们已经在使用OSS。
成本节约
正如前面所说的,FOSS在后端服务器方面是很成熟的,并且与专有软件等价甚至更好。
桌面应用软件的使用正日益增加,而且有一些适合于办公用途。在给出的这个例子中,教育机构的行政管理者强制为在本机构使用FOSS给出相应的报酬,尤其是公共资助的。通常研究机构使用的专有软件打了很大的折扣,即使这样,仍然应该考虑FOSS。从长期来看,使用FOSS代替专有软件能够获得更大的成本节约。
专门为教育市场设计的专有软件通常很贵,因为卖主必须从非常小的市场中弥补他们的开发成本。这些有可能是管理软件,例如:图书馆管理系统或者学习管理系统。然而,即使是这样的特殊应用软件,现在也有了高质量的FOSS与之相抗衡。在其他领域,如学生信息系统,人力资源管理系统和财务管理系统,能够取代办公用途的FOSS还不是足够成熟。但是很可能将来用于这些领域和其他教育专用的FOSS应用软件都会有的。
正如前面所提到的,FOSS的初始成本几乎可以忽略不计。FOSS升级所用的成本也是可忽略的。但是,已经有人在争论所有权总成本(TCO)应该用于FOSS与专有软件的比较。TCO还包括了维护、支持和培训费用,并且对于FOSS这些费用可能会很高的。然而,在各种不同的比较中,FOSS的TCO仍然比专有软件的低。
在劳动力成本低的国家,维护、支持和培训费用占TCO的比重更小。这样FOSS的TCO就会低很多。源代码的可用性也致使更多的公司可以提供维护和支持,从而降低成本。在理论研究方面,同常可以免费从FOSS社区获得帮助。
在一些情况下,资金的可用性或者缺乏资金不是专有软件和FOSS之间的选择,而是除了FOSS别无选择。依靠使用廉价或者捐助的带有FOSS的硬件,一些机构也许能够向其学生提供处理设备,否则是不可能实现的。
即使有资金购买专有软件,取而代之使用FOSS节约的成本能够用作更好的用途,比如买更多的电脑,为行政和研究然元提供培训,或者为本机构开发与ICT无关的基础设施。
实例:果阿,印度
另外一个在学校安装电脑设备中使用FOSS技术的实例是果阿学校电脑计划(GSCP)。2000年在果阿的125所学校中启动的GSCP帮助配置了425台从美国运来的旧电脑。Linux终端服务器计划(LTSP)解决方案用来给学校实验室的电脑组建网络。有人为评估使用回收的电脑和FOSS软件所带来的成本节约做了一个成本分析。[8] 发现其成本比使用新设备和专有软件节约了77%。在此分析中维护费用也计算在内了。即使新设备是用过的,仍有64%的成本节约,因为使用FOSS软件时新设备的要求更低。
这件事所引发的一个问题就是需要培训老师好让他们熟悉向Linux环境的转变。一旦越过了这道障碍,那么使用FOSS桌面应用软件就会像使用他们所熟悉的专有软件那样易如反掌。另外一个问题就是缺少当地公司的技术支持,尤其需要上门服务的员工。此案例的更多细节研究由Martyris提供。[ ]
管理
为教育管理而量身定做的专有软件被一小群公司所控制。他们通常有一个特殊软件的小市场,例如:图书馆管理系统或者学生信息系统。由于市场小,这类软件的成本通常非常高。一般只有优秀的私立大学和学院才能够负担起这样的系统。即使在发达国家,很多学校还是负担不起这些。不用说,它们超出了绝大多数发展中国家教育机构的承受范围。
近几年,已经出现了满足这部分需要的FOSS,并且在一些种类比如图书馆管理系统和学习管理系统中,优秀的系统已经开发出来并可以为研究机构所使用。
图书馆管理系统
对于任何拥有一个正常规模图书馆的学院、大专或者大学,有一个计算机化的系统使图书馆的管理自动化是最基本的。最著名的FOSS图书馆管理系统是Koha 。还有正在开发的其他系统,它们并没有Koha成熟,例如:PhpMyLibrary(phpmylibrary.sourceforge.net )和OpenBiblio(pbiblio.sourceforge.net )。它们正处于不同的开发阶段。Anctil提供了各种不同系统的比较。[ ]
Koha
Koha (www.koha.org )是1999年在新西兰由Katipo通信有限公司开发,Horowhenua Library Trust资助。它在GNU/Linux通用公共许可下可用。现在有一个来自各个国家的日益壮大的开发社区支持着它,并且它已经被翻译成了几种语言。它在Linux上运行,使用Apache Web server 和 MySQL 数据库,并且用Perl语言开发。使用其他网络服务器或数据库运行此软件也可以。Horowhenua Library Trust 在他们的三个分支图书馆使用Koha ,其中有80,000册图书和25,000读者。另一个正在使用Koha的图书馆是在海岸山校区,加拿大不列颠哥伦比亚省。它有八个分支,每个分支拥有2,000——8,000本书和1,000为读者。
Koha 功能完善,并且有目录,存贮,在线公共访问目录(OPAC),借书,读者管理和供应模块。流通模块包括流出,更新,归还和罚金。它可以安装到用户栏代码扫描仪上。供应模块包括预算,定价和供应者信息。
Koha是一款基于网络的系统,图书馆的读者和工作人员都可以使用网络浏览器访问该系统。它提供了一个简洁明快的界面以便可以经因特网轻松的通过OPAC进行搜索。
Koha的早期版本缺少一些功能,比如对国际目录标准的支持。但是,最新的版本支持国际目录标准——机器可读目录(MARC)。将来发布的版本中还计划实施一系列的模块。
2002年五月,在法国组织的一个国际竞赛中Koha获“公共管理软件”类的奖。此次竞赛是为了突出FOSS具有让消费者和商业获利的潜能而设立的。
Koha:主要特性
▲流通模块包括流出,更新,归还,罚金,条形码扫描器的使用,逾期未还清单
▲完善供应模块的包括库存量,定价和供应者信息订单和接收项目跟踪
▲小型图书馆的单一化供应
▲读者(会员)管理
▲可以在图书馆或者通过因特网自助预定的预定模块
▲图书馆内或者通过因特网的在线公共访问目录(OPAC)
▲简单明快的管理员和会员的交互界面
▲自定义的关键字,作者,标题,主题,类别号或其组合的搜索
▲编录网站目录
▲支持机器可读目录(MARC)
▲分支图书馆的库存周转
(来源于:www.koha.org )
图三 FOSS图书馆管理系统——Koha
学习管理系统
一个学习管理系统是一款应用软件或者一个基于网络的系统,它提供老师还有制作并发表在线学习内容,监控学生参与情况和评价学生的表现的工具。一个学习管理系统还应该支持相互协作,并提供诸如聊天工具和论坛之类的功能。学习管理系统有时指的是课程管理系统。
ICTs对教育的好处之一就是,在学校或大学使用这样一个系统能够帮助实现教育办法的改进。它的使用也是e-learning的基本要素之一。但是,现有的诸如WebCT和Blackborad之类的专有系统太贵了,很多研究机构都负担不起,尤其是在发展中国家。幸好现在有了一些FOSS学习管理系统。在2003年六月Commonwealth of Learning发布的一个报道中,确认并评估了35种FOSS学习管理系统。[ ] 本文将在后面介绍排名最高的ATutor。
标准
为了促进各种不同学习管理系统的相互协作,建立学习内容应该遵循一个标准。建立学习管理系统的标准有很多提议。
2001年在麻省理工学院(MIT)开始了公开知识倡议(OKI)。它是包括MIT在内的许多重点大学和斯坦福大学之间的合作。这个倡议产生了两个学习管理系统——在MIT开发的Stellar,还有在斯坦福大学开发的CourseWork。CourseWork作为FOSS于2003年6月发布。
OKI的目标是定义一个公开的可扩展学习技术体系结构。尤其是面向高等教育社区的需求。它为学习管理系统中各个部分的界面提供了规范,促进了和其他系统包括现有的企业系统间的交流。面向高等教育市场的商业和非商业产品开发者可以使用OKI体系结构。从根本上说它FOSS。
IMS(Instructional Management Systems 教育管理理系统)Global Learning Consortium是一个包括教育机构,软件公司和发行人的全球性非营利组织。它开发了开放技术规范来支持分布式学习。其中的一些规范正作为国际性学习技术标准而被采纳。这些规范使得不同作者的不同课程管理系统和学习内容能够一起工作或相互协作。比如,使用类似Blackboard的专有课程管理系统制定的学习内容可以通过其他诸如WebCT和vice versa的系统访问。
IMS的一个详细项目就是由Advanced Distributed Learning(ADL)开发的Sharable Content Object Reference Model(SCORM)。它结合了IMS和其他规范的要素来提供能够协作,易访问的,基于网络的可反复使用的elearning能力。
IMS和SCORM都使用XML作为公共语言使不同系统间能够交流。
斯坦福大学的Coursework
2002年一月,斯坦福大学开发了它自己的学习管理系统,叫做CourseWork(aboutcoursework.stanford.edu ),用于提供校内教育网站。它很快被其全体教员在多种研究科目所采用。直到2003年春天,已支持了400多门课程,拥有超过12,000名用户。
CourseWork已经被作为开源软件发行。提供研究机构非专有,灵活开放访问权,可升级的学习管理系统。它使得这些机构能够把他们的网站和其他系统,例如学生信息系统,图书馆管理系统和其他教育专用基础设施系统一体化。CourseWork中的工具可以通过自定义来适应特殊机构的需求,并且界面可以修改,使之与该机构的网站一致。
CourseWork的用户友好性设计不错。这样一来研究人员就可以在不用熟练掌握基础技术的情况下建立一个课程网站。但它还是拥有让具有专业网站技术的人员建立一个更复杂的课程网站的功能。
使用CourseWork,研究人员可以发布公告,提纲和课程计划。课程材料可以上传到服务器并由Coursework管理。学生们可以按照适当链接轻松的访问这些材料。适当的外部资源链接也可以作为在线课程读物的一部分加入。可以为课程建立论坛,以便促进学生与教师间的在线讨论。
有工具供教师布置家庭作业,任务和测验。学生们可以在线提交他们完成的作业。多种选择的测验可以被自动打分。CourseWork管理着作业的分配,学生作业的收集并提供反馈给学生。可以显示学生在线测验的分数,而且可以计算最终得分。
Moodle
Moodle(moodle.org/ )最初由一个澳大利亚人,Martin Dougiamas开发。它是Modular Object-Oriented Dynamic Learning Environment的首字母缩写。它是在GNU通用公共许可的模式下发布的。并且最近有一组很活跃的开发者从事于它的开发。由于使用PHP开发,Moodle是跨平台的:它可以无修改地在Linux,Windows,Mac OS X和其他支持PHP的系统下运行。它支持FOSS数据库MySQL和PostgreSQL,并且还能和其他数据库一起使用。Moodle是多语言的,目前迟滞34种语言,包括汉语,印度尼西亚语,日语和泰国语。
Moodle具有众多的网站管理,用户管理和课程管理功能。它有作业,测验,论坛和聊天模块。教师可以布置作业以及相应的时间最高得分,允许学生们上传完成的作业,并且针对作业提供给学生反馈。Moodle可以创建各种测验问题——多项选择,简答,判断和填空。测验可以自动打分并且答案的解释可以反馈给学生。问题会被打乱,这样一来学生就更难作弊。并且学生能够接受测验的最大次数是有限制的。如果需要,所有作业和测验的得分可以查看并下载供进一步处理。
为了促进学生在特定课程的互动,还可以建立论坛,利用选项把副本以电子邮件的方式邮给学生。Moodle还有聊天功能以供即使讨论。事后师生都可以登陆聊天室查看聊天记录。
图四 Moodle,一款FOSS学习管理系统
Moodle:主要特征
整体设计
▲适合完全在线管理课程,也是课堂教育的补充
▲使用基于简单浏览器的界面
▲方便在任何支持PHP的平台上安装并且只需要一个数据库
▲完整数据库的提取支持全部主流数据库系统
▲强调坚实的安全性
站点管理
▲“themes”插件允许自定义站点
▲可以向现有的Moodle添加活动模块插件
▲语言包插件允许任何语言的完全本地化
▲代码由GNU GPL许可下的PHP编写,以便适应特殊需求而修改代码
用户管理
▲支持一定范围的验证机制,以便与现有系统的简单结合
▲每个人只需一个账户来访问整个服务器
▲教师可以取消编辑权,这样一来他们就不能修改课程(比如:兼职教师)
▲作为一项安全功能,老师可以向他们的课程添加“登陆密钥”防止非学员查看
课程管理
▲课程模式选择,比如:按星期,按主题或者按讨论焦点模式
▲通过各种模块——论坛,笔记,测验,资源,选择,调查,分配任务,聊天,工作室来实现灵活的课程活动
▲所有级别的论坛,笔记,测验和作业能够以电子表格文件查看并下载
▲每个学生都有包括完整的用户日志和跟踪记录的行为报告
▲老师可以定义他们自己的评分尺度
(来源于:http://moodle.org )
ATutor
The Commonwealth of Learning Report[10] 评估了开源学习管理系统并推荐了两款产品。评估的标准包括了特性和功能性,所有权成本,维护性,可用性,符合标准性和可扩展性。该报道首推ATutor。
ATutor(www.atutor.ca )有多种工具来使教师管理在线教学内容,比如:内置的内容编辑器,资源数据库,论坛管理器,课程统计和评估支持。它有良好的协作和聊天的独立模块。它由老师为新用户提供了良好的文件和在线帮助。但是,用户界面可能不是很直观。
ATutor支持IMS/SCORM规范,允许学习内容与其他学习管理系统输入和输出,并且与IMS/SCORM规范一致。但是,它相对而言比较新还没有大范围的安装基础。ATutor已经在GNU 通用公共许可下发布。
其他
教育机构管理的其他需求之一就是用来管理学生记录和提供科目,时间表,注册信息,学术及财政管理记录等的学生信息管理系统。由于学生信息系统经常要根据特定机构的需求来自定义,并没有很多专有系统可用。目前为止,还没有达到产品至质量的开源学生信息系统可用。但是,有一些用来开发这样一个系统的倡议。
SchoolTool(www.schooltool.org )计划就是这样一个倡议。SchoolTool的目标是为学校管理开发一个系统,它可以在全球范围使用,无论对于学校还是高等教育机构都适用。它与学校管理结合效果最佳,并且能够由本地需求轻松的自定义。该系统在开源许可下可用。这项计划于2000年在南非启动,从Shuttleworth 基金会获得了资助。这项计划在2002年临时暂停了,但是2003年又再次启动。它仍然处于开发的初级阶段,并且还没有可用的软件。
图五 ATutor,另一款FOSS学习管理系统
用开放源代码软件来教学
在前面的部分我们讨论了FOSS在配置教育机构的IT基础设施中的使用以及其在管理功能中的使用。这部分,我们来探讨一下FOSS在信息技术教学方面所发挥的作用。目前在IT教学方面使用的大部分软件,包括计算机技术教育的基础办公软件,编程课程的编译器以及相关的数据库管理系统,都是专有软件。但是,还是有与之相抗衡的FOSS可以来适当的取而代之。另外为了成本节约,在IT教学中使用FOSS还有其他好处。
计算机基础技术
在基础层面上,IT教学包括教授计算机基础技术。计算机基础技术就是指获得利用计算机完成普通任务的技术。它暗示了使用普通桌面应用软件比如文字处理器,电子表格,电子邮件客户端和网络浏览器的能力。表1中的技术是最基础的。表中技术的顺序并不代表其重要性,并且会随着技术的进步而改变。根据个人情况不同,这些技术相对的重要性也各不相同。
计算机基础技术不止应该教给中学生还应该教给大学生,他们在早期的学校教育中可能接触不到这些技术。有一个普通的假设,当今的大学生应该掌握计算机基础技术,并且有使用桌面应用软件的技术来完成他们的学术工作无论他们学习的是什么领域的。在一些大学里,开设了计算机基础技术课程来确保他们掌握这些技术。在其他大学里,可能没有这种正规课程,学生们都是自学。即使在较低的教育水平下,看到作为计算机基础技术课程的一部分正在教学生们使用Microsoft Windows和Office也是很普遍的。
表1 IT技术
1、配置一台个人电脑
2、使用操作系统的基本功能
3、使用文字处理器
4、使用图形和/或艺术品包
5、将一台电脑连接到网络上
6、使用因特网
7、使用电脑来通信
8、使用电子表格
9、使用数据库系统
10、使用新应用软件的指导材料
(来源于:US National Research Council’s Committee onInformation Technology report)[ ]
但是,这种用方法教育计算机基础技术有两个问题。首先,特定版本的专有软件的使用技术通常寿命很短。即使怎样使用同一个公司的一个新版本软件更容易学(与学习一个崭新的软件相比),但除非用户有自学能力,否则二次培训还是必须的。应该使用一种不同的教授计算机基础技术的方法来训练学生学习,忘记和再学习的能力。重点应该在于不应该取决于特定公司软件的普通技术。
在计算机基础技术课程中使用特定专有软件带来的第二个问题是这鼓励了盗版软件。学生们需要使用同样的,可以在学校或大学里做家庭作业和任务的软件。这就导致很多学生在家或在笔记本上使用盗版软件。有财政制约的学校和教育机构,在提供给学生计算机基础技术培训的热情下,甚至也可能使用盗版专有软件。
在教授计算机基础技术时使用什么操作系统,文字处理器,电子邮件客户端,网络浏览器和电子表格都不重要。GNU/Linux ,与合适的图形用户界面(GUI)一起,比如:GNOME或者KDE,是一款FOSS操作系统。它可以用来教授操作系统基础功能。
OpenOffice有文字处理器,电子表格,图像显示和绘画程序,这些可以用来代替与之相抗衡的专有软件。用来教授专有办公软件的基础功能它就足够了。如果有必要,其他FOSS比如Abiword文字处理器或者Gnumeric 电子表格也可以用于计算机基础技术课程。
为了教授学生怎样访问网络或者使用电子邮件,可以使用FOSS应用软件Mozilla。而且Mozilla的功能能与Windows的浏览器和电子邮件客户端的总和相媲美。用于计算机基础教育课程应该足够了。
FOSS数据库系统MySQL和PostgreSQL的功能完善,并且可以用于教授数据库系统基础。这些数据库的GUI对于用户可能没有相应的专有软件友好,但是这应该不会成为学习基出原理障碍。
Michael Surran ,一名美国计算机科学教师,叙述如下:[ ]
People sometimes ask me, “Is teaching our students Linux preparing them for the workplace?” This question is based on the fact that Microsoft is the current dominating presence in operating systems and office software. It is a question I have thought over a long time, and the answer I always come up with is,“Yes, most definitely.” The basic principles of any type of operating system, office application or other similarly grouped software are the same.A student who becomes proficient in Linux will not find themselves (sic) lost in a Windows environment.I have found Linux to be the more advanced of the two operating systems, yet our students are very quickly and easily learning it.The process of copying a file or formatting a paragraph is not so different between one operating system and the other.
使用FOSS软件作为计算机基础技术课程的基础还能带来学校或大学的成本节约。它消除了确认购买足够许可的需求,因为FOSS软件可以合法的随需求在很多电脑中安装。学生们也可以没有限制的在他们自己的电脑里安装FOSS软件,而对于他们校园外的学术工作,盗版专有软件就是不必要的了。更重要的是,这会鼓励学校把重点放在教授基础原理和概念上,而避免特定公司的专有软件的狭隘方向。
然而,在教师和讲师能够使用这些软件管理学生之前,培训他们使用Linux和FOSS是很必要的。课程的修改是必要的。还需要为开发与之相适应的教学材料付出努力。
学校
计算机基础技术一般是学校教给学生IT技术的重点。这将锻炼他们使用计算机提高学习,访问网络,使用电子邮件等能力。
但是正如前面所提到的,这样就不应该限制学生使用专有软件。没有接触过电脑的学生很可能更容易接受Linux和FOSS,并且越早开始使用FOSS越能达到使人满意的效果。
例如,在澳大利亚一些非公立学校因教育原因而引入FOSS。开发了这些学校的学生们使用IT技术的能力,而不必考虑这种处理只能基于一个卓越的处理平台。英格兰女子文法学院悉尼教堂的老师故意让学生接触不止一种的办公应用软件套件,给他们使用FOSS和专有软件的机会,并且加深他们对这些应用软件原理的理解。[ ]
除了使用FOSS教受IT技术之外,还有很多FOSS可以在学校里用来教受非IT科目。其中一些科目已经在第二章提到了,并且还给出了在线教育软件资源。
高等教育
编程
学习怎样编写计算机程序总是计算机科学或信息技术教育计划的一部分。其他学科也会经常教学生编程,因为编程对于他们为其工程或者研究工作开发一些计算机程序可能是必须的。
在基础层面上,选择何种编程语言作为教受编程概念的基础并不重要。就这种用途而言,有很多计算机语言能在Linux平台上使用。GNU Compiler Collection(GCC)是一个涵盖在大多数Linux版本中的编程语言编译器的集合。它目前支持诸如C,C++和Java之类的计算机语言。人们正在努力改进使其支持其他语言,比如Pascal和Cobol。还有其他居世界语言编译器可用,比如,BASIC语言分支。
很多教育机构目前将其编程课程基于Windows平台,导致了对专有编程工具的依赖。这些工具一般是包含在一个集成开发环境(IDE)中的,用来简化编程中的一些工作。但是,有FOSS平台下的IDE可用,比如KDevelop(www.kdevelop.org ),并且这些可以用来代替专有工具。
源码可用性 在更高层面,FOSS的源码可用性将促进编程教育。学习怎样编写优秀计算机程序的最好方法就是学习别人编写的程序,尤其是实际项目的高质量程序。就像写小说一样:一个作者如果没有读过别人大量的作品,他/她就不可能写出一部优秀的小说。与之相对应的,一个程序员只掌握了特定计算机语言的语法和结构而没有大量学习别人优秀代码的机会就编写程序也是不行的。
过去缺少实际项目的高质量源码供所有人查看和学习。专有软件的源码作为商业机密受到保护,并且很少公开发布。FOSS使得数以千计的项目的源代码可供使用,其中一些还是他们特殊领域市场的引领者。FOSS源码可用性的重要性和它建立软件开发能力的重要作用还未被广泛认知。
大部分FOSS的用户并没有兴趣查看源代码,而且这也是没必要的。但是,如果是用来教学生编程,就应该利用源代码的可用性来提高教学与学习。例如,IT课程承担的编程项目,就能鼓励学生们学习可用的源代码,并通过添加功能或做出改进来更新它。如果他们准备充分,就能参与许多FOSS项目,诸如通过提交他们的代码稿件参加Sourceforge.net上主持的项目。
FOSS中使用的编程语言 虽然在基础层面上使用何种编程语言作为教学的基础并不重要,但是在更高层面,教育机构应该教受学生们与他们将来工作相关的语言。如果学生从事软件开发行业,那其中就很可能包括FOSS项目。因此设计课程应该把这种情况考虑在内。
表2 FOSS项目中使用的计算机语言
编程语言 项目数量 项目百分比
C 12,329 19.3
C++ 12,173 19.0
Java 10,594 16.5
PHP 8,023 12.5
Perl 5,141 8.0
Python 2,873 4.5
(Source:sourceforge.net )
表2列出了在FOSS项目中使用的计算机语言,包含在SourceForge(sourceforge.net )2003年12月的知识库中。
更多的语言正被用来开发FOSS。上表中我们只列出了前面几个。FOSS项目中主要使用的是C和C++。但是,JAVA,PHP,Perl和Python使用也越来越多。C和C++已经普遍在传统计算机科学课程中教受。随着Java,PHP,Perl和Python的重要性日益增加,应该努力使IT课程中也包括这些。
软件工程
FOSS开发方法论 随着FOSS的重要性与日俱增,应该把过程和方法论用于开发FOSS以便改进软件工程教育。
在他的文章《大教堂和集市》中,埃里克•雷蒙德描写了FOSS开发的特征并对其用来比较传统软件开发(大教堂模式)和FOSS开发(集市模式)的比喻解释如下:
I believed that the most important software (operating systems and really large tools like the Emacs programming editor) needed to be built like cathedrals, carefully crafted by individual wizards or small bands of mages working in splendid isolation, with no beta to be released before its time. Linus Torvalds ’s style of development—release early and often, delegate everything you can, be open to the point of promiscuity—came as a surprise.No quiet, reverent cathedral-building here—rather,the Linux community seemed to resemble a great babbling bazaar of differing agendas and approaches (aptly symbolized by the Linux archive sites, who’d take submissions from anyone) out of which a coherent and stable system could seemingly emerge only by a succession of miracles. [ ]
一个FOSS项目往往是开始于开发者的需求。之后他们就开发软件到一定阶段,在作为一个开源项目发布给社区之前它只有基本功能可用。这个程序可能会有很多bug,不完整或者很烂的文档。但是它一定至少能运行并确信具有在不久的将来能够进化为优秀软件一部分的潜在贡献。这将吸引其他对解决同样的问题感兴趣的开发者来为此项目做贡献。然而,开发并不总是开始于草稿。实际上,很多成功的项目比如Apache,就是在已有的部分解决方案上建立起来的。应该注意的是一个项目不可能开始于集市模式的草稿。
与专有软件项目不同的是,FOSS项目一旦可用就马上发布。无论何时只要软件有修改,就发布更新版本。“尽早发布,经常发布”是FOSS项目的一个重要特征。正因为这样,更多的用户可以在多种不同条件下参与软件的测试。如果有bug,就会很快被发现并修正。源代码的可用性使得用户变为联合开发者,因为他们可以修改bug而不是只报告bug。相比之下,对专有软件而言,由一小组拿报酬的开发者通过beta测试过程来修改报告回来的bug会花费更长的时间。
这种开发模式并不是完全没有结构,尤其是对于大型项目。例如,Linux有一个基于Linus Torvalds给予不同人责任授权的分级结构。虽然Linus Torvalds总是有最终权利,但是他们每个人对于Linux的不同部分有着责任和权力。FOSS项目的高度模块性引起了一个特殊的组织性和决策性的过程。通常,FOSS开发模式往往是更加非正式的,因为开发者自愿地执行他们的任务并且没有直接的财政收入。
现在FOSS项目依赖于问题跟踪,源代码管理,设计,自动测试和打包以及调度工具是很普通的。协作版本系统(CVS)是在开源项目中最为广泛使用的版本控制系统。它的功能包括一个中央服务器,其中包含软件的最新版本,它可以让任何人通过因特网访问这些最新版本。无论何时只要有变更,CVS就可以设置用来向项目开发者发送电子邮件通知,以便新的源代码可以被测试和查看。Bugzilla是为使用Mozilla项目的问题跟踪和技术支持而开发的。它现在在很多FOSS项目中使用。
FOSS开发方法论在很多方面与传统的软件工程有所不同。一些正在研究它的研究人员发现FOSS开发方法论“can be faster,better and cheaper than the textbook software engineering often used in corporate settings.”[ ] 但是,他们并没有断定为小型市场定制的很大型和复杂应用软件,例如航空工业,可以使用FOSS模式开发;因为这些传统软件工程方法仍然是需要的。
开放内容
开源现象的成功促进了在出版物内容上适应相似原理的努力。在出版开放内容思想的背后就是每个都能使用这些内容,免费分发,修改和重新分发。用这种方法,开放内容可以被改进,并且对于公共利益这些知识是免费的。:“开放内容”这个术语由Dr. David Wiley提出。他于1998年发起了开放内容项目并且提供了开放内容许可。开放内容许可现在由创造性公共许可所代替。
创造性公共许可(creativecommons.org )它是基于斯坦福法学院,为许可开放内容提供了许多选项。应该注意的是使用这些许可之一的出版内容并不意味着作者放弃了作品的版权。只是作品的一些权力在一定情况下提供给用户了。各种创造性公共许可选项概括如下:
1、归属物——给予复制,分发,展示,按照原版和其衍生作品执行的许可,但是只有获得信贷才可以。
2、非盈利的——给予复制,分发,展示,按照原版和其衍生作品执行的许可,但是只能用于非营利性目的。
3、非派生作品——给予复制,分发,展示和只能按照原版而不是其衍生物执行的许可。
4、相似共享——给予只有在与管理原始作品相同的许可下分发衍生作品的许可。
开放内容对于教育特别重要,并且有很多为教育用途开放内容而提供的倡议。最值得关注的就是由麻省理工学院倡议的OpenCourseWare。
麻省理工学院OpenCourseWare
2001年4月,麻省理工学院宣布了OpenCourseWare(OCW)计划。通过它可以使用麻省理工学院教受的2000门课程的课程资料。这些可以在线获得,并且教育工作者,学生和自学者可以在全球任何地方毫无约束地访问这些资料。到2004年五月,实质上所有的研究学科700多门课程的资料发布在了OCW网站上(ocw.mit.edu )
全世界的教育工作者可以使用这些课程资料作为他们自己机构的课程开发基础。学生们可以利用这些资料来自学或者作为其课程的辅助资料。这种教育资料知识库的可用性可以刺激教学的创新,并能引导其他合作性的努力。
OCW并不是关于提供麻省理工学院教育的。它也不是远程教育倡议。根据Phillip Long的话,“OpenCourseWare不是一种在线教育环境;它是享有在麻省理工学院对优秀教育资料提出观点,对教育资料排序,优秀问题设置以及适当类型的活动,这样一个权利的机会。它是内容、排序、具有思想性的选集以及并置资料的代表。它向公众展示了全体成员克服困难以达到拥有一个资源和资料集合用来教受特定的课程的决心和过程。”[ ]
OpenCourseWare 资料(图六)是前面提到的创造性公共许可的归属物,非营利性和相似共享选项许可的。
图六 麻省理工学院OpenCourseWare提供的课程之一
维基百科
维基百科(www.wikipedia.org )是一个免费的基于网络的百科全书。它在GNU免费文件许可下可用。这款百科全书的内容是由读者合作撰写的,并且不属于任何正式的同等评论。读者还可以编辑别人写的文章。
维基百科由Jimmy Wales和Larry Sanger建立,他们最初开创了另外一个叫做Nupedia的基于网络的免费百科全书。这里是同等评论文章的。Nupedia的发展很慢,并且可用的文章数量有限。但是在维基百科中,贡献者迅速地编辑和创作新的文章。2003年12月它列出了185,785篇文章,包括了很大范围的学科。它还是多语言的,有很多其他语言的文章。维基百科的建立者相信,持续编辑文章的过程将会改进内容直到达到一个具有高质量内的容稳定状态。
公共科学图书馆
公共科学图书馆(PloS——www.plos.org )是一个非赢利组织。它成立于2000年10月,目的在于使全球科学和医学文献成为免费的公共资源。超过30,000名来自180多个国家的科学家,包括13位诺贝尔奖获得者,签署了PloS的成立。它坐落于旧金山。PLoS的基本原理就是自由和开放的访问科学思想,方法,结果和结论将加速科学和医学的进步。
图七 PLoS生物学,一款公开访问期刊
在戈登和&贝蒂•摩尔基金会和Irving A.Hansen基金会授权的帮助下,PLoS在2003年10月启动。第一款开放访问期刊叫做PLoS生物学(图七)。该期刊可在线阅读并且可以自由访问,下载,打印和分发整篇文章。虽然它是一款开放访问期刊,但是PLoS生物学任然遵循严格的评论和与传统期刊的当前实践相似的选集。公共科学图书馆计划于2004年使用相同的公开访问模式启动一个医学期刊——PLoS医学。
采用开放源码软件进行研究
传统上,理论研究是在一种开放方式下进行的。在这种方式下研究发现的出版物是用评论过程作序言的。所有的能导致结果的设想,计算和实验在结果被出版期刊接受之前,都要被详细审查。研究人员一般不会获得他们所得结果和发现的所有权,并且他们也希望发表这些结果。
电脑软件不仅经常在计算机科学方面使用,而且在其他领域的研究方面也经常使用。“但是,科学家为了安全起见很少让其他科学家使用他们自己的软件——即使他们让使用,也是经常使用封闭源码程序。这样底层源码受到版权和商业机密要求的保护。但是这种行径打击了科学的心脏,也就是说,可证实性的思想。要有根据地被大众接受,所有的进入给定科学假设的计算和设想必须向公共的详细审查开放。然而封闭源码软件是不可能这样详细审查的。”[ ]
相比之下,FOSS的开放哲学于理论研究的过程完全一致。因为软件的源码也可以用来检验。研究人员应该尽可能使用FOSS作为他们工作中的一个工具。Bryan Pfaffenberger更深入的讨论了“科学家使用开源软件还不够,他们还必须使用开源操作系统”。[18]
正如前面所提到的,自由/开放源码编程语言,数据库系统,电子表格软件和其他可以用来计算和数据分析的应用软件在研究中也可使用。还可使用更加特殊的FOSS。例如,Scilab(scilabsoft.inria.fr )是一个数学计算FOSS软件包,它具有能与专有软件包相抗衡的性能。Scilab是一个功能完善的科学软件包,它具有成百上千的内部函数,可用于矩阵操作,信号处理,傅立叶变换,制图以及类似用途。它可以用作广义范围的科学和工程学科的研究工具。另外一个例子就是GNU Scientific Library(GSL),一个属于FOSS的数学图书馆。它具有大量可在GPL下使用的函数。这些图书馆模块的使用促进了用于研究目的的计算机程序的发展。
生物信息学
生物信息学,总体上说,是使用计算机来处理生物信息。它是使用计算机来表现生物分子(计算机化的分子生物学)的学科。生物信息学最显著的成功就是人类基因组计划。它尝试测绘出人类基因的全部序列。需要处理分子生物学中巨大数量的数据,并且这很明显只有在计算机和软件的帮助下才可能完成。
FOSS在生物信息学中起着重要的作用。Ewan 讨论道“开源之所以有意义就是因为它遵循良好的和著名的科学原理。传统地,科学实践包括开放共享和讨论结果,并提供足够的信息以供第三方确认结果。明显地,开源软件两很好的符合这一模型。”使用FOSS的第二个原因是“现实数据要远远比处理它的工具更麻烦。”分享用来管理研究的软件减少了开发软件付出的相同努力。
Bioinformatics Organization,Inc.(www.bioinformatics.org )建立于1999年,用来促进全球范围在生物信息学研究领域的交流和协作,并且提供此领域方法和资料的自由和开放访问。它的网站拥有广阔的资源,包括软件和数据库,并提供讨论来促进这类资源的发展。
高阶运算
GNU/Linux和FOSS已经被用于提供能够进行高阶运算能力的项目。这通过将多元低耗的服务器和工作站结合为一个系统来完成。这个系统可以传递超级计算机的能力。根据Cook的“这些系统之所以如此高效,是因为有很多巨大的,很复杂的问题可以自然的分解为一串反复同样的,更简单的问题。那样就描述了从天气预报到制作电脑动画的一切。”[ ]
Beowulf是用来建立一个大量平行系统体系结构的名字,这个系统是脱离商业可用PC的。用于建立系统的电脑可以是486系统,奔腾系统和Alpha电脑;这些计算机并不需要是同一类型。即使是本应扔掉的老式PC机也能用来建立这样一个系统。在美国的Oak Ridge National Laboratory,建立了Stone超级电脑。它用将老式PC机通过标准以太网网络连接在一起的结合方式,并且用于解决绘制地图的问题。[ ] 该系统理论上的最高性能拥有1.2千兆flops(FLOPS代表了每秒钟浮点操作的次数。它用来近似衡量处理速度。1gigaflops是一千兆FLOPS)。
另一个例子是由纽约州立大学启动的超级计算机,它由2,000多台运行GNU/Linux的计算机组成,用来管理对抗癌症,Alzheimer疾病和艾滋病的药物研究。
开放源码软件的培训
虽然FOSS的培训通常并不是正规教育的一部分,但是教育机构还是可以在提供专业培训或者成人教育项目中发挥作用。
促进政府,教育机构,机构组织和公司部门采用GNU/Linux和FOSS的方法之一就是确保有合适的人力资源能力可用。一种短期衡量建立FOSS人力资源能力的标准就是为当前IT专业人员提供获得必须的技术和认证的途径。虽然很多系统管理员,网络工程师和其他IT专业人员应该靠他们自学,但是一个更加结构化的培训计划将保证系统的和足够的涵盖各个分支学科。认证过程将评估GNU/Linux和FOSS专业人员的能力;给与雇主信心;并能促进一个组织的雇佣方式。
GNU/Linux和FOSS培训主要是用来促进与工作相关的技术的。因为FOSS目前主要用于后台办公服务器,培训范围将包括操作系统,服务器,安全性以及网络应用软件的开发。
由于桌面应用软件正趋于成熟,培训用户使用这些应用软件的需求也日益增长。一些政府和公司或强迫性的或自愿的已经在贯彻向FOSS桌面应用软件移植的政策。但是,这些政策只有伴随着培训用户的协调工作一起进行才能成功。这些用户是受到这种驱使的影响才使用FOSS的。
认证
缺少技术支持经常是不考虑采用FOSS的原因之一。当然,还是可以通过各种新闻和邮寄清单提供非正规的技术支持的。就像Red Hat的发行商,提供可供一些机构购买的技术支持选项。但是目前有的通过GNU/Linux认证的专业人员联盟还有一段很长的路要走,以好减轻这些组织考虑采用GNU/Linux和FOSS的后顾之忧。
一个认证项目还帮助培训中心决定培训课程。不是开发自己的课程,培训中心而是采用一个广为认可的认证项目。认证还有其他的优点,例如GNU/Linux的行业共识,提供专业人员希望学习获得GNU/Linux技术的方法。
一个认证项目应该有一定形式测验来可靠地评估学生的能力。培训中心应该获得认证,并且教师自身也应该获得认证,以便适合于管理培训。[ ]
Linux专业学会(LPI)
Linux专业学会(LPI——www.lpi.org )是一个成立于1999年的非营利性的组织。它是独立于发行商的。它的活动目的在于推进GNU/Linux和FOSS的使用。
LPI认证项目由三个层次组成。它被设计用来认证系统管理员,系统工程师和其他IT专业人员使用GNU/Linux和其他相关服务器及功用的能力。虽然此项目使用的设备是由主流硬件和GNU/Linux版本发行商所提供,但是它并不基于任何特定GNU/Linux版本。
LPI用来对在任何GNU/Linux版本上良好全面的技术进行测试。为了保证有效性,可靠性和高质量,LPI不提直接供培训或者培训资料。很多国家都有LPI认证的培训和测试中心,提供宽泛的准备选择。
Red Hat认证工程师(RHCE)
Red Hat(www.redhat.com/training )有两种认证测试——Red Hat认证工程师(RHCE)和Red Hat认证技师(RHCT)。培训和测试强调实战技术,并且测验衡量了使用现有设备的能力。RHCE的目的是两组IT专业人才。第一组由系统管理员,网络工程师和其他已经拥有UNIX或者GNU/Linux经验和知识的IT人员组成。第二组则包括对UNIX或者GNU/Linux没有或有很少经验的IT专业人员。
RHCE和RHCT认证就是评估安装并设置Red Hat Linux,设置基本网络和文件系统,实质上的系统管理员和设置基本安全性的能力。RHCT是认证技师水的平并更多聚焦于客户端服务和在现有网络上支持Red Hat Linux系统。RHCE则把重点放在服务器服务和管理Red Hat Linux服务器能力的评估上。
Comp TIA Linux+
计算机技术行业联合会(CompTIA)的Linux+(www.comptia.org/certification/linux/default.asp )认证是另外一个对发行商中立的认证项目。它认证至少有6个月GNU/Linux实践经验的技师的只是和能力。CompTIA Linux+认证测验衡量了在GNU/Linux系统下计划和实施,安装,设置,管理,维护和排除故障的能力。这被认为是一个GNU/Linux的入门级认证。
政策问题
正如前几章所说的,FOSS在教育领域起着重要的作用。我们已经讲了它怎样在研究机构安装和运行ICT基础设施中使用的。它可用来满足特殊的管理需求,例如图书馆管理和安装学习管理系统。它的使用潜在的降低了提供ICT设备的成本。FOSS的使用也使得在计算机基础技术,编程,软件工程和其他非IT学科的教育改进成为可能。FOSS在理论研究方面也起一定作用。并且它还对更加开放发布理论研究内容有着影响和贡献。
不过,考虑到在教育领域采用FOSS,政策制定者和决策者应该了解一下问题。
软件采购
因为在教育机构使用FOSS有很多的好处,包括降低成本,可靠性,更好的性能以及可证明的更高的安全性。国家或者机构层面的战略性教育计划和政策应该对软件的采购作出公平考虑FOSS的指导方针。这些指导方针还应该适应获得各种课程中使用软件的决定。
可以用来为软件采购作出指导方针的不同方法有:
▲强制使用FOSS,除非没有合适的FOSS能代替相应的专有软件。
▲尽可能地推荐使用FOSS。
▲保证公平考虑FOSS并且不因支持专有软件而拒绝FOSS。
移植
在很多情况下,教育机构可能已经在后台服务器和桌面都使用专有软件了。这样的话,就应该推广移植使用FOSS的策略。第一步的开端通常是后台服务器,因为这种移植将是对用户透明的并且大范围的高质量FOSS已经可以用于服务器。除非是特定的应用软件,例如财务管理系统,还没有相应的FOSS可用。这种情况,可以对运行专有操作系统来支持这种应用软件的服务器进行维护,使它和其他基于FOSS的平台在同一个网络内共存。
对于桌面应用软件,采用FOSS潜在地能够带来更大的成本节约。但是,一项移植政策将不得不考虑现有专有软件的使用和维护一些理论研究需求的专有应用软件使用的需要。可以使用一种循序渐进地方法,例如,首先引介和支持在Windows上运行的FOSS应用软件,然后再引介GNU/Linux作为双引导系统。在维护双系统或者多系统时可能会有一个过渡期,这将会带来额外的支持成本。
机构内部可用的FOSS专家意见将决定系统管理员和其他IT支持人员的培训需求。用户培训可能对于其他管理用户也是必需的。
学校课程
越来也多的学校正在装备电脑设备并且很多学校已经开设了教受学生们计算机基础技术的课程。这些课程应该通过测试来保证不是基于特定专有软件的。如果需要的话,应该修改课程以便把重点放在教受概念和基础技术。正如我们前面所看到的,有适合计算机基础技术教育的FOSS可用,并且应该尽可能地使用。它有成本上的优势;抵制盗版软件;加强学生对于FOSS解决方案可用性的认知;并能避免过分依赖专有平台。这并不一定意味着专有软件应该被完全拒绝。如果资源可用,专有软件可用于证明软件可以完成的特定任务范围。
有很多用于特殊学科的FOSS教育软件可供使用。应该鼓励老师使用这些软件来提高教育和学习。如果有技术,还应该鼓励老师开发适合他们学生的软件,并将这些用作FOSS。
为了在学校课程中引介FOSS,对教师适当的培训也是同样需要的。这种情况下,重点在于培训老师使用适当的桌面FOSS,例如OpenOffice ,Mozilla和GIMP。
第三方机构课程
在第三方层面上,机构对计算机科学或者信息技术程序课程所考虑的政策应该鼓励结合FOSS。理论研究人员应该检查课程大纲并在需要的地方加以修改。应该引入将FOSS源代码可用性和鼓励分享并对正在开发的FOSS做贡献作为跳板的学生项目。除了传统语言之外,在FOSS开发中日益增加的诸如PHP,Perl,Python和Java之类的计算机语言的介绍也应该给予考虑。FOSS开发方法论和在FOSS开发中经常使用的工具应该并入软件工程课程。
应该教受非IT专业的学生计算机基础技术,这应该采用能够使用FOSS的课程,重点在于获得基础技术。如果有可用资源,让学生广泛接触包括FOSS和专有软件在内的软件是很有用的。应该确认并尽可能使用用于教受特定科目的FOSS。应该鼓励拥有必备技术的人员开发相关教育软件并作为FOSS发布。
为教育开发FOSS
从学习管理系统到可用于学校或者大学教授特定科目的软件,有大量用于教育用途FOSS的可用。但是,为了特殊国家的研究机构使用这些软件,修改它们以适合当地教育需求是很必要的。在不使用英语的国家作为教育的媒介,将软件翻译成当地语言还是有必要的。没有诸如学生信息系统或者用于特殊研究学科的软件之类合适的FOSS可用的地方,自然也没有开发新应用软件的需求。
为了鼓励自定义,本地化和为教育开发FOSS,相关的政府代理应该考虑为私人部门和研究机构建立激励机制来承贷这些活动。这能以授权的方式实现。这会帮助减轻包括开发对私人部门没有直接经济效益的教育FOSS投资的风险。
研究授权
前面我们给出了一些使用FOSS来研究的例子,并给出了为什么应该尽可能使用FOSS而不是专有软件的原因。为了促进在研究活动中FOSS的使用,代理方提供研究授权可以认为是使用FOSS的授权奖励标准之一。他们还指定任何作为研究活动开发的一部分开发的软件应该作为FOSS发布。无论研究是否于ICT有关都应该遵循这些条件,因为计算机软件经常在其他很多领域作为研究工具使用。
培训
需要立即着手建立执行和支持FOSS所需求的人力资源能力。这就需要建立培训中心来管理更适合指导诸如LPI或者RHCE认证的项目。培训中心可能是政府运营的,由私人部门建立或者由大学或者学院合伙建立。为了起到促进作用并保证有足够的教员可用来运行这些项目,可以建立“训练教员”项目。
词汇表
BIND
BIND(Berkeley Internet Name Domain )是一个在因特网上帮助解决因特网协议(IP)地址域名而开发的计算机程序。它是最为广泛使用的DNS服务器软件。
DHCP
DHCP是Dynamic Host Configuration Protocol的首字母缩写。每台连接到网络的电脑都需要设置一个IP地址。这个可以手动完成,但是最为普遍的还是由一个DHCP服务器动态分配IP地址。
DNS
DNS(Domain Name System)是一个因特网服务,它将域名转化为因特网协议(IP)地址。域名(例如,www.sample.com )更容易记忆和使用,但是因特网实际上还是基于隐藏的IP地址的(例如,198.101.208.15 )。因此,就需要二者之间的转换。
自由软件
自由软件中的“自由”二字指的是用户可以自由的运行,复制,分发,学习,修改和完善软件。它并不是指软件的价格。更加准确的说,如果软件对用户具有满足以下四种自由,那它就是自由软件:
▲运行程序的自由性,可以是任何目的。
▲学习程序怎样工作,还有根据个人需要改编程序的自由性。它的前提就是访问源代码。
▲再发布版本的自由性,这样你就可帮助你的近邻。
▲完善程序并将你的改进发布给公众的自由性,这样有利于整个社区。此项的前提就是访问源代码。
自由软件的定义和更加详细的解释请参看www.fsf.org/philosophy/free-sw.html 。
GCC
GCC(GNU Complier Collection)是一个包括大多数Linux版本的编程语言前端集合。它目前支持诸如C,C++,面向对象的C,ForTran,Java和Ada之类的计算机语言,而且还包括这些语言的语言库。人们正在努力改进它以使它包括如Pascal和COBOL的其他语言。
GIMP
GIMP(GNU Image Manipulation Programme)是最为著名的图像编辑FOSS。它可以在多种操作系统上使用。它还支持多种图像文件格式并被认为是能够与专有软件Adobe Photoshop相抗衡的FOSS。
GNOME
GNOME(GNU Network Object Model Environment)是两款Linux操作系统的用户图形界面桌面环境之一。它的目的是简化Linux操作系统的使用。
GNU
GNU是“GNU’s Not Unix”的递归缩写。1984年,Richard Stallman启动了一项计划来开发一个纯粹UNIX风格的操作系统并用作自由软件。这被称为GNU操作系统。
GPL
通用公共许可(GPL)最初是作为由自由软件基金会(FSF)发布的“自由软件”许可而使用的。在GPL下,用户可以运行,学习,复制和修改软件。用户还可以再发布修改过的软件。但是并不允许用户加入他们自己的限制,并且修改过的软件必须在相同许可模式下发布。
IDE
IDE(Integrated Development Environment)指的是一个集成计算机编程环境。它通常有一个对用户友好的图形用户界面,并提供开发计算机程序所必须的工具。
IMS
IMS(IMS Global Learing Consortium)是一个非营利性的全球范围的联盟。它包括教育机构,软件公司和出版商。它开发开放技术性规范来支持分布式学习。其中的一些规范正在国际性地被采用,作为学习技术的标准。这些规范使得不同作者的不同课程管理系统和内容能够一起工作或者交互操作。
KDE
KDE(K Desktop Environment)是两款主要的具有图形用户界面的Linux操作系统的桌面环境之一。其目的在于简化Linux操作系统的使用。
LAN
LAN(Local Area Network)是一个用于计算机之间通信的本地计算机网络,代表性的覆盖例如办公楼或者类似校园楼群的一个小范围区域。局域网可能连接到因特网或者可能是一个分开的独立网络。局域网通常用来共享诸如文件,打印机和磁盘存储之类的资源。
本地化
在软件文字方面,本地化是为特定市场适应,翻译和自定义产品的过程。这就意味着界面的修改以便产品对于本地用户是有意义的和可以理解的!除了语言问题,本地化还需要地址内容,并且文化问题也是一个技术问题。
LTSP
Linux终端服务器计划(LTSP)提供了必须的软件来建立一个无盘工作站或者简单客户端连接到Linux服务器的网络。它支持多种Linux版本,并且很多网站正在使用LTSP。在启动期间,无盘工作站从服务器获取必须的网络信息,并从服务器下载操作系统。任何服务器支持的程序都能从工作站运行。
OCW
2001年,麻省理工学院宣布了OpenCourseWare(OCW)计划。通过它可以使用麻省理工学院教受的2000门课程的课程资料。教育工作者,学生和自学者可以用从世界的任何地方在线获得这些资源。事实上所有研究学科的700门课程的资料目前可以在OCW的网站(ocw.mit.edu )上获得。
OKI
开放知识倡议(OKI)是由麻省理工学院于2001年提出的。它是由一些重点大学协作,由麻省理工学院和斯坦福大学领导的倡议。OKI的目标是定义一个开放和可扩展的技术学习体系,并尤其以高等教育社区的需求为目标。它提供了学习管理系统内部各个部分界面的规范,并帮助与其他系统的通信,包括现有的企业系统。
开放源码
开放源码软件不仅仅意味着访问源码。要作为合格的开放源码软件,软件版本模式必须遵循以下标准:
▲自由再发布
▲源码可用性
▲衍生工作的可能性
▲作者源码的完整性
▲个人或者团体的无区别性
▲努力领域的无区别性
▲许可的发布
▲许可不针对特定产品
▲许可不限制其他软件
▲许可必须技术中立
对于开源定义的更深层解释,请参考:www.opensourse.org/docs/definition.php
操作系统
OS(操作系统)是控制一台电脑的硬件和应用软件的软件集合。OS对它运行的不同应用程序进行管理和分配物力资源(CPU处理时间,硬盘空间,键盘输入等)。OS的例子有Windows,GNU/Linux,Solaris以及Mac OS X 。
Perl
Perl(Practical Extraction and Report Language)是一种用于处理文字的解释性编程语言,它主要用于CGI脚本。Perl由Larry Wall于1987年作为一款开源项目而开发。最初是为UNIX开发的。它现在可供不同操作系统使用。
PHP
PHP最初代表的是“Personal Home Page”。如今它则是“PHP:Hypertext Preprocessor”的递归首字母缩写。PHP是一个用于网络编程的开源服务器端脚本语言。你可以使用它给HTML网页添加动态功能或者创建完全由动态HTML生成的网站。PHP在服务器端执行,而客户端却看不到PHP代码。PHP兼容多种类型的数据库。
Python
Python是由Guido van Rossum于1991年开发的一种解释性的,交互性的并且面向对象的编程语言。Python容易携带并且能在绝大多数操作系统上运行。它适合于快速原型,并作为一种需要可编程界面应用软件的扩展性语言。虽然Python是有版权的,但即使是商业用途其源码是自由可用和发布的。
SCORM
SCORM(Shareable Content Object Reference Model)是一个基于XML的框架。它允许学习内容的交互操作,访问以及再次使用。使用SCORM制作的学习内容可以轻松的在不同的学习管理系统之间共享。
源码
软件的源码是一套由程序员使用特定计算机语言编写的编程指导。为了使计算机理解和运行软件,源码必须被编译或者“翻译”成机器代码(还指二进制代码,可执行代码或目标代码)。为了修改软件,源码必须可供修改,因为机器代码不是人类可读的。
TCO
TCO(Total Cost of Ownership)包括所有技术或者商业解决方案成本。除了初始投资成本,还包括诸如维护,技术支持,更换之类的成本。对于软件,TCO应该包括软件初始成本;更新成本;以及维护,技术支持和培训成本。
更深层次读物
1. Moody, G., Rebel Code–Linux and the Open Source Revolution, Penguin Books, 2002.
2. St. Onge, P. D., “Linux in Education: Two Years Later”, August 2002; available at freshmeat.net/articles/view/533/.
3. Kegel, D., “The Case for Linux in Universities”, Oct 2002; available at www.kegel.com/linux/edu/case.html.
4. Kegel, D., “The Undergrad CS Programme, Linux, and Open Source”, Mar 2003; available from www.kegel.com/linux/edu/curriculum.html.
5. Howland, J. E., “Software Freedom, Open Software and the Undergraduate Computer Science Curriculum”, Department of Computer Science, Trinity University, April 2000; available at www.cs.trinity.edu/~jhowland/ccsc2000/ccsc2000/ccsc2000.html.
6. Massey, B., “Open Source Software Development in the Unix Environment”, course in Portland State University; available at www.cs.pdx.edu/course.php?cid=110.
7. Cesarini, P. A., “Monocultural Alternative: The OpenCD”, Fall 2003, Computers and Composition Online; available at www.bgsu.edu/cconline/reviews/cesarini_review.htm.
8. Hart, T. D., “Open Source in Education”, May 2003, University of Maine; available at
portfolio.umaine.edu/~hartt/OS in Education.pdf.
9. Lineweaver, R.,“Cost savings of open source software in the server room—An informal case study in K-12 education”, 2002; available at staff.harrisonburg.k12.va.us/~rlineweaver.
10. Carmichael, P. and Honour, L.,“Open Source as Appropriate Technology for Global Education”, School of Education, University of Reading, UK; available at www.ellak.gr/pub/osdocs/education/carmichael.pdf&e=7413.
11. Robbins, J. E., “Adopting OSS Methods by Adopting OSS Tools”, CollabNet, Inc.; available at opensource.ucc.ie/icse2002/Robbins.pdf.
12. González-Barahona, J. M. and Robles, G., “Free Software Engineering: A Field to Explore”, UPGRADE - European Journal for the Informatics Professional, Vol.IV,No. 4,August 2003;available at www.upgradecepis.org/issues/2003/4/up4-4Gonzalez.pdf.
13. Gilbert, S.W.and Long,P., “Open Knowledge and Open CourseWare Initiatives: An Interview with MIT’s Phil Long”, The Technology Source, March/April 2002; available at ts.mivu.org/default.asp?show=article&id=979.
14. Siemens, G., “Free and Open Source Movements: Part 1 - History and Philosophies”, March 2003; available at www.xplana.com/whitepapers/archives/open_source_part1.
15. Siemens, G.,“Open Source Content in Education: Part 2 — Developing, sharing, expanding resources”, March 2003; available at www.xplana.com/whitepapers/archives/open_ source_part2.
16. Bretthauer,D., “Open Source Software: A History, Information Technology and Libraries”, Vol. 21,No. 1; available at www.lita.org/Content/NavigationMenu/LITA/LITA_Publications4/ITAL__Inform....
17. Lakhani, K. R. and Wolf, R. G., “Why Hackers Do What They Do: Understanding Motivation Effort in Free/Open Source Software Projects”, MIT Sloan School of Management, September 2003; available at freesoftware.mit.edu/papers/lakhaniwolf.pdf.
关于作者
Tan Wooi Tong是国际开源网络在UNDP的亚太信息计划开发署的一位编程专家。他获得了美国麻省理工学院的学士和硕士学位。他有着20多年信息技术领域,理论研究机构和工程公司的工作经验。
由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名开发者现在有可能合力编写这个程序。减少的重复劳动使得自由/开源软件可以