开源软件之道
分類: 图书,计算机/网络,软件工程/开发项目管理,
作者: 蔡俊杰主编
出 版 社: 电子工业出版社
出版时间: 2010-4-1字数: 404000版次: 1页数: 266印刷时间: 2010-4-1开本: 16开印次: 1纸张: 胶版纸I S B N : 9787121104831包装: 平装
内容简介本书将开源运动的前世今生和游戏规则完整地呈现给读者。第一篇帮助大家认识开源,包括其定义、历史、现状、优势、使用成本、商业模型等。第二篇探讨使用开源软件时需要注意的各项具体事宜,特别是与知识产权相关的方面,例如软件著作权、许可证等,然后分享搜索所需开源软件的技巧,并罗列了一些流行的开源软件。第三篇全面介绍如何参与开源社区的工作,引导大家融入开源社区从而探析各个开源软件的技术精髓,深入认识开源文化,提升个人在技术、交流等各方面的能力,希望能帮助提高国内开发人员的整体水平——这对于中国软件行业的发展善莫大焉!
本书适合对开源软件感兴趣的人员、IT从业人员、致力于开源健康发展的人员阅读和参考。
作者简介蔡俊杰,IBM中国开发中心开源Java开发架构师,带领团队参与在Apache Harmony和Apache Geronimo等开源社区中。历任项目经理、部门经理。目前专注于Java平台技术和云计算,同时对用户体验比较感兴趣。
目录第1篇 了解开源软件
第1章 开源软件概述
1.1 开源软件的理解
1.2 开源软件的定义
1.3 开源软件定义的意义
1.4 开源软件和其他类型软件的比较
第2章 开源软件的历史与未来
2.1 开源软件的历史
2.2 开源运动背后的理想与现实
2.2.1 理想主义的兴起
2.2.2 技术精英的推动
2.2.3 现实业界的需求
2.3 开源社区的壮大
2.4 开源软件的领袖
2.5 开源软件的未来
第3章 开源软件的好处
3.1 高质量
3.2 零许可证费
3.3 开放和自由
3.4 灵活可定制
3.5 公开透明
3.6 良好的学习平台
第4章 开源软件的成本
4.1 部署和迁移成本
4.2 人员和培训成本
4.3 管理维护和技术支持成本
4.4 风险控制成本
第2篇 使用开源软件
第5章 正确使用开源软件
5.1 管理体制
5.2 法律风险
5.2.1 法律因素之著作权
5.2.2 法律因素之许可证
5.2.3 法律因素之专利
5.2.4 问题解析
5.2.5 验证著作权,正本清源
5.2.6 调查专利,借力打力
5.2.7 解读许可证,明察秋毫
5.3 成熟度
5.3.1 优秀的领导者
5.3.2 差异化的开发者社区
5.3.3 庞大的优质用户群
5.3.4 健康的项目“脉动”
5.3.5 健全的安全补丁体制
5.3.6 较完善的文档
5.4 服务
5.5 寻找合适的开源软件
第6章 开源软件之语言和平台
6.1 Harmony
6.2 Android
6.3 Python
6.4 Ruby
6.5 PHP
6.6 Groovy
6.7 Perl
6.8 Flex
6.9 OpenLaszlo
第7章 开源软件之框架和库
7.1 Spring
7.2 Struts
7.3 JBoss Seam
7.4 Equinox
7.5 Hibernate
7.6 iBATIS
7.7 Lucene
7.8 Webkit
第8章 开源软件之服务器软件
8.1 Apache HTTP服务器
8.2 Tomcat
8.3 Jetty
8.4 Geronimo
8.5 JBoss
8.6 GlassFish
8.7 MySQL
8.8 PostgreSQL
8.9 Derby
8.10 FileZilla Server
第9章 开源软件之开发工具
9.1 Eclipse
9.2 NetBeans
9.3 Apache Ant
9.4 Apache Maven
9.5 CVS
9.6 Subversion
9.7 GIT
9.8 Bugzilla
9.9 JUnit
9.10 TestNG
第10章 开源软件之桌面应用
10.1 GNOME
10.2 OpenOffice.org
10.3 Emacs
10.4 Firefox
10.5 Thunderbird
10.6 GIMP
10.7 FreeMind
10.8 -Zip
第3篇 参与开源项目
第11章 开源社区的基础设施
11.1 基础设施
11.1.1 主页(Home Page)
11.1.2 代码库(Code Repository)
11.1.3 邮件列表(Mailing List)
11.1.4 缺陷追踪系统(Bug Tracking System)
11.1.5 Wiki
11.1.6 其他
11.2 开源项目托管网站
第12章 开源组织和社区
12.1 Apache软件基金会
12.1.1 Apache的历史
12.1.2 Apache组织结构
12.1.3 Apache开发模式
12.1.4 Apache法律问题处理
12.1.5 Apache项目简介
12.1.6 Apache运营模式
12.2 自由软件基金会
12.2.1 FSF的历史
12.2.2 FSF的目标
12.2.3 FSF组织结构
12.2.4 GNU工程
12.3 Linux Kernel社区
12.3.1 Linux Kernel的历史
12.3.2 Linux Kernel社区文化和价值观
12.3.3 Linux Kernel开发模式
12.3.4 Linux Kernel运营模式
12.4 Eclipse社区
12.4.1 Eclipse的历史
12.4.2 Eclipse的发展
12.4.3 Eclipse组织结构
12.4.4 Eclipse项目简介
12.4.5 Eclipse运营模式
12.4.6 Eclipse Con大会
12.5 Mozilla社区
12.5.1 Mozilla的历史
12.5.2 Mozilla组织结构
12.5.3 Mozilla开发模式
12.6 Linux相关社区
12.6.1 Archlinux社区
第13章 商业模式与实例
13.1 许可证的决定性
13.2 商业模式实例
13.2.1 增值产品
13.2.2 技术支持
13.2.3 咨询
13.2.4 广告模式
13.2.5 软硬件结合
13.2.6 双重授权
13.2.7 社区模式
13.2.8 Ubuntu“模式”
第14章 参与开源社区
14.1 开始加入
14.2 社区讨论与工作
14.2.1 参与社区讨论
14.2.2 参与社区工作
14.3 提升自己
14.4 礼仪规范
14.4.1 撰写邮件的礼仪和规范
14.4.2 邮件列表的礼仪和规范
14.4.3 发言的礼仪
14.5 开源开发的最佳实践
14.6 企业参与开源
14.6.1 需求
14.6.2 风险
14.6.3 企业参与开源的策略
第15章 开创事业
15.1 项目启动与计划
15.2 选择正确的许可证
15.3 基础设施构建
15.3.1 SourceForge托管开源项目基础设施构建
15.3.2 Google Code托管开源项目基础设施构建
15.4 宣传与坚持
媒体评论开源的优点之一是让软件变得更加民主,使得本地的问题能够用本地的方法来解决,从而让用户避免受制子自上而下的控制。——Eric S.Raymand 开源促进会共同创始人及现任主席 我希望这本书能将你带入开源的世界,开始一个丰硕而精彩的旅程。——Bill Stoddard Apache软件基金会初始成员、两任理事会成员 这本书提供了一个很好的基础,可以让大家理解开源、开源能做的和不能做的、以及如何最大程度地实现开源带来的商业利益。——Robert S.Sutor博士 IBM软件部副总裁及开源和kinux战略主管 我很高兴看到这本详细、系统地介绍开源软件的书。我相信当你开始探索开源软件带来的激动人心的新天地时,你会发现这本书的可贵价值。——Kevan Mitler Apache软件基金会副会长及Geronimo项目管理委员员主席 IBM成功地参与了众多技术领域内的开源软件。本书将与你分享一个沉浸子开源生活方式的团队的经验,告诉你如何受益、如何避免错误从而让开源为你所用。——Tim Enison Apache软件基金会副会长及Harmony项目管理委员会主席
书摘插图第1篇 了解开源软件
第1章 开源软件概述
1.2 开源软件的定义
开源软件促进会即OSI(Open Source Initiative)对开源软件有明确的定义,业界公认只有符合这个定义的软件才能被称为开放源代码软件,简称开源软件。这个称呼来自于Eric Raymond的提议。
OSI对开源软件的定义一共有十个条款,具体内容如下(注解是笔者自己的理解)。
1.自由再发布
开源软件的许可证不应限制任何个人或团体将包含该开源软件的广义作品进行销售或者赠与。许可证不能要求收取任何和这种销售相关的著作权授权费或其他费用。
【注解】这条标准给予人们自由地再发布开源软件的权利,不管是为了个人目的还是商业目的,都不会受限制,并且是免费的。
2.源代码
开源软件的程序必须包含源代码,必须允许发布源代码及编译后的程序。如果产品中没有包含源代码,那么必须提供一个公开的获取源代码的方式。这种方式可以收取的费用不能超过对源代码进行一次复制所需要的合理的成本(例如制作一张CD的成本),最好是可以通过互联网提供免费下载。源代码的形式必须易于程序员修改,不能故意对源代码进行模糊化处理,也不得以预处理器或转译器输出的中问结果的形式提供源代码。
【注解】这条标准保证了程序源代码的公开性,同时确保源代码可以比较容易被修改,这样大大提高了开源软件的接受度和生命力。
……
书摘与插图