精华内容
下载资源
问答
  • 开源软件

    千次阅读 2016-07-10 15:13:44
    简述开放源代码软件(Open Source Software),简称:OSS或开源软件。这种“公开”正是促使人们使用它的原因,因为这意味着用户可以自由的使用、复制、散发以及修改源码(补充漏洞,按具体需求定制功能)。与其相对...

    简述

    开放源代码软件(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耻辱名单。

    更多参考

    • 关于开源软件:你不知道的那些事儿
    展开全文
  • 知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的回答,对...

    知乎高赞:中国有什么拿得出手的开源软件产品?

    在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?”

    事实上,还不少呢~

    本人于2019.7.6进行了较为全面的 回答 - Bravo Yeung,获得该问题下回答中得最高赞(236赞和1枚专业勋章),对这些受欢迎的 Github 开源项目分类整理如下:


    分布式计算、云平台相关工具类

    1.SkyWalking,作者吴晟、刘浩杨 等等

    skyWalking

    仓库地址: apache/skywalking

    更多详情请看: SkyWalking毕业成为Apache顶级项目 - InfoQ


    2.Apache ShardingSphere(Apache顶级项目 + CNCF云原生计算基金会全景图项目)

    在这里插入图片描述

    仓库地址: apache/incubator-shardingsphere

    更多详情请看: 快讯!Apache ShardingSphere进入CNCF全景图


    3.TiKV, PingCap公司

    img

    tikv/tikv: 分布式的事务型键值数据库,最初是作为TiDB 的功能的补充而创建的

    仓库: tikv/tikv


    4.阿里巴巴 Dragonfly

    dragonflyoss/Dragonfly: Dragonfly是一个基于P2P的智能图像和文件分发系统。

    img
    仓库: dragonflyoss/Dragonfly


    5.阿里巴巴 dubbo (主要语言是Java)

    apache/dubbo: Apache Dubbo 是一个基于Java的高性能的开源RPC框架。

    img

    仓库地址: apache/dubbo


    6.携程 阿波罗配置管理

    在这里插入图片描述

    仓库: https://github.com/ctripcorp/apollo


    面试干货类:

    1.MisterBooo/LeetCodeAnimation: 用动画的形式呈现解LeetCode题目的思路

    img

    仓库地址: MisterBooo/LeetCodeAnimation


    2.CyC2018/CS-Notes: Tech Interview Guide 技术面试必备基础知识 等,作者 郑永川

    img

    仓库地址: CyC2018/CS-Notes


    Web前端类

    1.百度Echarts

    Echarts

    仓库地址: apache/incubator-echarts


    2.阿里巴巴ant-design系列

    ant-design/ant-design: A UI Design Language

    仓库地址: ant-design/ant-design

    Ant

    相关的代码仓库:
    Ant Design like a Pro!
    ant-design/ant-design-pro


    App类

    1.腾讯微信WeUI

    img
    仓库地址: Tencent/weui


    2.WeiXinMPSDK, 作者: 苏震巍Jeffrey Su

    JeffreySu/WeiXinMPSDK: 微信公众平台SDK Senparc.Weixin for C#,支持.NET Framework及.NET Core。已支持微信公众号、小程序、小游戏、企业号、企业微信、开放平台、微信支付、JSSDK、微信周边等全平台。 WeChat SDK for C#.

    img
    仓库地址: https://github.com/JeffreySu/WeiXinMPSDK


    3.Android相关

    a. daimajia/AndroidViewAnimations: Cute view animation collection.
    img
    仓库地址: daimajia/AndroidViewAnimations


    b. daimajia/AndroidSwipeLayout: The Most Powerful Swipe Layout!
    img
    代码仓库: daimajia/AndroidSwipeLayout


    下载工具

    1.you-get下载器 (开发语言: Python)

    soimort/you-get: 傻瓜式网络抓取下载器
    img
    仓库地址: https://github.com/soimort/you-get

    官网: https://you-get.org/


    游戏相关

    cocos2d/cocos2d-x: Cocos2d-x是一套开源的跨平台游戏开发工具,被全球数百万开发人员使用。
    img
    仓库地址: cocos2d/cocos2d-x


    其他工具

    1.Wox (快速启动工具,类似于Mac中的Alfred,支持Win7, Win 8, Win10)

    Wox-launcher/Wox: Windows中的快速启动器,是Alfred和Launchy的替代产品。

    仓库地址: Wox-launcher/Wox
    img

    2.Chatie/wechaty: WeChat Bot SDK (主要语言是 Typescript)

    img
    仓库地址: Chatie/wechaty


    作者简介:Bravo Yeung,计算机硕士,知乎干货答主(获81K 赞同, 38K 感谢, 235K 收藏)。曾在国内 Top3互联网视频直播公司工作过,后加入一家外企做软件开发至今。

    原创不易,你的支持和认可将让我写出更好的文章,更多干货可关注公号「大白技术控」,持续输出优质的技术文章~

    展开全文
  • 开源软件与开源协议

    千次阅读 2016-07-27 11:34:30
    要谈开源协议,首先要明确开源定义(Open Source Definition),不仅可以开源软件,也可以是硬件。在绝大多数情况下,我们所说的开源还是指开源软件 我们软件程序员接触最多的就是开源软件,另外,这几年开始...

    要谈开源协议,首先要明确开源定义(Open Source Definition),不仅可以开源软件,也可以是硬件。在绝大多数情况下,我们所说的开源还是指开源软件


    我们软件程序员接触最多的就是开源软件,另外,这几年开始兴起的开源硬件风潮,也推动了一些硬件开发者把自己的硬件开源出来。不少开源硬件同样选择了最初为开源软件设计的开源协议。笔者需要时间来学习开源硬件相关的协议信息,并和大家分享。在这里我们只谈开源软件以及相关的开源协议。


    开源届最权威的组织莫过于Open Source Initiative(http://opensource.org),简称OSI。它推动了开源软件的发展,也规范管理了开源协议。我们现在所熟知的那些开源协议,如Apache,MIT,GPL等,都是进过OSI批准的开源协议。在OSI的官网上(https://opensource.org/licenses),我们能找到几乎所有的开源协议以及它们的历史版本。


    根据OSI的要求,开源协议必须遵从开源定义,简单来讲,就是允许软件能够被自由地使用、修改和分发。OSI网站上的原文如下:

    Open source licenses are licenses that comply with the Open Source Definition — in brief, they allow software to be freely used, modified, and shared.


    简单的把软件的源代码公布出来并不算开源。严格意义上的开源协议应该遵从OSI网站上对开源的10大定义,原文请见 https://opensource.org/osd

    1. 自由并免费分发
      协议不能限制任何人或组织去销售或分发被许可的软件,即使被许可的软件是和其他软件一起组成的发布版本。

    2. 源代码必须与程序一起分发
      被许可的软件必须包含源代码。如果有些软件无法包含源代码一起发布,则必须将源代码完整公开,并可以从互联网上下载。如果分发过程有生产成本,可以合理收费(比如刻录光盘的费用)。源代码本身必须以合适的形式发布,并便于程序员修改。源代码不得混淆。不得只提供中间代码,如经过预编译或预处理的代码。

    3. 允许修改

      协议必须允许对源代码进行修改或进行衍生开发,并且允许它们以同样的协议分发。

    4. 尊重原作者的代码

      只有当协议允许对源代码在编译过程中打补丁时,协议方可限制对所许可的软件的分发(因为这样分发的软件可能并不是代码原作者的产品)。对于修改后的源代码,协议必须明确允许对它的分发。协议可以要求衍生工作与原始代码使用不同的名称与版本号。

    5. 不得歧视任何人或团体
      协议中不得对任何个人或团体有任何歧视。

    6. 不得歧视任何使用领域
      协议中不得限制任何人在任何领域使用被许可的软件。

    7. 协议在软件的分发过程中自动生效
      被许可的软件在分发过程中,其所携带的协议自动生效,无需额外的授权或许可。

    8. 协议不得与任何特定产品相关

    9. 协议不得限制其他软件

      如果被许可的软件与其他软件一起发布,它的协议不能对其他软件有任何限制。

    10. 协议必须是技术中立的
      协议中的任何条款不得对技术或接口有任何要求。


    只有符合了以上的定义,并且通过了OSI的审核,一份协议才能被称为开源协议。


    展开全文
  • 开源软件简介

    2017-02-17 21:13:30
    (1)开源软件是什么? 1.呈现出来就是源代码。即不是二进制,而是完全英文。 2.开源软件要保持其开源的持续。 (2)linux与开源软件的关系: 1.linux最大特点是开源软件。 (3)网站服务搭建软件: 1.作用:将...
    (1)开源软件是什么?
         1.呈现出来就是源代码。即不是二进制,而是完全英文。
         2.开源软件要保持其开源的持续。
    (2)linux与开源软件的关系:
         1.linux最大特点是开源软件。
    (3)网站服务搭建软件:
         1.作用:将已经完全,创建的软件发布到网络
         2.都是开源软件。都是免费的。
      *开源软件不一定是免费的。
    (4)开源软件的优点:
         1.使用自由【绝大多数免费】
         2.研究自由【可获得软件源代码】
         3.散步及改良自由【只要保证其开源性,可自由传播、改良甚至销售】
    展开全文
  • 自由软件、开源软件、免费软件之间的区别

    万次阅读 多人点赞 2019-07-27 20:00:29
    很多人经常把开源软件和自由软件混为一谈,也常常会有人把开源软件和免费软件这两个概念混淆在一起,其实当我第一此站在HUSA的讲台上的时候,自己对开源的了解,也只是狭隘的定位为:免费的,公开源代码的。...
  • 开源软件License汇总

    万次阅读 2017-02-14 21:52:55
    开源软件License汇总
  • 开源精神与开源软件 - 收集

    千次阅读 2019-02-20 17:27:24
    1.开源 2.免费 3.开源精神 ...4.开源软件 5.额外补充 ...
  • 开源软件和开源社区的反思

    千次阅读 2016-03-31 10:48:10
    由于开源软件存在局限性,近来学术界 开始对开源软件和社区的发展进行反思,认为 :开 源软件的使用比开发更重要 ;要重视发展开源软件 工程技术 ;在大数据和云平台的环境下,应该建立 新的软件工程,包括软件的...
  • 开源软件的盈利模式

    千次阅读 2019-08-20 11:33:15
    开源软件在发展历程中,已经不仅仅是开放源代码的免费软件。开源软件与商业并不冲突,它是一种新兴的商业模式。与传统的商业软件相比,开源软件采用了开放源代码、免费分发等形式,减少了营销与销售成本,更易于广泛...
  • 开源cnc软件_带有开源软件的CNC铣削

    千次阅读 2020-07-12 10:35:19
    当我看到机器可以使用开源软件工作并且控制器是运行开源软件的Arduino时,我知道我必须制造一个。 CNC铣床是用于创建模具,雕刻和模型的精密切削工具。 与其他铣削工具不同,CNC机床可以在三个轴上移动:Z轴垂直...
  • 知识图谱开源软件

    千次阅读 2018-12-08 16:01:03
    人工智能开源软件发展现状连载——第八集:知识图谱开源软件 知识图谱开源软件知识库语义人工智能 来源:中国人工智能开源软件发展联盟 2018-08-31 知识图谱 (Knowledge Graph)是一种基于图的数据结构,由节点...
  • 开源软件如何赚钱

    千次阅读 2020-02-04 19:08:34
    生活在2020年的我们开源软件几乎是触手可及,而且越来越多,甚至有很多耗资巨大的开发项目开源了,或许你很困惑,这些开源项目如何赚钱?如何维持开发成本呢?毕竟开源又不是成仙,饭总是要吃的。带着这个问题,经过...
  • 在台式机(无论使用哪种操作系统)上,在电话上以及在企业中,开源软件都可以帮助您变得井井有条,更高效,更安全,更健康。 最重要的是,您不必担心专有许可证的束缚。 在整个2019年,Opensource.com的通讯员...
  • conda 使用清华大学开源软件镜像

    万次阅读 多人点赞 2017-01-09 18:18:16
    conda 使用清华大学开源软件镜像Anaconda的安装步骤不在本文的讨论中,我们主要是学习一下如何配置conda的镜像,以及一些问题的解决过程配置镜像在conda安装好之后,默认的镜像是官方的,由于官网的镜像在境外,我们...
  • 使用开源软件注意

    千次阅读 2018-07-01 19:58:35
    1. 查阅帮助文档,了解该开源软件是否包含需要的功能2. 当开源软件不包含你需要的功能时,发邮件询问作者在开发的版本中是否有该功能, 如果没有则询问该如何修改,请他提出建议3. 当以上都不能解决问题时,再开始...
  • InfoWorld 公布 2020 年最佳开源软件

    千次阅读 多人点赞 2021-01-11 10:49:22
    InfoWorld 公布了 2020 年最佳开源软件榜单。 InfoWorld 是致力于引领 IT 决策者走在科技前沿的国际科技媒体品牌,每年 InfoWorld 都会根据软件对开源界的贡献,以及在业界的影响力评选出当年的“最佳开源软件” ...
  • 开源软件管理调研报告 作者微信:stray_bird_holy 开源一方面可以突破技术壁垒,推动技术创新,另一方面也面临知识产权、安全、技术运维等一系列与开源相关的风险问题。商业开源软件的模式其实并不难理解,也就是...
  • 开源软件列举

    2013-06-07 08:47:28
    “在开源软件蓬勃发展的今天,几乎每款流行的商业软件都有可替代它的开源软件,是时候抛弃盗版而使用开源软件了,一方面摆脱侵犯他人知识产权的恶名,另一方面也可以更多地支持开源软件。” 一、开源软件之语言和...
  • 什么是开源软件

    千次阅读 2018-07-21 10:16:38
    开源软件,英文表示是open source software,简称为OSS,直接的字面意思是公开源代码的软件。软件既然连源代码都公开,因此开源软件具备可以免费使用和公布源代码的主要特征。 发展历程 1997春天,自由软件社团的...
  • 为了更好地展示国内开源现状,探讨国内开源趋势,激励国内开源人才,促进国内开源生态完善,开源中国每年会在年底举办一年一度的最受欢迎中国开源软件评选活动,该活动目前已成功举办五届。 由...
  • 开源软件许可证

    千次阅读 2019-05-15 14:53:54
    开源软件协议使用指南 序号 全称 简称 版本号 类型 管理组织 复制再发布 修改再发布 动态链接再发布 ...
  • 推荐开源软件

    千次阅读 2012-12-19 13:05:33
    前段时间调研了一些开源的软件,主要是server端的一些开源软件,便于建站的。门户系统joomla很不错。基于php做的,功能很丰富,有各种部件可以选择。放些新闻、介绍、图片、下载,作为小公司的门户是最合适的。随便...
  • 本文转载自公众号:中国人工智能开源软件发展联盟,欢迎大家点击文末二维码关注。知识图谱 (Knowledge Graph)是一种基于图的数据结构,由节点(Point)和...
  • 各国开源软件和商业软件

    千次阅读 2015-10-16 16:01:37
    开源软件”可以进行商业化运作,“商业软件”同样也可以选择“开源”。“开源”的目的是方便知识共享,而商业化运作则是为了将停留在“知识”层面上的软件代码与文档转变为适应商品社会需求的“软件商品”,从而使...
  • 在开源的世界里,研究与开发是分离的,二者由不同的实体完成。社区或志愿者进行研究活动,发布研究成果——源...2005年8月3日,以Firefox浏览器而闻名的开源软件领军组织之一Mozilla基金会,宣布成立一家名为Mozilla
  • 好汉一问:什么是开源软件?什么是自由软件?他们就是免费软件? 很多人经常把开源软件和自由软件混为一谈,也常常会有人把开源软件和免费软件这两个概念混淆在一起,其实当我第一此站在HUSA的讲台上的时候,自己对...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 96,703
精华内容 38,681
关键字:

开源软件