Skip to content

Instantly share code, notes, and snippets.

@nczz
Created July 21, 2026 02:44
Show Gist options
  • Select an option

  • Save nczz/929d353de7a0c0b3ce19669cbcb22e58 to your computer and use it in GitHub Desktop.

Select an option

Save nczz/929d353de7a0c0b3ce19669cbcb22e58 to your computer and use it in GitHub Desktop.
為什麼會有開源?底層邏輯研究報告(含事實稽核)

為什麼會有「開源」?底層邏輯研究報告

撰寫日期:2026-07-21 本報告所有人事物主張均經過交叉驗證,修正項目標註於文末「事實稽核紀錄」


一、起源:軟體本來就是開放的

1950–70 年代,軟體隨硬體附送,原始碼公開交流是學術界常態。

轉折點:軟體商品化

1976 年 2 月 3 日,Bill Gates 在 Homebrew Computer Club Newsletter(Volume 2, Issue 1)發表〈An Open Letter to Hobbyists〉,指責電腦愛好者複製 Altair BASIC 是「偷竊」,主張軟體開發者應獲得報酬。這封信標誌著「軟體應該是商品」這一觀念的正式宣言。

驗證來源:DigiBarn Computer Museum 原始掃描件、Wikipedia "An Open Letter to Hobbyists" 條目、Microsoft 官方歷史頁面

開源不是發明出來的,而是恢復一種被商業化打斷的自然狀態。


二、底層邏輯:三個驅動力

1. 知識的非競爭性(Non-rivalrous goods)

軟體的本質是知識,不是物質:

  • 物質商品:我給你一塊麵包,我少一塊(零和)
  • 知識商品:我給你一段程式碼,我沒有任何損失(正和)

封鎖原始碼是人為製造稀缺性。開源是讓軟體回到它的自然經濟屬性。

2. Linus's Law —— 「眼球夠多,所有 bug 都是淺的」

由 Eric S. Raymond 於 1999 年在其論文暨書籍《The Cathedral and the Bazaar》中提出,以 Linus Torvalds 之名命名。原文為:

"Given enough eyeballs, all bugs are shallow."

核心論點:軟體的複雜度超過任何單一組織能完全掌控的範圍。開源是承認這個事實後的理性選擇。

Linux kernel 的實證數據:

  • 每個 release cycle 約有 1,000+ 位開發者貢獻程式碼
  • 累計超過 13,500 位開發者來自超過 1,300 家公司(Linux Foundation 報告)
  • 2024 年全年有 75,314 個 commits 被合併(Phoronix 統計)

驗證來源:Wikipedia "Linus's law"、kernel.org 官方文件、Linux Foundation Development Report、Phoronix 2024 年度統計

3. 信任通過透明(Trust through transparency)

Kerckhoffs' Principle(克爾克霍夫斯原則)

由荷蘭籍語言學家兼密碼學家 Auguste Kerckhoffs(1835–1903,出生於荷蘭 Nuth)於 1883 年在法國軍事期刊 Le Journal des Sciences Militaires 發表的論文〈La Cryptographie Militaire〉中提出。

核心主張:密碼系統的安全性應僅依賴金鑰的保密性,而非演算法的保密性。

推廣到軟體:

  • 封閉 = 「相信我」
  • 開源 = 「自己驗證」

驗證來源:Wikipedia "Kerckhoffs's principle"、Wikipedia "Auguste Kerckhoffs"、Springer 密碼學百科


三、自由軟體運動的起點:一台壞掉的印表機

Stallman 與 Xerox 9700 事件

時間:1980 年 地點:MIT 人工智慧實驗室(AI Lab) 事件

MIT AI Lab 收到 Xerox 捐贈的 Xerox 9700 雷射印表機。這台印表機經常卡紙,Richard Stallman(當時 27 歲)想修改印表機軟體,讓系統在卡紙時自動通知使用者——他之前成功在一台舊印表機上實作過這個功能。但 Xerox 拒絕提供原始碼,因為這是「專有資訊」。

