开源软件

简述

开放源代码软件(Open Source Software),简称:OSS或开源软件。

这种“公开”正是促使人们使用它的原因,因为这意味着用户可以自由的使用、复制、散发以及修改源码(补充漏洞,按具体需求定制功能)。与其相对是私有/专属软件,如:来自微软和苹果的软件,这类软件的源代码是保密的,只有公司的开发人员才可以改动代码。

  • 简述
  • 为什么会有开源软件
  • 开源软件的发展历程
  • 开源软件的特点
  • 开源大家族
  • 无处不在的开源产品
  • 严格遵守协议
  • 更多参考

为什么会有开源软件

广义上讲,开源软件指所有公开源代码的软件,包括某些商业软件也可能是开源的。但我们通常所说的开源软件,是狭义上的,指任何人可以通过极低的成本 (如仅仅访问互联网而无需其它额外费用)获得该软件源代码的软件,也就是其源代码向公众开放。和狭义上的开源软件相对应的,就是那些不向公众公开源代码的软件,通常就是商业软件。

实质上,在计算机出现的最初年代,几乎所有的软件都是开源的。那时的计算机企业,主要是以销售硬件产品为主,软件几乎都是附送的,加上那时的软件规模都不大,以源代码形式提供给用户还可以缓解一定的技术支持压力 - 有问题由用户自己修改解决。所以,最初的软件几乎都是以开源的方式提供的。因此,对着迷于计算机编程的工程师来讲,获得软件的源代码几乎是天经地义的事情。这样,当以微软为代表的企业开始实践纯软件产品的商业模式(核心思想是提供二进制可执行程序的使用许可,而不提供源代码),就引起了许多计算机编程爱好者的不满:给我一堆二进制程序,我如何才能按我自己的想法改进程序?在这种背景下,真 正意义上的开源软件就自然而然地产生了。

开源软件的发展历程

开源软件的发展,和互联网的发展密不可分。真正有规模的开源软件,应该是从上个世纪90年代开始进入公众视线,也就是互联网开始兴起的年代。我们大致可以将开源软件的发展分为如下三个阶段:

  1. 萌芽阶段(上世纪九十年代之前)。这个阶段主要以个人和大学为主,因为发布条件受限,大多数开源软件无法得到有效传播,而仅仅流传于互相熟悉的程序员和老师、学生之间。这个阶段的典型开源软件为BSD操作系统。
      
  2. 以非盈利组织为主的阶段。这个阶段应从上个世纪九十年代算起,说起这个阶段,我们不得不提到Richard Stallman发起的自由软件基金会,还有Apache基金会等。前者发起的GNU项目(1983年发起,九十年代后随Linux普及),成就了Linux操作系统;后者维护的Apache Web服务器,在互联网上几乎占据了统治地位。
      
  3. 以大型IT企业为主的阶段。这个阶段出现于2005年之后,以谷歌为代表的大型互联网企业,开始以各种方式发布开源软件,最为著名的是Chrome浏览器以及Android操作系统;当然还有Intel、Nokia等企业主导的Moblin、MeeGo等基于Linux的智能手机操作系统。

开源软件的特点

不得不说Linux,包括很大多数软件为何得以流行,乃至飞速发展,说白了,通俗点就是:花钱少、免费,这是其中很重要的一个因素。

但是需要注意,虽然说绝大多数开源软件是免费的,但是开源和免费并不是等同的。也就是说开源软件可以卖钱,当然,并是不是把编译之后的代码给你,而是源代码。

下面,我们列举开源软件的一些特点:

  • 使用的自由
    绝大多数开源软件免费
  • 研究的自由
    可以获得软件源代码
  • 散步及改良的自由
    可以自由传播、改良甚至销售

开源大家族

如果不了解开源运动的发展史,也许真的无法领略到它给当今计算机科学所带来的影响有多大。

上图只代表了开源软件的冰山一角。。。下面,我们J简单介绍几种最常见的开源软件:

  • 操作系统:Linux

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

  • 浏览器:Firefox

Mozilla Firefox,中文名通常称为“火狐”,是一个开源网页浏览器,使用Gecko引擎(即非ie内核),可以在多种操作系统如Windows,Mac和linux上运行。Firefox由Mozilla基金会与数百个志愿者所开发,原名“Phoenix”(凤凰),之后改名“Mozilla Firebird”(火鸟),再改为现在的名字。到2012年8月,在世界范围内,Firefox占据着23%的使用份额。

  • 集成开发环境:Eclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

  • 网页服务器:Apache HTTP Server

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。

  • 脚本语言:PHP

