# Nov 8, 2016 開放原始碼生態系統和商業模式 主講人: Jim Huang (黃敬群) a.k.a. "[jserv](http://wiki.csie.ncku.edu.tw/User/jserv)" 地點:台灣朝陽科技大學 簡報網址: https://hackmd.io/s/H1CyOD0xx ## 重點提示 * 電腦科學家 Alan Kay 的名言:「預測未來的最佳方式就是去創造它」 * 你只要對 Android Open Source Project (AOSP) 貢獻哪怕僅有一行程式碼,都表示你的創作在全球超過 10 億台內建 Android 的電子裝置上運作,若你還能持續貢獻,那就透過「創造」去「預測」了未來 * 自由軟體/開放源碼本質:處於虛幻與現實的緩衝帶的社群 * 經營:管理與完全放任的一線之隔 * 君子愛財取之有道:商業化途徑 ![](https://hackpad-attachments.s3.amazonaws.com/fossapc.hackpad.com_WjZwF2NUZWl_p.131666_1463605342907_cash.jpg) [ [source](https://www.facebook.com/markleeblog/photos/p.1237675539591689/1237675539591689/) ] ## Twitter 選錄 * [「世界上有七十億人口,但我們認識的世界,卻是靠身旁大約數百人所建構出來的」](https://twitter.com/ltsart/status/792908441891119104) * [「台灣人真的很厲害,要在出社會之後瞬間學會獨立自主、創造力、判斷力、大膽前瞻,上揭所示之主動技於成年以前禁止使用。」](https://twitter.com/yhlouise/status/780769584206852098) * 判斷力示範:「你們要努力,以後才有好日子」/「亞洲人還不夠努力嗎?工作時數爆表,連自尊心都丟了,為什麼總是比不上歐美呢?」 * ["The value of open source is not free code, but multiples of engineering investment."](https://twitter.com/xatierlikeLee/status/767192438544879617) ## 觀念澄清 在 2016 年,我們不需要「推廣」open source,因為後者早已走入資訊社會之中,但我們應該要「澄清」誤解和成見,像是以下: * 「搞 open source 的人要怎麼過活?source code 都給人看光光,要賺什麼錢?」 * 「聽說使用 open source 都要把 source code 吐出來,要怎麼避免?」 * 「一旦被 GPL 感染,source code 都得攤在陽光下,這麼恐怖 ,還是不要拿 open source 來作產品」 * 「只要不要被人發現我們使用 GPL 軟體,應該就沒事吧?」 * 「我又沒有拿 open source 來賺錢,所以可以把網路上找到的軟體拿來改,甚至把作者的著作權標示都抹除,是嗎?」 ## Ecosystem (生態系統) * [Open Source Ecosystem](https://www.dropbox.com/s/w08qfynqox73upp/open-source-ecosystem.pdf?dl=0) * P. McCoy Smith 和 Wayne R. Chang 論文[The Evolution of Business Models Using Open Source Software](https://wiki.oulu.fi/download/attachments/58197330/ossd_2015_luu_li_dong_samodelkin.pdf?version=1&modificationDate=1448956483000&api=v2) (2011 年) * [Open-Source Business Models](http://events.linuxfoundation.org/sites/events/files/slides/lfcs15_hall.pdf) (2015 年) ## 理解真實世界的運作機制 * **[貨幣系統真相](https://www.youtube.com/watch?v=3xaQvyVh5j0)** (video) 「數字代表我的心」之 7 大步驟 * Step 1: 政府創造好聽的借據 * 偷取未來的財富,拿來現在花掉 * Step 2: 銀行交換借據來創造貨幣 * 銀行用貨幣買下借據,然後聯準會寫借據(支票)給銀行,以交換財政部發行的債券,貨幣因此創造。實際上就是聯準會和財政部互換借據,銀行充當中間人 * money (錢) vs.currency (貨幣) * [通俗介紹影片](https://tw.voicetube.com/videos/29001) * Richard C. Temple 將交易媒介物是否僅為不具實用價值的 token,作為區分 currency 和money 的標準 [ [source](http://c.ianthro.tw/sites/c.ianthro.tw/files/da/df/410/410102_0001.pdf) ] * money 必須儲存價值,並長期保有購買力 * 不斷堆積起來的基礎貨幣只不過是張收據 * [《貨幣背後的秘密》第1集 通貨 vs. 貨幣](https://www.youtube.com/watch?v=M6OAZjra8l4) * Step 3: 政府把錢花掉 * 存錢 => 把你的貨幣借給銀行,而在法定範圍內,銀行要如何運用你的錢都行,包含在股票市場中賭錢,當然也包含再把錢借出去,以錢滾錢 * Step 4: 銀行把錢倍增 * 部份準備制度 * 部份準備比例: 10% => 存款: 100 元 + 可用信用額度: 90 元 = 190 元 * 銀行信用是貨幣主要來源,92% 到 96% 的現有貨幣不由政府製造,而來自銀行 * 通貨膨脹:貨幣變多,飛漲的物價則是結果 * Step 5: 我們要繳稅 * 我們之所以要工作,是為了換取貨幣,真正的財富其實是你的時間 * 我們經年累月付出了生命歲月,只為了某個人印在紙上或輸入到電腦的數字,那數字代表我們的汗水、眼淚、勞動、想法和才能,我們本該是賦予貨幣價值的人 * 我們大多數的稅收並非花在學校、道路或公共服務,反而花在償還「聯準會用空頭支票跟銀行買來」的國債利息上 * Step 6: 債務上限幻覺 * 債務永遠會比現有的貨幣還多 * 現有的每一塊錢上,每個月都有到期的本金 + 利息要償還,無法停止還錢 * 如果我們不還錢,就不會有新的貨幣被創造出來,以便取代拿去還債的貨幣 * 用來償還本金的那筆錢,消滅了對應的那筆債務,但債務同時消滅了貨幣 * 貨幣和債務有如物質和反物質,當彼此碰上,就會消滅對方 * 系統被設計為「需要無限增長的債務」,才能延續下去 * 美國獨立戰爭起因反抗稅收 (1773年12月16日發生[波士頓茶葉黨事件](https://zh.wikipedia.org/wiki/%E6%B3%A2%E5%A3%AB%E9%A0%93%E8%8C%B6%E8%91%89%E9%BB%A8%E4%BA%8B%E4%BB%B6)),結果現在反而需要繳稅才能延續貨幣系統 * Step 7: 貨幣系統的老闆瓜分全民稅收 * [債務貨幣/金錢就是債務](https://www.youtube.com/watch?v=4qsvvokeFM4&list=PLQglw9EcsbCLsl7lpmAWjk11N7NGKY4Zk) (video) ![](https://i.imgur.com/IDHGz0f.jpg) [ [source: This is deep](https://twitter.com/StoryInPicture/status/680983964094300160) ] ## 思考時事 * [看AT&T購併時代華納,談電信業者新出路的策略思考](https://rocket.cafe/talks/80114) * AT&T所擁有的龐大用戶基礎,是可以被活化利用的,大數據的珍貴之處,不再於只是數量龐大,而是可以找到一個數據應用的出海口。時代華納會是AT&T大數據資產活化的出海口嗎?可以透過AT&T的數據分析,為時代華納找到更精準的內容題材嗎?可以有更精準的行銷廣告搭配嗎? ## 開放原始碼比較好嗎? ![](https://hackpad-attachments.s3.amazonaws.com/fossapc.hackpad.com_2016-Week-1_p.131666_1456111087190_undefined) 被「___ 壟斷我們每天使用的資訊系統」有什麼問題 (底線可以換成過去的 MS-Windows 或者一堆產品),但看這張照片,大概就能體會「有選擇」的重要。 [ [source](https://www.facebook.com/photo.php?fbid=10102665120179591&set=a.529237706231.2034669.) ] 開放原始技術不見得比較強大,但可以讓我們「有選擇」,知道裡頭的設計和實做機制,同時引出新的商業機會。 ## 開放原始碼專案的商業應用 * [開放原始碼專案獲利指引](https://github.com/jserv/lemonade-stand) * 捐贈按鈕 * 懸賞 * 群眾募資 (一次性) * 群眾募資 (持續性) * 賣書及周邊 * 廣告 * 受雇於公司並持續開發專案 * 在職時啓動專案 * 補貼 * 咨詢服務 * SaaS * 雙重授權條款 * 免費增值授權 * 開放核心 * 基金會 * 風險投資 Q: 開放原始碼若商業化,在商業化過程中,若使用免費的元件,則後續版本的更新與維護該如何運行? A: 這就屬於「開放核心」和「諮詢服務」的範疇 Q: 開放原始碼軟體的盈利模式是否是以後期服務為主,重點並不在前期出售軟體獲利,而是藉此打開市場獲得市場份額,在軟體項目的部署與定制以及後續的檢修升級過程盈利? A: 這是 1990 年代 Cygnus Solutions (第一間以自由軟體獲利的公司) 實際採用的方式,但之後 Red Hat 就靈活採用上述獲利方式的組合,實現持續獲利。 Q: 對於開放原始碼生態系統的安全性有沒有相關的防護措施? A: 有,而且專注這方面的公司不算少。[Black Duck Software](https://www.blackducksoftware.com/) 是開放原始碼軟體管理的全球領導廠商,協助企業降低開源碼版權與資安的風險。Synopsys 旗下的 [Coverity](https://www.coverity.com/) 提供程式碼靜態分析工具,免費分析開放原始碼專案的程式碼品質。 ## 授權條款與模式 * 影片: [USL v. BSDi 官司](https://www.youtube.com/watch?v=LLtj41eyvcA) * [自由軟體授權分析](https://www.dropbox.com/s/yx2xsh0c0aosl0i/20160307.pdf?dl=0),林誠夏 * 權利 * 使用權 * 修改權 * 散佈權 * Note. 商用軟體只有『使用權』。 * 自由或開放原始碼軟體的特性 * 非專屬授權(專屬授權類似『賣斷』) * 不可撤回 * 免授權金(但可收費) * 授權金 (對象、時間、範圍) * 使用GPL Licence時,程式碼可以以工本費之價碼收取費用(例如光碟、文本印製等等) * 不附隨擔保 * 不限制目的、時間、地域 * 現在這個世界是開源跟私有(proprietary)的結合 * 商業策略:開放 binary 和 source code,但是針對行業專屬的 know-how 或操作指南,只提供給生意夥伴或付費訂閱會員(不違反 GPL 原則) * [Make Your Open Source Software GPL-Compatible](http://www.dwheeler.com/essays/gpl-compatible.html) * by [David A. Wheeler](http://www.dwheeler.com/contactme.html) ![](https://hackpad-attachments.s3.amazonaws.com/fossapc.hackpad.com_WjZwF2NUZWl_p.131666_1463617017491_undefined) ![](https://hackpad-attachments.s3.amazonaws.com/ntuoss.hackpad.com_NlSuiXIWfYP_p.545670_1456726129823_fork.jpg) ## Fork in Free / Open Source Software Projects * 影片: [WebKit 發展史及開源條款授權分析](https://www.youtube.com/watch?v=i3yuZ9QMd1U) * [解說共筆](https://fossapc.hackpad.com/WebKit--XqghAl17WNT) * F/OSS 專案的特性之一,就是開發者 "fork" 專案的自由 (不損害商標的前提) * 技術報告: [Forks in Open Source Software Projects](https://wiki.oulu.fi/download/attachments/28092087/ossd_2012_kuusirati_seppanen.pdf?version=1&modificationDate=1353314930000) (2012) * 技術報告: [Forks have created some of the best projects in Free Software, but their origins are usually controversial and messy](https://www.linuxvoice.com/issues/006/fork6.pdf) (2009) * 論文: [Understanding Code Forking in Open Source Software](https://helda.helsinki.fi/bitstream/handle/10138/153135/287_978-952-232-275-3-1_v2.pdf) (2015) * 電子書: [Software Development Using Open Source and Free Software Licenses](http://www.oreilly.com/openbook/osfreesoft/book/ch07.pdf) (Page 171) * OpenSSL => LibreSSL, BoringSSL * [LibreSSL](http://www.libressl.org/) (OpenBSD 開發者主導): [Only a few days old, OpenSSL fork LibreSSL is declared 「unsafe for Linux」](http://arstechnica.com/security/2014/07/only-a-few-days-old-openssl-fork-libressl-is-declared-unsafe-for-linux/) (2014 Jul) * [BoringSSL](https://boringssl.googlesource.com/boringssl/) (Google 工程師主導): [Google unveils independent 「fork」 of OpenSSL called 「BoringSSL」](http://arstechnica.com/security/2014/06/google-unveils-independent-fork-of-openssl-called-boringssl/) (2014 Jun) * 起因: 2014 年 OpenSSL 的重大安全問題: [Heartbleed Bug](http://heartbleed.com/) * 事實上,2009 年就有 OpenBSD 開發者 Marco Peereboom 不滿 OpenSSL 的 API 設計,fork OpenSSL 而提出 [assl (Agglomerated SSL)](https://opensource.conformal.com/wiki/assl) * 截至 2014 年,全球 66% 的伺服器使用 OpenSSL * 其他相關開源專案:  [GnuTLS](https://en.wikipedia.org/wiki/GnuTLS) (LGPL), [NSS](https://en.wikipedia.org/wiki/Network_Security_Services) (MPL; Mozilla project) * OpenSSL 授權和 GPL 的不相容議題 [廣告條款]: [PostgreSQL, OpenSSL, and the GPL](https://lwn.net/Articles/428111/); [The OpenSSL License and The GPL](https://people.gnome.org/~markmc/openssl-and-the-gpl.html) * XFree86 => Xorg * 關鍵人物:  Keith Packard * 從「教堂」模式轉化「市集」模式 * The XFree86 president, David Dawes, decided to change the XFree86 license in 2004 to one that wasn’t GPL-compatible, primarily to give developers more credit. The problem wasn’t giving credit; the problem was GPL incompatibility. This attempted change led to a mass exodus from XFree86, as nearly all developers and users immediately abandoned XFree86. * XFree86's popularity declined rapidly, and by 2009 it was effectively dead. Meanwhile X development picked up pace as it moved away from XFree86. * OpenOffice => LibreOffice * gcc2 => egcs => gcc3 * Emacs => Xemacs * FreeBSD => DragonFlyBSD * RHEL => CentOS * MeeGo => Sailfish OS (Jolla) **The effect of the right to fork ** code forking 對一個專案可能造成的影響正反面都有可能,但從宏觀的角度來看,code forking 可說是開源軟體永續發展的隱形推手。code forking 所產生的影響分成下面三種等級: * **Software Level** * 這邊所強調的一點是商業手法中非常常見的「計劃性淘汰」。舉例來說,故意減少燈泡的壽命來增加銷售量、在印表機中設一個「死亡開關」,即使機台都沒壞掉,只要印了一定數量的文件就會無法再運作,⋯⋯等。而在軟體產業中,常見的計劃性淘汰就像是軟體升級後不支援舊版作業系統、甚至是推出新的作業系統宣布不再維護舊版作業系統等手法。 * 然而開源軟體因為授權的特性,天生就免疫這種情況的出現。因為每個人都有 fork 的權利,沒有人能故意用計劃性淘汰的手法來逼迫大家放棄現有的軟體,只有可能讓大家一起將軟體升級、改善相容性和讓軟體更好而已。 * **Community Level** * 對於開源社群來說,因為每個人都有 fork 的權利,為了避免不必要的 fork、將使用者和開發者分散掉,整個社群變得更團結。然而當專案領導人 (概念重於頭銜本身) 和整個社群的期望相違背時,fork 也能讓整個社群確保專案可以朝著多數人的目標和期望前進。同時,fork 也能避免軟體公司「綁架」了整個軟體。 * 有趣的是,開源軟體公司和開源軟體社群有著根本上不同的地方:軟體公司可能會賣掉、然而社群不會。因此若開源社群的大部分開發者不贊同某個決定時,他們大可直接 fork 一個版本出去而不甩決策者、統合認同自己的人們再繼續進行開發。 * 不過這邊值得一提的是,單單 fork 程式碼其實是相當簡單的(在GitHub上僅僅是一個按鈕的事情),以上所提及的 fork,**困難的挑戰**往往都是在建立開源社群、開源社群、使用族群、穩定收入和有效的支援與服務。 * **Business Ecosystem Level** * 開源商業模式之所以變成現在的型態,"fork" 可說是其中最關鍵的機制。fork 讓公司們「可以」做到某些事,同時也讓這些公司們「不可以」去做某些行為。 * 舉例來說,MariaDB Foundation 和 Oracle 的商業行為注定不可能一樣。**由於 MariaDB 是從 GPL 2.0 的 MySQL fork 出來的,因此會被 GPL 2.0 給限制**、無法使用和 Oracle 一樣的定價策略。然而 Oracle 是目前 MySQL 的擁有者、握有兩種授權,因此他可以使用 Dual Licensing 的方式來作為其商業模式,而 MariaDB Foundation 則辦不到。 * 另外關於Business Ecosystem Level有趣的一點是,fork出來的軟體其實只會在散佈時觸發Open Source License。因此要是公司只拿來作為內部使用,則fork出來的軟體經過修改後滿足需求,將可節省大量成本。只不過這種方式的缺點是無法得到眾人們的debug以及原軟體更新時將有可能和公司自己調整的版本不相容。 * 在商業的開源生態中,許多公司一起合作是很常見的模式。舉例來說,許多遊戲開發商有可能一起合力開發一款遊戲引擎,而自家的遊戲就可以使用這款引擎又可以節省開發遊戲引擎的成本。一個更好的引擎可以讓所有廠商都獲利,因此而促進了大家的合作。 * 另一個例子是WebAssembly,由 Mozilla、Google、Microsoft、Apple 等四家公司合作開發,目標是改善現在網頁的效能、讓未來Web Application能夠增加更多的可能性。這些例子就和高速公路一樣,在基礎建設上大家共同來進行開發、加速整體產業的發展,讓大家一起獲利。 * 一句話總結各公司在開源合作的模式: :::info "Open source software is commonly developed to **support** what is unique about the business, rather than to **be** what is unique about the business." ::: ## 創新的趨力和趨利 * [從「下町火箭」談開放原始碼](https://medium.com/@c9s/%E5%BE%9E%E4%B8%8B%E7%94%BA%E7%81%AB%E7%AE%AD%E8%AB%87%E9%96%8B%E6%94%BE%E5%8E%9F%E5%A7%8B%E7%A2%BC-5f64c6404548#.kd7cgh6jb) * 創新,重點在於打破既有框架、既有想像,讓事物以新的樣貌重生。 不管是多小多小的創新,都是在改變世界。 * 開放原始碼在商業策略上的利基在於: * 版權還是在原作者或發起公司手上 * 程式碼是開放了,但專利不是你的 * 專案主導掌控權不在你手上,只有參與合作的企業有機會參與決策 * 企業共利,降低獨立開發成本 * 淘寶年營收成長速度之高,已經到了沒有現成的商業軟體可完美解決該公司面對的技術問題,只好重頭改善開放原始碼的技術,以符合自身需求有商業方案 * 原本採用 IOE * I: IBM (server) * O: Oracle (database) * E: EMC (storage) * Microsoft 一開始 (2001) 否認 Open Source,認為它是一個軟體產業的「Cancer」,後來自己也推行一套 Open Source 的授權(2007)。 * 要去思考我們需要解決什麼樣的問題,如果沒有解決任何問題,則不會有商機。 * Open Source 提供一個高度可見的協作框架,吸引大公司的關注 * Open Source 作為公共財的形式,刺激了基礎軟體設施 * [Symbian](http://en.wikipedia.org/wiki/Symbian): Symbian 作業系統的授權金行情價是台幣一億元,顯示在當時非開源的手機系統的開發成本極高無比 * 但是,Android 完全顛覆這樣的模式,把價值上億元的手機系統原始碼,當作廣告來免費放送 * 高通的專利傘 * 規定高通的客戶彼此之間不能互相提起法律訴訟 * 但這規則在去年消失了 * 這專利傘造成的封閉市場存在了十幾年 * [小米還有更壞的事? 恐失「高通傘」保護 | 即時新聞 | 20141216 | 蘋果日報](http://www.appledaily.com.tw/realtimenews/article/new/20141216/524954/) * [OpenStack](http://en.wikipedia.org/wiki/OpenStack) - [](https://www.openstack.org/)[https://www.openstack.org/](https://www.openstack.org/) * Nokia 各種手機軟體從頭到腳都是自己開發,Android 這個 Open Source Project 的出現造成整個手機生態的改變。 延伸閱讀 * [從 Revolution OS 看作業系統生態變化](https://fossapc.hackpad.com/-Revolution-OS--RrJpYEByzmr) ## 最後送大家一句話 "Work Until You No Longer Have to Introduce Yourself" ![](https://i.imgur.com/VrZNtOl.jpg) [ [source](https://www.facebook.com/photo.php?fbid=10105912195265103&set=a.10100927720771943.2974750.1210499) ]