當前位置:首頁 » 操作系統 » 開源碼

開源碼

發布時間: 2022-02-05 16:40:52

① 開源代碼是什麼意思

一句話來說,開源指的是那些源代碼或源設計可以被大眾使用、修改發行的軟體或設計體。

大眾最熟悉的開源軟體就是安卓,相信用非蘋果的智能手機用戶,現在每天用的肯定都是安卓,它也是現在影響力最大的開源軟體之一,如果沒有安卓的開源開放,相信今天沒有那麼多手機廠商和移動互聯網的興起。

如果只是從生態的角度來說,蘋果的生態也很開放,現在他們也推出了開源Swift。從這方面來說,其實兩者都是一樣的,只是開源、開放的方式方法不太一樣。

linux 無疑是開源軟體里最最成功的一個,不管是從它目前的生態建設角度,還是從業界評價來看,包括今天雲計算的基礎也都倚賴Linux的貢獻和基石。當然,像OpenStack、Hadoop 、Spark等也非常成功,這些開源項目都屬於底層技術,在支撐今天整個大數據、雲計算的發展。

(1)開源碼擴展閱讀:

開源並不意味著免費,開源只是說我們做了一個好東西,把它開放給大家使用,目的是希望大家更多地使用它,並反饋使用過程中的問題或者改進方式,使得整個開源項目進步得更快,能夠更好地共享給更多有需要的人,目前像 Linux、Hadoop、Spark等等,都是這么做的。但很多時候開源背後還是帶有很濃厚的商業背景。

做得比較大的開源項目背後都有商業公司在支撐,如果一個成功的開源項目背後沒有商業公司,這是不健康的,我們需要開源和商業之間的互補對稱來促進整個社區和技術的不斷前進答。

② 怎麼證明代碼是開源還是不開源

是否開源,要看源碼發布的授權協議。

1.BSD開源協議(original BSD license、FreeBSD license、Original BSD license)

BSD開源協議是一個給於使用者很大自由的協議。基本上使用者可以」為所欲為」,可以自由的使用,修改源代碼,也可以將修改後的代碼作為開源或者專有軟體再發布。

但」為所欲為」的前提當你發布使用了BSD協議的代碼,或則以BSD協議代碼為基礎做二次開發自己的產品時,需要滿足三個條件:

  • 如果再發布的產品中包含源代碼,則在源代碼中必須帶有原來代碼中的BSD協議。

  • 如果再發布的只是二進制類庫/軟體,則需要在類庫/軟體的文檔和版權聲明中包含原來代碼中的BSD協議。

  • 不可以用開源代碼的作者/機構名字和原來產品的名字做市場推廣。

  • BSD 代碼鼓勵代碼共享,但需要尊重代碼作者的著作權。BSD由於允許使用者修改和重新發布代碼,也允許使用或在BSD代碼上開發商業軟體發布和銷售,因此是對 商業集成很友好的協議。而很多的公司企業在選用開源產品的時候都首選BSD協議,因為可以完全控制這些第三方的代碼,在必要的時候可以修改或者二次開發。

2. Apache Licence 2.0(Apache License, Version 2.0、Apache License, Version 1.1、Apache License, Version 1.0)

Apache Licence是著名的非盈利開源組織Apache採用的協議。該協議和BSD類似,同樣鼓勵代碼共享和尊重原作者的著作權,同樣允許代碼修改,再發布(作為開源或商業軟體)。需要滿足的條件也和BSD類似:

  • 需要給代碼的用戶一份Apache Licence

  • 如果你修改了代碼,需要再被修改的文件中說明。

  • 在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協議,商標,專利聲明和其他原來作者規定需要包含的說明。

  • 如果再發布的產品中包含一個Notice文件,則在Notice文件中需要帶有Apache Licence。你可以在Notice中增加自己的許可,但不可以表現為對Apache Licence構成更改。

  • Apache Licence也是對商業應用友好的許可。使用者也可以在需要的時候修改代碼來滿足需要並作為開源或商業產品發布/銷售。

3. 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等類似。

4.LGPL(GNU Lesser General Public License)

LGPL是GPL的一個為主要為類庫使用設計的開源協議。和GPL要求任何使用/修改/衍生之GPL類庫的的軟體必須採用GPL協議不同。LGPL 允許商業軟體通過類庫引用(link)方式使用LGPL類庫而不需要開源商業軟體的代碼。這使得採用LGPL協議的開源代碼可以被商業軟體作為類庫引用並 發布和銷售。

