日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

小知识:常用开源协议详细解析

發布時間:2023/12/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 小知识:常用开源协议详细解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?來源:http://www.mscto.com/open/20081117-7075.html

開源在今天的軟件業已經很普遍,但開源是否意味著使用者可以對開源后的代碼為所欲為呢?答案是否定的。

?

?

  開源在今天的軟件業已經很普遍,但開源是否意味著使用者可以對開源后的代碼為所欲為呢?答案是否定的。開源運動同樣有自己的游戲規則和道德準則。不遵行這些規則不但損害開源運動的健康發展,也會對違規者造成名譽和市場上的損失,更可能陷入法律糾紛和賠償。

  首先,要對幾個概念有所了解:

?

  1. Contributors 和 Recipients

  Contributors 指的是對某個開源軟件或項目提供了代碼(包括最初的或者修改過的)發布的人或者實體(團隊、公司、組織等),Contributors 按照參與某個軟件開源的時間先后,可以分為 an initial Contributor 和 subsequent Contributors 。

  Recipients指的是開源軟件或項目的獲取者,顯然,subsequent Contributors 也屬于 Recipients之列。

?

  2. Source Code 和 Object Code?http://www.mscto.com

  Source Code 指的是各種語言寫成的源代碼,通過Source Code,結合文檔, 可以了解到整個軟件的體系結構及具體到某個功能函數的實現方法等。

?

  Object Code 指的是Source Code 經過編譯之后,生成的類似于“類庫”一樣的,提供各種接口供他人使用的目標碼,按我的理解,它就是像常見的DLL、ActiveX、OCX控件性質的東西。(不知道這樣理解對不對)

?

  分清楚這兩個概念的目的在于,有些開源,只發布Object Code ,當然,大多數發布的是Source Code。很多協議也對 “你發布的是哪種Code的時候應該怎樣”,有著明確的約束。

  3. Derivative Module 和 Separate Module

  Derivative Module 指的是,依托或包含“最初的”或者“從別人處獲取的”開源代碼而產生的代碼,是原“源代碼”的增強(不等于增加)、改善和延續的模塊,意為“衍生模塊”。

  Separate Module 指的是,參考或借助原“源代碼”,開發出的獨立的,不包含、不依賴于原“源代碼模塊”,意為“獨立的模塊”。理解這兩個概念的目的在于,很多協議對涉及到商業發布的時候,會有哪些是衍生的,哪些是獨立的,有著明確的商業發布規定。

?

  現今存在的開源協議很多,而經過Open Source Initiative組織通過批準的開源協議目前有58種。我們在常見的開源協議如BSD, GPL, LGPL,MIT等都是OSI批準的協議。如果要開源自己的代碼,最好也是選擇這些被批準的開源協議。

總結

以上是生活随笔為你收集整理的小知识:常用开源协议详细解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。