PHP是一种通用开源脚本语言。独特的语法混合了C、Java、Perl以及PHP自创的语法,利于学习,使用广泛,主要适用于Web开发领域。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其它的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

  • 数据库:MySQL

MySQL是全球使用范围最广的数据库系统。2009年,全球的MySQL安装数量已达1千1百万。它是LAMP架构(Linux, Apache, MySQL, PHP)中的M。众多知名网站和产品均使用MySQL,比如:维基百科、Facebook、Google和Wordpress。(Google和Facebook均改造了MySQL,以满足自身需求)。

  • DNS服务器软件:BIND

BIND是一款开放源码的DNS服务器软件,Bind由美国加州大学Berkeley分校开发和维护的,全名为Berkeley Internet Name Domain它是目前世界上使用最为广泛的DNS服务器软件,支持各种unix平台和windows平台。

无处不在的开源产品

很多人可能尚未意识到,我们使用的电脑中运行有开源软件,手机中运行有开源软件,家里的电视也运行有开源软件,甚至小小的数码产品(如电子相框)中也运行有开源软件,尤其是互联网服务器端软件,几乎全部是开源软件。毫不夸张地说,开源软件已经渗透到了我们日常生活的方方面面。

你访问的网站,大部分是使用Apache的Web服务器;你访问的网站,大部分操作系统是Linux或BSD;你访问的网站,大部分都是使用MySQL;你提交DNS查询请求由BIND服务器分析处理;你访问的博客很可能就是Wordpress的;你用的手机操作系统大部分是Android的;甚至你现在就是用Firefox在阅读我的的这篇文章。

开源是未来新IT的发展方向,开源让业界更多的优秀人才一起参与到共同的项目中,通过开放促进了技术的创新,通过共享解决了复杂性的问题。

严格遵守协议

除了大家比较熟悉的GPL协议之外,开源界还有很多许可证,如:LGPL许可证、BSD许可证等。

无规矩不成方圆。在使用开源产品的时候我们必须严格遵守相应的开源协议,要么和下面几位一样就尴尬了。

FFmpeg耻辱柱名单:

  1. 暴风影音
  2. POTPLAYER
  3. GOM PLAYER
  4. KMPlayer
  5. QQ影音

由于FFmpeg是在LGPL/GPL协议下发布的(如果使用了其中一些使用GPL协议发布的模块则必须使用GPL协议),任何人都可以自由使用,但必须严格遵守LGPL/GPL协议。目前有很多播放软件都使用了FFmpeg的代码,但它们并没有遵守LGPL/GPL协议,没有公开任何源代码,所以被列入FFmpeg耻辱名单。

更多参考

  • 关于开源软件:你不知道的那些事儿
时间: 2024-08-30 08:07:29

开源软件的相关文章

Facebook、微信团队、Twitter、微软开源软件列表一览

  编者按:本文来自微信公众号"InfoQ"(ID:infoqchina),编辑小智:36氪经授权发布. 对于为什么要发布开源项目,Facebook开源项目负责人曾经解释过:一是开源能够帮助他人更快地开发软件,促进世界创新,主要是社会价值层面的考虑.二是开源能够倒逼Facebook的工程师写出更好的代码.三是开源能够更有效利用社区的力量,帮助Facebook一起解决难题.开源,让世界更美好,不是吗? Facebook开源软件列表 从Facebook的GitHub账户中可以看到,Face

开源软件的时代来临

在将来的五年中,有一半的IT软件将是开源软件.开源软件引领这云计算,大数据,移动互联网和企业移动时代的发展.在调查中,MichaelSkok(NorthBridgeVenturePartners合伙人)表示根据目前移动应用和云计算应用的部署情况来看,我们正在进入一个令人激动的开源创新时代.这不仅仅是说开源软件的创新会更快,更是意味着这些软件可以在云端快速的部署,并且作为一项服务被使用. 其他接受调查的人表示,软件的质量是他们选择开源软件的最重要的三个原因之一.他们同时认为软件的成熟度也同样重要.

2013年应该关注的10个开源软件

  本列表来自黑鸭子软件的"年度新人"奖,该奖项主要关注 JavaScript 和移动方面. 黑鸭子在周三发布了其 "2012 Open Source Rookies of the Year" ,该列表中特别指出了 10 个在 2013 年值得关注的开源软件. 这些软件包括: 1. Ansible Ansible 提供一种最简单的方式用于发布.管理和编排计算机系统的工具,你可在数分钟内搞定. Ansible 是一个模型驱动的配置管理器,支持多节点发布.远程任务执行.

