开源这个说法,大概有10年以上的历史了。我在Google中搜索了一下,看看有没有一个比较确定的解释;可是很遗憾,搜出来的结果总让人不好理解。这里我们暂时不管别人的说法,自己来发挥一下也是符合开源精神的。
开源,从字面上理解就是开放源码(open source),是软件作者通过公开源代码,把软件的控制权和选择权转移给用户或大众,从而促进技术的进步和市场的繁荣。这种解释过于狭隘,也不怎么符合实际,我们很有必要把它扩充一下。
- 开源应当是共享资源、自由选择的一种精神。这与Windows一类的商业软件有很大的不同。任何人都可以使用已有的资源/工具,并且根据自己的需要对其进行修改而不会引起法律方面的诉讼。
- 开源应当是一种体系结构的开放。除了软件开源外,硬件、体系结构也应当是开放的、可兼容的。相对于Sun 的SPARK架构,Intel 架构就是开源的。它这种开放的架构,可以兼容更多的硬件、运行更多类型的操作系统,这使得它在市场上具备更强的竞争力。
- 开源应当是一种共享精神。把自己的经验写成文档,以帮助他人少走弯路,促进更多的人相互分享和进步。
在互联网领域,有很多成功使用开源技术的例子。例如Google、Yahoo、百度、Sina、Amazon、Facebook等。对于机构和组织来说,开源是唯一的选择么?不是的,据我所知,国内几家旅游类及网络招聘类的上市公司,使用的就是商业解决方案。选择何种技术方案,一直以来似乎都争论不休;尽管在互联网这个行当,采用开源技术方案的组织和机构占了很大的比例,但这并不意味开源就是上上之选。何去何从,还要看具体的情况:一些不缺钱的官家组织,会认为商业解决方案是其最佳选择。
本人鼓励和支持读者选择开源技术方案,理由如下。
(1) 成本。在互联网行业,需要大量的服务器来满足业务需求,一个千万量级的网站,其后面运行的服务器可能数以百计,如果采用开源技术,仅软件授权许可就省了很大一笔开支。换言之,如果使用非开源技术,操作系统要花钱购买,各种应用程序也得花钱购买。
(2) 自我挑战。使用开源技术,不可能像商业软件那样出了问题就可以打电话给服务商,坐等服务商前来处理。凡事自己动手,风险自己承担,对个人来说,确实是一种考验和挑战。当然,如果我们愿意承受这种压力并以此为乐的话,我们的技能和水平将得到很大的提升。
(3) 不受制于人。系统和应用完全在我们的控制之下,非常自由;如果使用非开源的商业软件,用户将完全依赖于软件提供商,基本无自由可言。
(4) 灵活的定制能力。可以尽可能按自己的意愿和实际要求进行取舍,甚至修改软件。而对于非开源的软件,不管你用不用得上的功能,一股脑给你安装上去了。
本书的所有内容,均与开源相关,归纳起来,可以分为以下几个方面。
- 开源的系统:CentOS及FreeBSD等。
- 开源的工具:Apache、MySQI、LVS、Bind、Postfix、PHP、Java、Moosefs、Nagios、Hadoop等。
- 开源的硬件架构:Intel。
- 开源的精神:共享经验。
阅读(2146) | 评论(0) | 转发(0) |