但是如果修改LGPL協議的代碼或者衍生,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須採用LGPL協議。因此LGPL協議的開源 代碼很適合作為第三方類庫被商業軟體引用,但不適合希望以LGPL協議代碼為基礎,通過修改和衍生的方式做二次開發的商業軟體採用。

GPL/LGPL都保障原作者的知識產權,避免有人利用開源代碼復制並開發類似的產品

5.MIT(MIT)

MIT是和BSD一樣寬范的許可協議,作者只想保留版權,而無任何其他了限制.也就是說,你必須在你的發行版里包含原許可協議的聲明,無論你是以二進制發布的還是以源代碼發布的.

③ 開源是什麼意思啊隨便說兩句就行求大神幫助

簡介 開放源代碼的定義由Bruce Perens(曾是Debian的創始人之一)定義如下: 自由再散布(Free Distribution):允許獲得源代碼的人可自由再將此源代碼散布.源代碼(Source Code):程式的可執行檔在散布時,必需以隨附完整源代碼或是可讓人方便的事後取得源代碼.衍生著作(Derived Works):讓人可依此源代碼修改後,在依照同一授權條款的情形下再散布.原創作者程式源代碼的完整性(Integrity of The Author's Source Code):意即修改後的版本,需以不同的版本號碼以與原始的程式碼做分別,保障原始的程式碼完整性.不得對任何人或團體有差別待遇(No Discrimination Against Persons or Groups):開放源代碼軟體不得因性別、團體、國家、族群等設定限制,但若是因為法律規定的情形則為例外(如:美國政府限制高加密軟體的出口).對程式在任何領域內的利用不得有差別待遇(No Discrimination Against Fields of Endeavor):意即不得限制商業使用.散布授權條款(Distribution of License):若軟體再散布,必需以同一條款散布之.授權條款不得專屬於特定產品(License Must Not Be Specific to a Proct):若多個程式組合成一套軟體,則當某一開放源代碼的程式單獨散布時,也必需要符合開放源代碼的條件.授權條款不得限制其他軟體(License Must Not Restrict Other Software):當某一開放源代碼軟體與其他非開放源代碼軟體一起散布時(例如放在同一光碟片),不得限制其他軟體的授權條件也要遵照開放源代碼的授權.授權條款必須技術中立(License Must Be Technology-Neutral):意即授權條款不得限制為電子格式才有效,若是紙本的授權條款也應視為有效. 開放源代碼與自由軟體 許多人將開放源代碼與自由軟體(freeSoftware)視為相同,但若以定義條件而言,自由軟體僅是開放源代碼的一種,也就是自由軟體的定義較開放源代碼更為嚴格,並非開放源代碼的軟體就可稱為自由軟體,要視該軟體的授權條件是否合乎自由軟體基金會對自由軟體所下的定義. 開源軟體定義Version 1.9 開源不僅僅表示開放程序源代碼.從發行角度定義的開源軟體必須符合如下條件: 1、自由再發行 許可證不能限制任何團體銷售或贈送軟體,軟體可以是幾個不同來源的程序集成後的軟體發行版中的其中一個原件.許可證不能要求對這樣的銷售收取許可證費或其他費用. 2、程序源代碼 程序必須包含源代碼.必須允許發行版在包含編譯形式的同時也包含程序源代碼.當產品以某種形式發行時沒有包含源代碼,必須非常醒目的告知用戶,如何通過 Internet免費的下載源代碼.源代碼必須是以當程序員修改程序時優先選用的形式提供.故意地擾亂源代碼是不允許的.以預處理程序或翻譯器這樣的中間 形式作為源代碼也是不允許的. 3、派生程序 許可證必須允許更改或派生程序.必須允許這些程序按與初始軟體相同的許可證發行. 4、作者源代碼的完整性 只有當許可證允許在程序開發階段,為了調整程序的目的將"修補文件"的發行版與源代碼一起發行時,許可證才能限制源代碼以更改後的形式發行.許可證必須明確地允許按更改後的源代碼所建立的程序發行.許可證可以要求派生的程序使用與初始軟體不同的名稱或版本號. 5、無個人或團體歧視 許可證不能都有針對任何個人或團體制在專門奮斗領域內的任何人使用該程序.例如不能限製程序應用於商業領域,或者應用於遺傳研究. 7、許可證發行 伴隨程序所具有權力必須適用於所有的程序分銷商,而不需要這些團體之間再附加許可證簽字蓋章. 8、許可證不能特製某個產品 如果程序是某個特殊的軟體發行版中的一部分,伴隨該程序所具有的權力不能只以來於這一發行版.如果程序是從那一發行版中摘錄出來的,使用或發行時用的都是那個程序的許可證,分銷程序的所有團體都應擁有與初始軟體版所允許的所有權力. 9、許可證不能排斥其他軟體 許可證不能限制隨該許可證軟體一起發行的其他軟體.例如,許可證不能要求所有與之一起發行的其他軟體都是開源軟體. 10、許可證實例 GNU GPL、BSD、X Consortiun和Artistic許可證都是我們認為符合開源軟體定義的許可證.MPL也是一樣. 1.9版的英文原文: The Open Source DefinitionVersion 1.9 The indented, italicized sections below appear as annotations to the Open Source Definition (OSD) and are not a part of the OSD. Introction Open source doesn't just mean access to the source code. The distribution terms of open-source software must comply with the following criteria: The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale. 1. Free Redistribution Rationale: By constraining the license to require free redistribution, we eliminate the temptation to throw away many long-term gains in order to make a few short-term sales dollars. If we didn't do this, there would be lots of pressure for cooperators to defect. 2. Source Code The program must include source code, and must allow distribution in source code as well as compiled form. Where some form of a proct is not distributed with source code, there must be a well-publicized means of obtaining the source code for no more than a reasonable reproction cost–preferably, downloading via the Internet without charge. The source code must be the preferred form in which a programmer would modify the program. Deliberately obfuscated source code is not allowed. Intermediate forms such as the output of a preprocessor or translator are not allowed. Rationale: We require access to un-obfuscated source code because you can't evolve programs without modifying them. Since our purpose is to make evolution easy, we require that modification be made easy. 3. Derived Works The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software. Rationale: The mere ability to read source isn't enough to support independent peer review and rapid evolutionary selection. For rapid evolution to happen, people need to be able to experiment with and redistribute modifications. 4. Integrity of The Author's Source Code The license may restrict source-code from being distributed in modified form only if the license allows the distribution of "patch files" with the source code for the purpose of modifying the program at build time. The license must explicitly permit distribution of software built from modified source code. The license may require derived works to carry a different name or version number from the original software. Rationale: Encouraging lots of improvement is a good thing, but users have a right to know who is responsible for the software they are using. Authors and maintainers have reciprocal right to know what they're being asked to support and protect their reputations. Accordingly, an open-source license must guarantee that source be readily available, but may require that it be distributed as pristine base sources plus patches. In this way, "unofficial" changes can be made available but readily distinguished from the base source. 5. No Discrimination Against Persons or GroupsThe license must not discriminate against any person or group of persons. Rationale: In order to get the maximum benefit from the process, the maximum diversity of persons and groups should be equally eligible to contribute to open sources. Therefore we forbid any open-source license from locking anybody out of the process. Some countries, including the United States, have export restrictions for certain types of software. An OSD-conformant license may warn licensees of applicable restrictions and remind them that they are obliged to obey the law; however, it may not incorporate such restrictions itself. 6. No Discrimination Against Fields of EndeavorThe license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research. Rationale: The major intention of this clause is to prohibit license traps that prevent open source from being used commercially. We want commercial users to join our community, not feel excluded from it. 7. Distribution of License The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties. Rationale: This clause is intended to forbid closing up software by indirect means such as requiring a non-disclosure agreement. 8. License Must Not Be Specific to a ProctThe rights attached to the program must not depend on the program's being part of a particular software distribution. If the program is extracted from that distribution and used or distributed within the terms of the program's license, all parties to whom the program is redistributed should have the same rights as those that are granted in conjunction with the original software distribution. Rationale: This clause forecloses yet another class of license traps. 9. License Must Not Restrict Other SoftwareThe license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be open-source software. Rationale: Distributors of open-source software have the right to make their own choices about their own software. Yes, the GPL is conformant with this requirement. Software linked with GPLed libraries only inherits the GPL if it forms a single work, not any software with which they are merely distributed. 10. License Must Be Technology-NeutralNo provision of the license may be predicated on any indivial technology or style of interface. Rationale: This provision is aimed specifically aimed at licenses which require an explicit gesture of assent in order to establish a contract between licensor and licensee. Provisions mandating so-called "click-wrap" may conflict with important methods of software distribution such as FTP download, CD-ROM anthologies, and web mirroring; such provisions may also hinder code re-use. Conformant licenses must allow for the possibility that (a) redistribution of the software will take place over non-Web channels that do not support click-wrapping of the download, and that (b) the covered code (or re-used portions of covered code) may run in a non-GUI environment that cannot support popup dialogues. 關於開放源代碼的定義(1.7版) 開放源代碼並不僅僅意味著對源代碼的訪問權.開放源代碼軟體的發布條款必須滿足以下條件: 1. 自由地再發布 如果被發布的軟體是由不同來源的程序組成的,許可證不得限制任何當事人或組織(party)銷售或贈送作為被發布軟體成分之一的開放源碼軟體. 許可證不得從此項

④ 開源代碼是什麼,怎麼用

開放源代碼(Open source code)也稱為源代碼公開,指的是一種軟體發布模式。

一般的軟體僅可取得已經過編譯的二進制可執行檔,通常只有軟體的作者或著作權所有者等擁有程序的原始碼。

有些軟體的作者會將原始碼公開,此稱之為「源代碼公開」,但這並不一定符合「開放源代碼」的定義及條件,因為作者可能會設定公開原始碼的條件限制,例如限制可閱讀原始碼的對象、限制衍生品等。


(4)開源碼擴展閱讀:

開放源代碼軟體放棄了以下著作權人所享有的權利:

1、作品復制權:

接受某種開放源代碼軟體公共許可協議的用戶,對於初始軟體作品可以自由復制,也放棄了自己對初始軟體作品修改完善以後衍生版本軟體的復制限制權利。

2、作品修改權:

接受某種開放源代碼軟體公共許可協議的用戶,在依照協議復制了原軟體作品的目標代碼和源代碼以後,可以對原軟體作品在源代碼上進行修改,並且對修改後的衍生軟體作品,又要遵循先前已有的公共許可協議向後續的用戶明確放棄修改權,賦予後續用戶繼續修改的權利。

3、作品傳播權:

接受某種開放源代碼軟體公共許可協議的用戶,在自由地獲取了依照該協議發布的軟體作品,並進行了相關的修改完善之後,有依照該協議繼續無條件向後續用戶發布初始軟體作品以及修改後軟體作品的義務。

⑤ 代碼開源

代碼開源是說做那個系統所用的原代碼都要公開,任何人可以自己去修改去做自己的系統,有一點要求就是修改後的原代碼也要公開。簡單點就是沒有什麼侵犯版權的問題。任何人可以自己封裝自己出售

⑥ 什麼是開源代碼

開放源代碼軟體源於自由軟體開源運動,簡稱開源軟體。是指那些源代碼公開,可以被自由使用、復制、修改和再發布的一系列軟體的集合。開源軟體許可證,是對開源軟體進行規范的授權合同,也可以稱為授權協議書。其類別繁多,在選擇適用上,了解彼此的權利讓渡程度是其關鍵因素。

開放源代碼軟體就是在開放源代碼許可證下發布的軟體,以保障軟體用戶自由使用及接觸源代碼的權利。這同時也保障了用戶自行修改、復制以及再分發的權利。

簡而言之,所有公布軟體源代碼的程序都可以稱為開放源代碼軟體。 開放源代碼有時不僅僅指開放源代碼軟體,它同時也是一種軟體開放模式的名稱。

(6)開源碼擴展閱讀:

源代碼好處:

1、它們能降低企業部署網路和各種服務的成本,如果採用開源方案,你只需要一台伺服器,其他的都可以免費,而用windows,你必須花錢購買操作系統(假設沒有盜版)。

2、可以在源代碼的基礎上進行二次開發,完善或豐富現有系統功能。

3、參考學習。通過分析源代碼,可以學習開發、了解開發者的思路,學習開發者如何通過巧妙的方式、演算法解決業務問題,閱讀源代碼是提高開發水平的快捷方式。

⑦ 軟體開源是什麼意思

開放源代碼與自由軟體
許多人將開放源代碼與自由軟體(freeSoftware)視為相同,但若以定義條件而言,自由軟體僅是開放源代碼的一種,也就是自由軟體的定義較開放源代碼更為嚴格,並非開放源代碼的軟體就可稱為自由軟體,要視該軟體的授權條件是否合乎自由軟體基金會對自由軟體所下的定義。 開源軟體定義Version 1.9 開源不僅僅表示開放程序源代碼。從發行角度定義的開源軟體必須符合如下條件:
1、自由再發行
許可證不能限制任何團體銷售或贈送軟體,軟體可以是幾個不同來源的程序集成後的軟體發行版中的其中一個原件。許可證不能要求對這樣的銷售收取許可證費或其他費用。
2、程序源代碼
程序必須包含源代碼。必須允許發行版在包含編譯形式的同時也包含程序源代碼。當產品以某種形式發行時沒有包含源代碼,必須非常醒目的告知用戶,如何通過 Internet免費的下載源代碼。源代碼必須是以當程序員修改程序時優先選用的形式提供。故意地擾亂源代碼是不允許的。以預處理程序或翻譯器這樣的中間 形式作為源代碼也是不允許的。
3、派生程序
許可證必須允許更改或派生程序。必須允許這些程序按與初始軟體相同的許可證發行。
4、作者源代碼的完整性
只有當許可證允許在程序開發階段,為了調整程序的目的將「修補文件」的發行版與源代碼一起發行時,許可證才能限制源代碼以更改後的形式發行。許可證必須明確地允許按更改後的源代碼所建立的程序發行。許可證可以要求派生的程序使用與初始軟體不同的名稱或版本號。
5、無個人或團體歧視
許可證不能都有針對任何個人或團體制在專門奮斗領域內的任何人使用該程序。例如不能限製程序應用於商業領域,或者應用於遺傳研究。
7、許可證發行
伴隨程序所具有權力必須適用於所有的程序分銷商,而不需要這些團體之間再附加許可證簽字蓋章。
8、許可證不能特製某個產品
如果程序是某個特殊的軟體發行版中的一部分,伴隨該程序所具有的權力不能只以來於這一發行版。如果程序是從那一發行版中摘錄出來的,使用或發行時用的都是那個程序的許可證,分銷程序的所有團體都應擁有與初始軟體版所允許的所有權力。
9、許可證不能排斥其他軟體
許可證不能限制隨該許可證軟體一起發行的其他軟體。例如,許可證不能要求所有與之一起發行的其他軟體都是開源軟體。
10、許可證實例
GNU GPL、BSD、X Consortiun和Artistic許可證都是我們認為符合開源軟體定義的許可證。MPL也是一樣。

⑧ 開源代碼是什麼意思

開放源代碼(Open source code)也稱為源代碼公開,指的是一種軟體發布模式。一般的軟體僅可取得已經過編譯的二進制可執行檔,通常只有軟體的作者或著作權所有者等擁有程序的原始碼。有些軟體的作者會將原始碼公開,此稱之為「源代碼公開」,但這並不一定符合「開放原代碼」的定義及條件,因為作者可能會設定公開原始碼的條件限制,例如限制可閱讀原始碼的對象、限制衍生品等。

⑨ 什麼是開源(開放源代碼)

一般的軟體僅可取得已經過編譯的二進制可執行檔,通常只有軟體的作者或著作權所有者等擁有程式的源代碼。有些軟體的作者會將源碼公開,此稱之為「源碼公開」,但這並不一定符合「開放源代碼」的定義及條件,因為作者可能會設定公開源代碼的條件限制,例如限制可閱讀源代碼的對象、限制衍生品等。 開源即開放源代碼(英文:Open Source)指一種軟體散布模式。一般的軟體僅可取得已經過編譯的二進制可執行檔,通常只有軟體的作者或著作權所有者等擁有程式的源代碼。

熱點內容
存儲上市龍頭 發布:2024-11-15 14:52:14 瀏覽:37
我的世界伺服器怎麼重置教學 發布:2024-11-15 14:52:13 瀏覽:122
C語言tf 發布:2024-11-15 14:36:22 瀏覽:810
違反密碼法是什麼意思 發布:2024-11-15 14:36:20 瀏覽:920
androidmp3錄音 發布:2024-11-15 14:32:50 瀏覽:493
英朗自動擋哪個配置最好 發布:2024-11-15 14:27:44 瀏覽:253
編譯原理斷言有哪幾種 發布:2024-11-15 14:25:29 瀏覽:200
資料庫數據重復 發布:2024-11-15 14:23:17 瀏覽:781
安卓端開發用什麼IDE 發布:2024-11-15 14:13:51 瀏覽:554
阿里雲查看訪問ip 發布:2024-11-15 14:08:58 瀏覽:544