五种开源协议的比较(,LGPBSD,Apache,GPLL,MIT)

当Adobe、Microsoft、Sun等一系列巨头开始表现出对”开源”的青睐时,”开源”的时代即将到来!

最初来自:sinoprise.com/read.php?tid-662-page-e-fpage-1.html(遗憾的是这个链接已经打不开了),我基本未改动,只是进行了一些排版和整理。
参考文献:http://www.fsf.org/licensing/licenses/

现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种(http://www.opensource.org/licenses/alphabetical)。我们在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议。如果要开源自己的代码,最好也是选择这些被批准的开源协议。

这里我们来看四种最常用的开源协议及它们的适用范围,供那些准备开源或者使用开源产品的开发人员/厂家参考。

BSD开源协议(original BSD licenseFreeBSD licenseOriginal BSD license

BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。

但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:

  1. 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
  2. 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
  3. 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

BSD 代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对 商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。

Apache Licence 2.0(Apache License, Version 2.0Apache License, Version 1.1Apache License, Version 1.0

Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:

  1. 需要给代码的用户一份Apache Licence
  2. 如果你修改了代码,需要再被修改的文件中说明。
  3. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
  4. 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。

Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

GPL(GNU General Public License

我们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代 码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商 业软件公司开发的免费软件了。

GPL协议的主要内容是只要在一个软件中使用(”使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的”传染性”。GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势。

由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。

其它细节如再发布的时候需要伴随GPL协议等和BSD/Apache等类似。

LGPL(GNU Lesser General Public License

LGPL是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL 允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并 发布和销售。

但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源 代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品

MIT(MIT

MIT是和BSD一样宽范的许可协议,作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的.

本文来自:http://www.awflasher.com/blog/archives/939

自由软件/开源社区几个名词简介:unix,GNU,GPL,linux,BSD,freeBSD/UNIX简史

对于刚刚接触自由软件/开源社区的人来说,里面经常出现的几个名词很令人头大,网上搜索这些概念的讲解,都讲得很复杂,至少我个人没有找到很简明的介绍。 终于通过不懈的努力,这几个概念终于大概明白了。肯定会有不少朋友也像我一样,因此,我按照自己的理解,用最简单的话,对这几个概念作一个简介,可能有不 对之处,还请指正。

  1. UNIX说起,它是一个非常老牌、但又影响深远的操作系统,由AT&T公司的贝尔实验室开发。
  2. 当时AT&T公司把该操作系统的源码授权给高校、学术机构做研究或教学之用。因为这个操作系统非常优秀,很多机构都在其源代码基础上做功能扩充改 进,其中以加州大学伯克利分校的改进版最为著名,这个改进版即BSD(Berkeley Software Distribution,伯克利软件套件)。
  3. 由于源码开放性,一些公司也参与到UNIX的开发工作中,这里面最代表性的是IBM、SUN,他们分别开发出了AIX (Advanced Interactive eXecutive)、Solaris(曾用名SunOS),是供各自公司的工作 站、小型机等机器使用(当时还没有微机)。
  4. 之前的unix(包括unix衍生版都是)有一群BSD开发者离开了加州大学后,在BSD基础上搞了一套386BSD,是基于 intelCPU的(这时候便宜的intel芯片已经问世,并获得了一定市场,但intel芯片却没有相应的unix版本)。
  5. AT&X公司意识到了UNIX商业价值,但看到这些商业版本的UNIX感到非常眼红,大概想从中获得利益,于是疯狂的“打关司”,状告他们侵权。 于是UNIX界一片阴云,UNIX的发展也受到很大影响,高校教学用的UNIX也受到一定影响。
  6. 有位教授在业余时间编写了一个简单的unix版本MINIX,意思就是mini版UNIX. 其实是一个兼容UNIX的一套操作系统,他编写时是不看UNIX源码的,而是根据记忆里的UNIX的功能开发。但他确实太忙了,没有精力对这个版本进一步 完善。
  7. AT&T公司的官司还在继续,但UNIX实在太好了,离了它就不能工作。
  8. 70、80年代之际,对软件开发应该是开放还是封闭,有着截然不同的两种观点。“钱门大叔”也正是这时开始发迹的(这里他有一篇关于basic工具的呼 吁),他当然是支持封闭开发了。
  9. GNU大神 Richard Matthew Stallman是“软件专利”的坚决抑制者,他建立了GNU项目,目标是创建一套完全自由的操作系统,当然是UNIX兼容的。为了保证自由软件的成果不被封闭软件的开发盗用,他起草了一个许可协议GNU General Public License,简称GPL
  10. Stallman本人做了不懈努力,完成了相当大的一部分工作,但还差一个操作系统内核,他的构想是编写一个非常超前的先进的内核,但需求太复杂了,从而进展缓慢
  11. 正好这时荷兰的大学生linus基于intel i386编写了一个操作系统内核linux,在一定程度上参考了MINIX。在stallman的鼓动下,linus以GPL作为授权协议发布了linux.于是一个完整的操作系统就诞生了,就是GNU/Linux。
  12. 另外有一BSD群开发人员在386BSD的基础上搞起了UNIX,这里面有freeBSD, netBSD, openBSD. 通常认为freeBSD是最纯正的UNIX(但它其实也不是UNIX的嫡系)。
  13. AT&T的UNIX后来被卖了,而且经几家公司多次转手,结果从这个世界上淡出了,UNIX官司也就不了了之了。

-------------

详细信息参看以下:

UNIX发展史(BSD,GNU,linux) http://www.path8.net/tn/archives/726

linux简史 http://www.path8.net/tn/archives/722

了解更多信息,可以观看记录片《操作系统革命》(Revolution OS)2001年摄制,另有维基百科里相关词条。

google的sidewiki里的 百度列传,很恶搞,很真实

百度列传(上篇)
百度者,字毒,乳名不侵,人常谓之:“百毒不侵”,源于此。

母李氏,讳彦宏,天朝人,祖居山西阳泉,世以酿醋卖酒为生。父为国,继祖业,善经营。或责其父:“尔妄人!醋酒皆不纯,非掺水耶?”,其父怒,斥曰:“大谬!尚有色素!非纯水!尔不见‘红’乎?”。于时女生,故名“验红”(彦宏),示其所酿非纯水,尚有色素矣。时人莫敢与辩之,唯以“奸商”褒赞,绝其营业,宏以此孤穷。幸其早慧,年方五岁,生得聪明可人,千娇百媚,水性杨花,乡里浪荡,四海风流,莫不与之通,合家赖之无忧。

及长,私于上,穷尽鱼水之欢。上大悦,资其游学西夷。名曰“深造”,实者,欲以西法,复锻造其私深处也。

彦宏年少,复兼淫荡,后因其便,遇西方美少年Google,爱其样貌,惊其伟岸,诱与私焉。往来既熟,因而有孕,待归国时,胎已成型。上虽不时幸御,以其年月不对,疑之。惜宏房中有术,又善媚,故不忍发。怀胎十月,诞一子,即度也。度生时,有神光之异,一室尽明,上因育之。及长,隆准龙颜,目有精光,沉敏有大量,遂冒认为己子,赐名“百度”,以为己出,实西夷也。

如何配置NAT映射(虚拟服务器)/家用小型路由器NAT配置/IP端口映射

NAT基本概念这里就不细讲了,如果需要,可自行google.

在路由器上手工配置NAT端口映射,一般会在这样情况下使用:

家庭或小型公司,多台计算机连成一个局域网,通过一个路由器共享上网(该路由器连接着一个或几个“猫”)。这种情况下,内部局域网使用私网IP地址(一般是192.168.x.x, 或10.x.x.x),私网IP地址在internet上是无效的,只能在局域网内使用。这时,如果需要让internet上的用户访问该局域网的一台计算机,就必须要设置NAT映射,让外网对该局域网对外IP地址的访问、映射到该内网计算机上。

直观例子:一个小公司办公室局域网,对外IP地址123.45.67.89,也就是路由器的广域网地址(WAN IP),如果要其中的一台电脑(ip:192.168.1.50)设置成外网可以访问的web服务器,就必需在路由器上设置NAT映射,让路由器把它收到的对123.45.67.89:80端口的HTTP请求自动转发到192.168.1.50的80端口上。

小型路由器,300块钱以下的那种,一般以tplink,d-link牌子较常见。以笔者的tplink-wr542G路由器为例,在它的管理界面里有

转发规则 - 虚拟服务器

一项,点击按钮

是如下表单:按图中所示填写,把80端口的ALL协议(包括tcp与udp)映射到192.168.1.50的80端口上,使该条项目生效。

虚拟服务器定义了广域网服务 端口和局域网网络服务器之间的映射关系,所有对该广域网服务端口的访问将会被重定位给通过IP地址指定的局域网网络服务器。
服务端口号: (XX-XX or XX)
IP地址:
协议:
状态:
常用服务端口号:

填写完成后,确认提交,成功后如下所示:

虚拟服务器定义了广域网服务端口和局域网网络服务器之间的映射关系,所有对该广域网服务端口的访问将会被重定位给通过IP 地址指定的局域网网络服务器。

ID 服务端口 IP地址 协议 状态 配置
1 80 192.168.1.50 ALL 生效 编辑 删除

这样就可以了。

你可以到该局域网之外访问路由器的wan ip地址,假设为123.45.67.89

使用浏览器打开

http://123.45.67.89/

应该可以看到192.168.1.50这台电脑上的web站点的网页了。当然前提是有192.168.1.50这个内网IP的计算机,且正确配置web服务器(如apache,iis之类).

另外,

  1. 局域网计算机如果使用DHCP自动分配IP地址的话,应该给这一台web服务器分配确定的IP地址,如示例中的192.168.1.50(或者在这台计算机上设置固定IP地址)
  2. 一般来说电信网通的adsl,或者其它如长宽广电的网络,都是拨号分配IP地址的,也就是路由的对外ip地址不是固定的,每次拨号都是一个全新的ip地址,所以猫不要随便重启或断电。这里当然可以使用“花生壳”之类的服务。

google搜索设置,打造个性化的搜索:通过google英文版关闭google“安全搜索” (取消启用了安全搜索功能)

实在不懂google中国跑到香港为图个啥,.cn的搜索转到.hk后,搜索结果页反而直接:

搜索 gecko wine 获得约 456,000 条结果(启用了安全搜索功能),以下是第 1-10 条。 (用时 0.21 秒)

跑到香港搞和谐去了!

或许是原来.cn本来就是“和谐版”的,只是没有在页面上显示出来,大家不知道而已。

网上有人说什么是google是“逻辑的”,于是试图通过google的设置关闭“安全搜索”,在google中文版当然是失败了的,但在英文版里是可以的。

以前没有注意过之前google.com的设置setting里面每一项设置,也修改过“”(在新窗口打开结果页),最近有意比较google中文与英文搜索结果,差别还是有的,有时还很大。于是搜索东西时,会结合两个语言的搜索使用。而且英文版的也可以用中文显示页面,就在setting里设置,如下:

打开google英文(google.com),如果自动跳转到中文站点下的话,点中文首页最下面倒数第2行的

- Google.com in English

随便搜索一个关键词,比如输入

site:path8.net/tn

按回车——别说你不知道搜索引擎里的site:语法啊——

看到搜索结果页,该页最上面一行右边会有

web History | Settings | Sign in

三个链接,点“settings” (如果你已经登录gmail账号,settings将显示为菜单形式,菜单项里的search settings)

[是整个页面最上一行,比logo还靠上]

(1)

Interface Language

界面语言,默认为英文,可以设置成为 chinese simplifield,这样可能更容易阅读。当然也可以不设置,感觉更原汁原味一点。

2)

Search Language

搜索哪些语言的页面,默认当然还是english,建议选上

Chinese (Simplified)

Chinese (Traditional)

两项

3)

SafeSearch Filtering

Google's SafeSearch blocks web pages containing explicit sexual content from appearing in search results.

Lock SafeSearch This will apply strict filtering to all searches from this computer using Firefox. Learn more

看到了吧,所谓的安全搜索就这里,默认选的是第2项,中等安全,赶快改第3项吧

4)

Number of Results

每页显示结果条数。这个维持默认好了,当然你也可以改

5)

Results Window


结果打开窗口,新窗口打开搜索结果,选中吧;本朝网速太慢,这样可以让多个窗口同时慢慢打开着,我们先看其它,或打开更多窗口,然后再回来看之前打开的窗口是不是已经打开完毕。其实这也就是“多线程”的原理。

6)

下面还有几个选项,有兴趣的话,可以自己看看,酌情设置

......

9)

保存设置吧。
点页面右上角,或右下角的“Save Preferences”按钮,完成了。
这个设置是以cookie保存在本机里的,清空cookie后,还要重新设置的。

一个个性化的google搜索已经打造出来,

Advanced Search
有没有注意到搜索框下面下面一行的

,搜索英文关键词时,经常是几乎全部英文结果,可以选中这一项,再点search,就可以看到较多的中文结果了,还是比较方便的。

最后补充一点,其实不用搜索一个关键词,进到google英文首页就可以点右上角的settings进行设置了,ee~~~~

自由软件 与 开源软件 区别(free software & open source)

提到自由软件,一般都会提到自由软件的四个自由度:

自由软件对于用户来说具有如下4个自由 度:

1. 出于任何目的,运行软件的自由。
2. 学习软件如何工作,以及为了满足自己的需要修改软件的自由。
3. 为了帮助你的邻居,将软件拷贝给他的自由。
4. 为了能够让整个社团受益,公开发行改进之后的软件的自由。

在 Richard Stallman 眼里,自由软件和开源软件的区别是:

自由软件和开源软件都是计算机软件,但是,从哲学角度看自由软件和开源软件是非常不同的。它们基于不同的价值观。自由软件关注自由和社团,是一场道德运动,要求我们尊重每个人使用计算机的自由,不能让人们成为被殖民者,因此自由软件涉及到对/错的问题。而开源软件的哲学并不涉及到对与错,它仅仅是一个实用的价值观,这种哲学认为,他们有一个开发的模式,如果你按照这个开发模式来工作的话,就会得到一个高质量的软件。

因此,一个自由软件基本上是开源的,但是自由软件不光如此,它还可以保证大家能够改进软件,这一点是非常重要。从使用的角度来看的话,这些研究是可以非常有用的,我也喜欢技术含量更高的软件。因此开源软件的哲学,忽视了一个非常重要的问题,也就是如果让其他人成为被殖民者是错误的,我们必须阻止。有一些部分开源软件是自由软件,但是几乎所有的自由软件都是开源的。

在我看来,自由软件坚持理想主义,开源软件坚持实用主义。和实用相比,我还是偏向于追求自由的精神。

et. fuck 2g: gfw&gxx,连这样的一篇纯技术文章都不让打开,氧化钙它祖宗!!!

fedora12+wine+fg,successful fuck 2g

----------------------------------
[以下来源于袁萌博客]
9月15日,自由软件奠基人Richard Stallman在回答《ComputerWorld》记者Peter Moon先生的提问时,明确指出:自由软件和开源软件是不同的两个概念,自由软件是一项政治运动;而开源软件是一种开发模式。

自由软件运动所关心的是它的伦理和社会价值,我们的目标是,为一切计算机用户(以下称为“你”)赢得进行相互协作、把握自己计算能力的自由性(Freedom),因而,对于你所使用的程序,你必须拥有以下4个方面的实质性自由:

1、如你所希望的那样运行这个程序;

2、能够研究其源代码,以便修改它,使其为你所用;

3、根据你的意愿,可以重新分发它,或者赠送他人,或者出售,两者都可以;

4、根据你的意愿,发布你修改过的那个程序的新版本。

1998年,有人不喜欢使用“自由软件”这种说法,发明了“开源软件”这一术语,但是,那时他们只吸取了其中(自由软件的)“使用方便性”这一个方面的价值(或观念)。开源软件拥护者鼓吹一种用户参与其中的“(社区)开发模式”,并且断言“如此这般,一定会获得最好的软件”,而他们所说的“最好”,也仅仅是在技术这一层面而言的。他们使用“开源软件”这一说法,(隐含地)意味着,仅涉及你的“实际的方便性”,而完全忽视了你的使用程序的自由性。

Richard Stallman先生最后明确表示,“我不是说,他们(指开源软件 拥护者)错了,而是说他们未抓住要点(missing the point)”。他接着说:“如果你忽视了使用软件(上述4种)自由性和整个社会的团结一致的价值,而仅仅是欣赏那种可靠、有效的软件,你就犯了一个严重的错误(Terrible mistake)”。

我认为,我们有必要区分自由软件与开源软件,这两者是不同的概念。在我国,人们往往把这两者混为一谈,尤其是故意回避前者,而且,各有各的想法,很是奇妙,也很滑稽。

baidu突然良心发现了吗?

baidu突然良心发现了吗?

昨天被百度K了,今天又突然恢复了。不知是什么原因。
好像最近一段时间(google退出了),baidu时常抽风,搜索结果比较异常,不知这两件事之间是否有什么 关系。(是否真的如有人大胆猜测的baidu调用了google的搜索结果,这就太恶劣了)

site:path8.net
找到相关网页368篇,用时0.056秒
来百度推广您的产品
提示:找到的相关网页数是估算值,不代表真实结果数,仅供参考。站长帮助

google工具栏居然没有chrome版的,简直是一个讽剌

在firefox里使用google工具栏,要占据一行,比较浪费空间,想在chrome里安装一个,需要时使用。

然而使用chrome进入google工具栏页面,点下载,居然出来了一个警示框:

Google工具栏要求Firefox为2.0版或更高版本。

您是否要下载最新版本的Firefox?

取消  确定

太令人无语了,自己出的浏览器,还不支持自己出的工具栏。

是在fefora12 linux 下的,不知道windows版的是不是也不支持

一点花边:

使用五笔输入法打google,出来的词是“恶业胃”

goog 是“恶业”   le是“胃” 很恶搞

phpmyadmin报错原因及解决方法:无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装。

两天前登录phpmyadmin突然出错了,

"无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装。"

很奇怪前些天一直好好的,怎么就突然不能用了,把phpmyadmin文件拷到另外站点的目录里,运行,居然好了。但原来的目录就是不行。

用过后,就把另外站点里的phpmyadmin删掉了,原来目录里还是坏的,有时间再找原因解决。

今天,又要使用修改一些东西,原来目录里的还是坏的,重新从官方下载最新的3.3.1版上传,还是坏的;传到另外目录里也一样。看来这个问题总是要解决的了。

google了一下,有人说是“打开您的php.ini配置文件session.save_path = “某个路径”检查该项是否配置正确”,大致明白了,估计是phpmyadmin需要写session文件,但session目录没有相应权限所以报错“...发生错误时创建会话...”,错误信息里说明是session相关的,只是这个错误信息太简略了,不容易轻易看明白。

到服务器上修改php.ini,以前没有配置session.save_path的。于是C盘建一个session目录c:\tempfolder\phpsession,给phpmyadmin站点的web用户赋读写权限,在php.ini里加上一条

session.save_path="c:\tempfolder\phpsession"

运行iisreset,进入 phpmyadmin站点,终于看到了久违的登录页面了。

分析一下原因,应该是这样的:

windows版的php应该默认使用系统临时文件目录,可能因为别的什么原因,之前有对临时文件目录的权限丢失了,所以就报上面错误

前几天拷到别的站点目录里,而这个站点的iis用户对windows临时文件有读写权限,所以可以正常使用phpmyadmin;今天,那个站点的iis用户也没权限了,就不行了。

至于网上有人说的,要赋everyone读写权限(甚至还有说赋“完全控制”的权限),就没必要了,只给相应的iis用户赋读写权限就可以;否则还是完全隐患。

顺便说一点,我的phpmyadmin没有放到自己电脑上,远程连接mysql服务器,而是直接把phpmyadmin放到mysql服务器上,这样正是为了安全其见。mysql的root用户只允许localhost连接,不允许从别的主机上连接。其它用户也是只允许在相应主机上访问。

Pages: Prev 1 2 3 ... 38 39 40 41 42 43 44 45 46 47 48 Next