開源不僅是「源碼可見」,必須滿足開源倡議組織(OSI)《開源定義》十項條款:
| 許可證 | 類別 | 核心義務 | 商業友好度 | 典型項目 |
|---|---|---|---|---|
| MIT | 寬鬆 | 保留版權聲明+許可證文本 | 極高 | jQuery, React, Vue, Node.js |
| Apache-2.0 | 寬鬆 | MIT + 專利授予 + 貢獻者商標限制 | 極高 | Kubernetes, TensorFlow, Android |
| BSD-3-Clause | 寬鬆 | MIT + 不得用作者背書衍生作品 | 極高 | Nginx, Redis, Go |
| LGPL-2.1/3.0 | 弱Copyleft | 動態鏈接不傳染,靜態鏈接/修改庫需開源 | 高 | glibc, Qt, FFmpeg |
| MPL-2.0 | 弱Copyleft | 文件級傳染,修改文件需開源,組合作品不傳染 | 高 | Firefox, LibreOffice |
| GPL-2.0 | 強Copyleft | 衍生作品必須同許可證開源(含鏈接) | 中 | Linux Kernel, Git, WordPress |
| GPL-3.0 | 強Copyleft | GPL-2.0 + 反Tivo化 + 專利條款 + 兼容Apache-2.0 | 中 | Bash, GCC, Ansible |
| AGPL-3.0 | 網絡Copyleft | GPL-3.0 + 網絡服務視為分發,需提供源碼 | 低 | MongoDB (舊版), Mastodon, Nextcloud |
開始
│
├─ 願意允許專有軟件直接使用/修改不開源? → 是 → MIT / Apache-2.0 / BSD
│
├─ 希望修改庫本身代碼者開源,但允許動態鏈接? → 是 → LGPL
│
├─ 希望文件級開源,組合作品可專有? → 是 → MPL-2.0
│
├─ 希望所有衍生作品(含鏈接)強制開源? → 是 → GPL-3.0
│
├─ 運行在服務器端提供網絡服務也視為分發? → 是 → AGPL-3.0
│
└─ 專利保護重要? → Apache-2.0 (顯式專利授予)
| 模式 | 特徵 | 決策機制 | 代表項目 |
|---|---|---|---|
| 仁慈獨裁者 (BDFL) | 單一核心領袖最終決定權 | 領袖裁決,社區諮詢 | Python (GvR), Linux (Linus), PHP (內核組) |
| 功績制 | 貢獻度決定權重,委員會治理 | PMC 投票,懶人共識 | Apache 項目 (Hadoop, Kafka), OpenStack |
| 基金會主導 | 中立非營利實體持有商標/資產 | 董事會+技術委員會 | Linux Foundation, CNCF, FSF, Python Software Foundation |
| 公司主導 | 單一商業公司控制路線圖 | 內部決策,社區反饋 | React (Meta), Go (Google), VS Code (Microsoft), Redis (Redis Ltd) |
開源是法律許可譜、社區治理、商業策略、技術哲學的復雜疊加。理解 OSI 定義、許可譜譜系、治理模式、商業化路徑、合規工具鏈,是技術決策者、法務、產品經理的必修課。在「開源即基礎設施」的時代,**選擇許可譜即選擇生態邊界,貢獻代碼即構建公共財,合規管理即守護創新邊界**——願每個開發者既享受開源紅利,又履行開源責任。