這個經歷讓 Stallman 深刻體會到:當軟體被封鎖,使用者失去自主權。

三年後:1983 年 9 月 27 日,Stallman 在 Usenet(net.unix-wizards 群組)宣布啟動 GNU 計劃,目標是建立一套完全自由的 Unix 相容作業系統。

自由軟體的四大自由: 0. 自由使用程式(任何用途)

  1. 自由研究程式如何運作(需要原始碼)
  2. 自由散佈程式的副本
  3. 自由改良程式並發佈改良版

本質上是說:使用者不應該被供應商控制。

驗證來源:O'Reilly《Free as in Freedom》第一章、opensource.com "6 pivotal moments in open source history"、GNU.org 官方公告原文、MIT Technology Review 2023 報導


四、為什麼企業要開源?(商業邏輯)

企業不是做慈善。開源對企業有冷靜的利益計算:

動機 機制 範例
降低維護成本 社群幫你修 bug、加功能 Android(Google 不需要自己適配所有硬體)
建立生態壟斷 免費擴散 → 成為標準 → 鎖定生態 Kubernetes(Google)、React(Meta)
招募人才 開發者在貢獻中展示能力,公司順便選人 各大公司的 GitHub
削弱競爭對手的護城河 把別人的付費產品變成免費基礎設施 Chrome/V8(削弱 IE)、Android(削弱 iOS 獨佔)
賣服務而非賣軟體 軟體免費,付費的是託管/支援/企業功能 Red Hat、Elastic、HashiCorp

核心邏輯:軟體本身不是利潤中心時,開源它來降低成本、擴大影響力。


五、為什麼個人要開源?

  • 聲譽即貨幣:在資訊時代,證明你能做什麼比文憑有用。開源貢獻是不可偽造的能力證明。
  • 互惠網絡:你開源一個工具,一千個人用它並回報改進。你一個人寫不出這麼好的東西。
  • 反脆弱:程式碼公開後不會因為你離職、硬碟壞掉、公司倒閉而消失。

六、更深一層:開源是對「控制」的回應

最底層的邏輯是權力結構的問題:

開源的對立面不是「付費」,而是「被鎖定」(vendor lock-in)。你可以賣開源軟體(完全合法),但你不能阻止使用者離開你。


七、一句話總結

開源的底層邏輯是:軟體是知識而非物質,知識的自然狀態是流通,人為封鎖知識的成本最終會高於開放它的成本。

封閉軟體是在用法律和技術手段對抗經濟學基本規律。開源只是順應這個規律——有時出於理想主義,有時出於冷靜的商業計算,通常兩者兼有。


事實稽核紀錄

# 原始主張 驗證結果 修正說明
1 Bill Gates 1976 年公開信 ✅ 正確,精確日期為 1976-02-03 補充精確日期和出版物名稱
2 指責複製 Altair BASIC 是「偷竊」 ✅ 正確 Gates 用詞是「steal your software」
3 Kerckhoffs' principle, 1883 ✅ 正確 荷蘭籍語言學家兼密碼學家,發表於法國軍事期刊
4 Stallman 1983 因印表機事件發起 GNU ⚠️ 需修正 印表機事件發生於 1980 年(Xerox 9700),GNU 計劃宣布於 1983 年 9 月。兩者相關但非同一事件
5 Linus's Law ✅ 正確 Eric S. Raymond, 1999, 《The Cathedral and the Bazaar》
6 Linux kernel 1,700+ 活躍貢獻者來自 200+ 公司 ⚠️ 數字過時 修正為:每 release 約 1,000+ 貢獻者,累計 13,500+ 開發者來自 1,300+ 公司
7 自由軟體四大自由 ✅ 正確 編號從 0 開始(FSF 官方定義)

本報告使用 Google Search 交叉驗證所有人名、時間、事件細節,引用來源包括 Wikipedia、GNU.org、Linux Foundation、kernel.org、O'Reilly、Springer 等。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment