diff --git "a/\347\254\254\344\270\200\351\203\250\345\210\206\342\200\224\342\200\224\345\210\235\350\257\206\345\274\200\346\272\220/\344\273\200\344\271\210\346\230\257\345\274\200\346\272\220.md" "b/\347\254\254\344\270\200\351\203\250\345\210\206\342\200\224\342\200\224\345\210\235\350\257\206\345\274\200\346\272\220/\344\273\200\344\271\210\346\230\257\345\274\200\346\272\220.md" index 5daa2f76804298ee665ec7b25f1d98b846c47c66..b8f385af1aa6eb559fbc537b333f5a7878016740 100644 --- "a/\347\254\254\344\270\200\351\203\250\345\210\206\342\200\224\342\200\224\345\210\235\350\257\206\345\274\200\346\272\220/\344\273\200\344\271\210\346\230\257\345\274\200\346\272\220.md" +++ "b/\347\254\254\344\270\200\351\203\250\345\210\206\342\200\224\342\200\224\345\210\235\350\257\206\345\274\200\346\272\220/\344\273\200\344\271\210\346\230\257\345\274\200\346\272\220.md" @@ -1,5 +1,40 @@ -> 本篇内容将会从最基本的概念开始带开发者们认识开源 -### 开源的概念 -### 开源的历史 -### 不会写代码也可以了解开源吗 -### 开源、Git和代码托管平台 \ No newline at end of file + 开放源代码(Open source code)也称为源代码公开,指的是一种软件发布模式。开放源代码软件源于自由软件开源运动,简称开源软件。是指那些源代码公开,可以被自由使用、复制、修改和再发布的一系列软件的集合。开放源代码软件就是在开放源代码许可证下发布的软件,以保障软件用户自由使用及接触源代码的权利。这同时也保障了用户自行修改、复制以及再分发的权利。简而言之,所有公布软件源代码的程序都可以称为开放源代码软件。 开放源代码有时不仅仅指开放源代码软件,它同时也是一种软件开放模式的名称。使用开放源代码开放模式的软件代表就有GNU/Linux操作系统。 + 开放原始码的定义由Bruce Perens(Debian创始人之一)定义如下 + 1.自由的再散布 + 符合开放源代码定义的授权,不得限制任何一方销售或让予已成为其中一部份的开放性源代码,即使该聚合性软件中包含多种不同来源的程序。此一授权不得要求权利金或其它费用。 + 2.程序源代码 + 程序散布时必须包括源代码与其所编译的形式。假若程序在散布时并未附加源代码,其必须以一公开方式,在不超过合理的复制成本下,让人得以取得源代码,例如可以在不收取费用的情况下在网络上供入下载。这里所谓的“源代码”,必须是程序设计者最易于修改程序的形式,故意混乱源代码或是以所谓的中间形式,如预处理器、或编译程序所处理后的结果是不被允许的。 + 3.衍生作品 + 符合开放源代码定义的授权,必须允许程序的修改与衍生作品”的产生.并且此授权必须允许在相同条件下,对于衍生作品加以散布。 + 4.原创作者程序源代码的完整性 + 符合开放源代码定义的授权,可以禁止他人以修改的形式散布源代码,除非此一授权允许基于修改程序的目的,而采取“附加档案”的方式以区别此一部分非原创作者所创作。此一授权必须明确允许被授权人对于所修改的软件有加以散布的权利。此外,授权内容得要求衍生作品必须附加不同于原软件的名称或版本编号。 + 5.不得歧视任何个人或团体 + 符合开放源代码定义的授权,不得对任何人或任何团体有歧视陛的规定。由于有些国家,包含美国在内,对于特定类型的软件进行出口管制,因此此类软件通常会有警告的标语,揭示此管制规定;但是在符合开放源代码定义的授权本身,并不包含此种警告标语在内。 + 6.不得歧视程序在任何领域内的利用 + 符合开放源代码定义的授权,不得禁止任何人在特定领域使用此程序。例如,其不得禁止程序在商业上的使用,或者在基因研究上的利用。 + 7.授权的散布 + 开放源代码授权内的权利,于所有再散布的程序均有适用,而无须透过其它授权加以行使。换言之,符合开放源代码定义的授权,必须有适用于所有衍生作品的延续性,以避免被授权人间接藉由附加其它授权的方式影响软件的开放性。 + 8.授权不得专属于特定产品 + 附着于程序上的权利,不得仅限于特定软件散布的需要。所有程序的被授权人,均与原程序于散布时的状态一样,享有相同的权利。 + 9.授权不得对其他软件加以限制 + 符合开放源代码定义的授权,不得对其他随同此一软件散布的其它软件,附加任何的限制。例如,不得规定在相同媒体L散布的其它软件,接受此一授权条款所拘束而须开放源代码。 + 10.授权必须是科技中性 + 任何条款规定不可基于任何独特的科技或接12型式。例如,不得限制于使用点选包里(Clik-Wrap)的方式来下载,否则将有碍透过档案传输协议、CD-ROM或网站映射等方式再下载使用源代码的可能。 + 开源软件在追求“自由”的同时,不能牺牲程序员的利益,否则将会影响程序员的创造激情,因此世界上现在有 60 多种被开源促进组织(Open Source Initiative)认可的开源许可协议来保证开源工作者的权益。开源协议规定了你在使用开源软件时的权利和责任,也就是规定了你可以做什么,不可以做什么。开源协议虽然不一定具备法律效力,但是当涉及软件版权纠纷时,开源协议也是非常重要的证据之一。 + 当前热门的开源协议有: + 1.GNU GPL(GNU General Public License,GNU通用公共许可证) + 2.BSD(Berkeley Software Distribution,伯克利软件发布版)协议 + 3.Apache 许可证版本(Apache License Version)协议 + 4.MIT(Massachusetts Institute of Technology)协议 + 5.GUN LGPL(GNU Lesser General Public License,GNU 宽通用公共许可证) + 当前主流的开源平台有: + 1.开源中国旗下的代码托管平台:码云 + 2.支持社交元素的代码托管平台:Coding + 3.支持Mercurial和Git的代码托管网站:BitBucket + 4.带有Git和SVN的版本控制软件:Springloops + 5.极易搭建的自助 Git 服务:Gogs + 6.开源的版本管理系统:GitLab + 7.微软旗下的完整开发工具集:Microsoft Visual Studio + 8.谷歌旗下的代码托管网站(404):Google Code + 9.曾经很辉煌代码托管网站:Sourceforge + 10.微软的代码管理网站(今年已关闭):CodePlex \ No newline at end of file