本书将开源运动的前世今生和游戏规则完整地呈现给读者。第一篇帮助大家认识开源,包括其定义、历史、现状、优势、使用成本、商业模型等。第二篇探讨使用开源软件时需要注意的各项具体事宜,特别是与知识产权相关的方面,例如软件著作权、许可证等,然后分享搜索所需开源软件的技巧,并罗列了一些流行的开源软件。第三篇全面介绍如何参与开源社区的工作,引导大家融入开源社区从而探析各个开源软件的技术精髓,深入认识开源文化,提升个人在技术、交流等各方面的能力,希望能帮助提高国内开发人员的整体水平——这对于中国软件行业的发展善莫大焉!<br />本书适合对开源软件感兴趣的人员、IT从业人员、致力于开源健康发展的人员阅读和参考。<br />目录<br />第1篇 了解开源软件<br />第1章 开源软件概述 2<br />1.1 开源软件的理解 2<br />1.2 开源软件的定义 3<br />1.3 开源软件定义的意义 5<br />1.4 开源软件和其他类型软件的比较 6<br />第2章 开源软件的历史与未来 9<br />2.1 开源软件的历史 9<br />2.2 开源运动背后的理想与现实 12<br />2.2.1 理想主义的兴起 12<br />2.2.2 技术精英的推动 13<br />2.2.3 现实业界的需求 14<br />2.3 开源社区的壮大 15<br />2.4 开源软件的领袖 16<br />2.5 开源软件的未来 17<br />第3章 开源软件的好处 19<br />3.1 高质量 19<br />3.2 零许可证费 21<br />3.3 开放和自由 22<br />3.4 灵活可定制 22<br />.3.5 公开透明 23<br />3.6 良好的学习平台 23<br />第4章 开源软件的成本 25<br />4.1 部署和迁移成本 25<br />4.2 人员和培训成本 26<br />4.3 管理维护和技术支持成本 27<br />4.4 风险控制成本 28<br />第2篇 使用开源软件<br />第5章 正确使用开源软件 32<br />5.1 管理体制 32<br />5.2 法律风险 33<br />5.2.1 法律因素之著作权 34<br />5.2.2 法律因素之许可证 35<br />5.2.3 法律因素之专利 36<br />5.2.4 问题解析 37<br />5.2.5 验证著作权,正本清源 38<br />5.2.6 调查专利,借力打力 40<br />5.2.7 解读许可证,明察秋毫 41<br />5.3 成熟度 56<br />5.3.1 优秀的领导者 57<br />5.3.2 差异化的开发者社区 57<br />5.3.3 庞大的优质用户群 58<br />5.3.4 健康的项目“脉动” 58<br />5.3.5 健全的安全补丁体制 59<br />5.3.6 较完善的文档 60<br />5.4 服务 60<br />5.5 寻找合适的开源软件 61<br />第6章 开源软件之语言和平台 63<br />6.1 Harmony 63<br />6.2 Android 66<br />6.3 Python 69<br />6.4 Ruby 72<br />6.5 PHP 74<br />6.6 Groovy 76<br />6.7 Perl 78<br />6.8 Flex 80<br />6.9 OpenLaszlo 82<br />第7章 开源软件之框架和库 84<br />7.1 Spring 84<br />7.2 Struts 87<br />7.3 JBoss Seam 89<br />7.4 Equinox 91<br />7.5 Hibernate 93<br />7.6 iBATIS 95<br />7.7 Lucene 97<br />7.8 Webkit 99<br />第8章 开源软件之服务器软件 101<br />8.1 Apache HTTP服务器 101<br />8.2 Tomcat 103<br />8.3 Jetty 104<br />8.4 Geronimo 105<br />8.5 JBoss 108<br />8.6 GlassFish 109<br />8.7 MySQL 111<br />8.8 PostgreSQL 114<br />8.9 Derby 116<br />8.10 FileZilla Server 118<br />第9章 开源软件之开发工具 120<br />9.1 Eclipse 120<br />9.2 NetBeans 122<br />9.3 Apache Ant 124<br />9.4 Apache Maven 126<br />9.5 CVS 128<br />9.6 Subversion 130<br />9.7 GIT 131<br />9.8 Bugzilla 133<br />9.9 JUnit 135<br />9.10 TestNG 137<br />第10章 开源软件之桌面应用 139<br />10.1 GNOME 139<br />10.2 OpenOffice.org 142<br />10.3 Emacs 145<br />10.4 Firefox 147<br />10.5 Thunderbird 150<br />10.6 GIMP 151<br />10.7 FreeMind 152<br />10.8 7-Zip 154<br />第3篇 参与开源项目<br />第11章 开源社区的基础设施 158<br />11.1 基础设施 158<br />11.1.1 主页(Home Page) 158<br />11.1.2 代码库(Code Repository) 158<br />11.1.3 邮件列表(Mailing List) 159<br />11.1.4 缺陷追踪系统(Bug Tracking System) 160<br />11.1.5 Wiki 161<br />11.1.6 其他 161<br />11.2 开源项目托管网站 162<br />第12章 开源组织和社区 165<br />12.1 Apache软件基金会 165<br />12.1.1 Apache的历史 165<br />12.1.2 Apache组织结构 166<br />12.1.3 Apache开发模式 169<br />12.1.4 Apache法律问题处理 172<br />12.1.5 Apache项目简介 174<br />12.1.6 Apache运营模式 176<br />12.2 自由软件基金会 177<br />12.2.1 FSF的历史 177<br />12.2.2 FSF的目标 178<br />12.2.3 FSF组织结构 179<br />12.2.4 GNU工程 180<br />12.3 Linux Kernel社区 181<br />12.3.1 Linux Kernel的历史 181<br />12.3.2 Linux Kernel社区文化和价值观 185<br />12.3.3 Linux Kernel开发模式 186<br />12.3.4 Linux Kernel运营模式 188<br />12.4 Eclipse社区 189<br />12.4.1 Eclipse的历史 189<br />12.4.2 Eclipse的发展 190<br />12.4.3 Eclipse组织结构 192<br />12.4.4 Eclipse项目简介 193<br />12.4.5 Eclipse运营模式 196<br />12.4.6 Eclipse Con大会 196<br />12.5 Mozilla社区 197<br />12.5.1 Mozilla的历史 197<br />12.5.2 Mozilla组织结构 198<br />12.5.3 Mozilla开发模式 198<br />12.6 Linux相关社区 200<br />12.6.1 Archlinux社区 200<br />第13章 商业模式与实例 203<br />13.1 许可证的决定性 203<br />13.2 商业模式实例 205<br />13.2.1 增值产品 205<br />13.2.2 技术支持 207<br />13.2.3 咨询 211<br />13.2.4 广告模式 212<br />13.2.5 软硬件结合 213<br />13.2.6 双重授权 215<br />13.2.7 社区模式 216<br />13.2.8 Ubuntu“模式” 216<br />第14章 参与开源社区 219<br />14.1 开始加入 219<br />14.2 社区讨论与工作 220<br />14.2.1 参与社区讨论 220<br />14.2.2 参与社区工作 221<br />14.3 提升自己 225<br />14.4 礼仪规范 227<br />14.4.1 撰写邮件的礼仪和规范 227<br />14.4.2 邮件列表的礼仪和规范 228<br />14.4.3 发言的礼仪 231<br />14.5 开源开发的最佳实践 235<br />14.6 企业参与开源 238<br />14.6.1 需求 238<br />14.6.2 风险 238<br />14.6.3 企业参与开源的策略 239<br />第15章 开创事业 242<br />15.1 项目启动与计划 242<br />15.2 选择正确的许可证 247<br />15.3 基础设施构建 249<br />15.3.1 SourceForge托管开源项目基础设施构建 249<br />15.3.2 Google Code托管开源项目基础设施构建 259<br />15.4 宣传与坚持 263
蔡俊杰,IBM中国开发中心开源Java开发架构师,带领团队参与在Apache Harmony和Apache Geronimo等开源社区中。历任项目经理、部门经理。目前专注于Java平台技术和云计算,同时对用户体验比较感兴趣。
吕晶,Apache Harmony PMC(Project Management Committee)成员,就职于IBM中国开发中心Harmony开发团队,Open Source爱好者和宣传者,目前比较关心的技术是Java、Linux、网络服务和集群计算。对Apache社区有近三年的持续贡献。
连理,毕业于复旦大学,IBM中国开发中心新兴技术学院架构师。曾参于DITA open toolkit和IBM Eclipse Help System等与开源相关的软件开发项目.历任项目经理.部门经理。对开源项目的管理.开发有三年的实践经验.
邱小侠,IBM中国软件开发中心软件工程师,毕业于南京大学,现在IBM Harmony项目从事J2SE类库开发的工作,他还是Apache Harmony项目的commftter.
吴玥颢,Harmony项目经理,Apache Harmony PMC(Project Management Committee)成员,共创软件联盟2008开源软件杰出贡献奖获得者,具有多年开源软件领域第一线的工作经验.