.NET 将推动开源软件的发展 justleon(原作)

NET 将推动开源软件的发展    justleon(原作)         在过去的时间里,基于Windows的开源软件物数量实在太少了.在网上查找一些开发相关的网站,内容也不外乎抄来抄去那几篇怎么做三角的Button啊,怎么做不规则的窗体啊,怎么把程序放到右下角的托盘中啊.当然不是Windows的程序员就是这种水平,当然也不是Windows程序员不团结,搞不出一个开源软件.      在Windows上的开源项目的阻力来源于:1.OS的封闭:MS做了太多的东东,束缚了程序员的创造力:3.开发

初创的互联网公司是使用开源软件还是自主开发

导读:开源软件具有很大的优势,这不容否认,无论是技术上还是产品成熟度上,许多开源的网站程序都满足了大多数用户的需求.不过对于某些公司来说自主开发的程序可能更实用,这一起的出发点就在于公司对于自身需求的认识. 不可否认,经过几年的潜心研发,现在很多开源软件已经非常成熟,那么作为一家初创的互联网公司,我们是该使用开源软件还是自主开发呢? 我有一个技术出身的朋友,自己做了一个论坛,当做完后,在网上发现了开源的DZ,觉得自己的论坛太简单,功能和成熟程度远远不如DZ,于是非常后悔,每次讨论到开发的时候就谈

.NET将推动开源软件的发展

在过去的时间里,基于Windows的开源软件物数量实在太少了.在网上查找一些开发相关的网站,内容也不外乎抄来抄去那几篇怎么做三角的Button啊,怎么做不规则的窗体啊,怎么把程序放到右下角的托盘中啊.当然不是Windows的程序员就是这种水平,当然也不是Windows程序员不团结,搞不出一个开源软件. 在Windows上的开源项目的阻力来源于:1.OS的封闭:MS做了太多的东东,束缚了程序员的创造力:3.开发语言和工具太多太杂了,各种程序员之间无法顺利的交流.Linux方面天生没有这些桎梏,系统

基于开源软件在Azure平台建立大规模系统的最佳实践

前言 Microsoft Azure 是微软公有云的唯一解决方案.借助这一平台,用户可以以多种方式部署和发布自己的应用. 这是一个开放的平台,除了对于Windows服务器和SQL Server的支持,Microsoft Azure也支持了大量主流开源软件和框架,包括Linux, Tomcat, Java等.如何将一个基于开源软件的系统迁移到Microsoft Azure平台,并充分发挥云在弹性.敏捷性等方面的优势? 本文和读者分享一些最佳实践经验,并在文末以中国网络电视台的系统迁移作为参考案例.

Java开源软件六大帮派

Java开源软件千千万,就好像一个江湖,有势力的有背景的就结成了一个帮派,经过不断的竞争,淘汰,六大帮派脱颖而出. 丐帮 - Apache Software Foundation 在我开始学习Java的时候,Apache的Jakarta子项目还很弱小,Apache的头牌是Apache HTTPD Server(至今也还是头牌),如今已经成了江湖第一大帮.Apache势力庞大,背后有众多大厂商的支持,例如IBM资助了apache的好几个 project,Sun则和tomcat合作密切,而BEA砸下

云计算结合开源软件和SaaS后有什么优点

  每天使用的"百度""谷歌"就是云计算的最好应用,问题是我们如何看待云计算在企业信息化的应用前景.我想就这个问题谈一下个人看法: 1.云计算四个显著特点 云计算提供了最可靠.最安全的数据存储中心,用户不用再担心数据丢失.病毒入侵等麻烦. 云计算对用户端的设备要求最低,使用起来也最方便. 云计算可以轻松实现不同设备间的数据与应用共享. 云计算为我们使用网络提供了几乎无限多的可能. 2.基于云计算的信息系统具有 1)成本优势 2)性能优势 3)功能集成优势 4)安全优

微软、谷歌、Facebook等硅谷大厂91个开源软件盘点(附下载地址)

开源软件中有大量专家构建的代码,大大节省了开发人员的时间和成本,热衷于开源的大厂们总是能够带给我们新的惊喜.2016年9月GitHub报告显示,GitHub已经有超过 520 万的用户和超 30 万的组织.这十二个月以来,有超过 81 万的人发起了人生第一个 PR,更有 280 万人创造了他自己的第一个仓库,而中国,成为新注册增长最多的国家. Facebook开源项目负责人曾说过: 一是开源能够帮助他人更快地开发软件,促进世界创新,主要是社会价值层面的考虑.二是开源能够倒逼Facebook的工程