# 2021q1 Homework1 (culture) contributed by < `yellow-hank` > ###### tags: `LinuxKernel` ## 問題回答 :::danger 減少非必要的縮排 (indention) :notes: jserv ::: ### 已回答 * free software (自由軟體) 和 open source (開放原始碼) 兩者的理念有何落差?請以創始人的訴求來解讀,儘量引用第一手材料 - free software 定義 - 四大自由 (只要符合下列四項就稱作自由軟體) (引用自 [GNU website](https://www.gnu.org/philosophy/free-sw.html)) - 依照你的想法執行該程式的自由,無論任何目的(自由之零)。 - 研究該程式如何運作的自由,並依照你的想法修改它以符合你的運算所需(自由之壹)。能存取程式的源始碼 (source code) 是這項自由的先決條件。 - 再次散布程式副本的自由,如此你就能幫助他人(自由之貳)。 - 將你修改過後的版本散布給他人的自由(自由之參)。如此你就有機會讓你的改善惠及社群整體。能存取源始碼是這項自由的先決條件。 - 迷思 - 常常會有人誤認 free software 中的 free 的解釋意涵,在這邊的 free 是指程式上使用的自由,並不是價格上的免費,要多加注意! - open source 定義 [website for definition](https://opensource.org/osd) - 除了開放原始碼,還有其他規定要遵守,下面列出幾個重要的 - 不能限制出售或是贈送程式碼 - 可以輕易取得程式碼,不需要付出很多成本來取得,例如:網路直接免費下載 - 可以修改程式碼,並且修改後的程式碼要遵從原本的 license - license 不能限制其他軟體 - license 不能限制在軟體的某一個版本 :::danger 上方沒有你的觀點!請提出和討論。 :notes: jserv ::: * FSF 所提倡的 "Copyleft" 概念,和 "Copyright" 是否衝突?在實務上如何達成?free software 和 open source 的授權條款是否符合著作權精神呢? - Copyleft 指的是程式碼經過修改,需要繼續保持程式碼的公開,當然經過修改也可以收費,只是程式碼也需要公開。 - Copyright 指程式碼算一種資產,作者有權力不公開程式碼給其他人,要不要收費也取決於作者,如同 Copyleft 。 - 兩者在程式碼的公開性有衝突,但是在是否收費此點是一樣的。 - 著作權是在保障創作者的權益, open source 和 free sofware 中的再次創作可以收費,但是原創作者沒有收到錢,在這邊不太符合著作權中的財產權,但是因為大家都要遵守 open source 和 free sofware license ,所以當原作者決定要使用 open source 和 free sofware license,就是賦予其他人他的著作權了。 ### 尚未回答 * 從最初的 Cygnus Solutions (史上首間透過 free software 實現盈利的公司), Red Hat (收購 Cygnus Solutions), 到 IBM (收購 Red Hat 並將其既有業務作為主軸),請解釋公司如何透過 free software 及 open source 來獲利?請列出相關的論文和報告 * 在 21 世紀初期,[Microsoft 一度負面評價 GPL 與 Linux](https://www.zdnet.com/article/microsoft-once-called-linux-a-cancer-and-that-was-a-big-mistake/),但為何一旦該公司主推雲端業務後,即宣布擁抱 GNU/Linux 呢?請討論該公司的態度轉變,以及 Microsoft 如何利用 Linux 提高獲利? * [Compatible Time-Sharing System](https://en.wikipedia.org/wiki/Compatible_Time-Sharing_System) (簡稱 CTSS) 是史上第一套分時多工作業系統,請簡述其發展背景和關鍵特徵,又有哪些 CTSS 的特徵被 UNIX 或更晚出現的 Linux 所繼承? * Richard Stallman 建立 GNU 的訴求是 "GNU's Not Unix",儘管 Stallman 博士對於 AT&T 收取 UNIX 高額授權金感到不悅,但為何他採用 UNIX 作為 GNU/FSF 發展的藍圖呢?UNIX 有哪些特徵和文化,很直得延續呢? * 在 Linux 問世前,BSD 早已席捲作業系統的生態,但為何在 1990 年代後期,Linux 無論是聲勢和開發活躍度都超越 BSD 家族呢?請舉出量化數據和相關研究報告說明 * 儘管 Richard Stallman 成立 Free Software Foundation (FSF) 的初衷是打造 GNU 作業系統,但為何他從 gcc 編譯器著手?為了落實他心目中的 free software 生態,這樣的策略有何考量? * GNU Hurd 採用 CMU Mach 微核心作為基礎設計,該途徑與 Linux 核心大相徑庭,請說明這兩種核心設計手法的優劣 * 1991 年 Linux 核心推出 `v0.01`,原始程式碼約 1 萬行,到 1995 年的 `v1.2` 則有 25 萬行,並獲得 50 萬名使用者採納,在 1999 年的 `v2.2` 則有超過一千萬名使用者,往後的日子,Linux 更是如火如荼,請解釋何以 Linux 能吸引到開發者目光?又,Linux 獲得商業公司採納的考量是什麼? * Brian Behlendorf 歸納網際網路是 Apache 與 Linux 得以快速成長的重要因素,請說明自 1990 年代中期,Apache 和 Linux 一類的自由軟體/開放原始碼基礎建設,對整個資訊科技產業帶來什麼衝擊? * 20 世紀最龐大的開放原始碼專案是 Mozilla,儘管後者無法挽救 Netscape 公司的命運,但卻使後續的 Mozilla Foundation/Corporation 有穩健的基礎來發展 Firefox 網頁瀏覽器和相關的軟體。請從網頁瀏覽器的發展,討論自 1998 年以來,活躍和一度活躍發展的開放原始碼網頁瀏覽器實作,以及這些實作對於 W3C 一類的標準制定有何影響? * GCC 的發展過程中,一度出現以 Cygnus Solutions 為首的開發者建立 [EGCS project](https://en.wikipedia.org/wiki/GNU_Compiler_Collection#EGCS_fork) 分支,挑戰 FSF 的開發策略,但最終 EGCS 成為 GCC 發展主流方向,請說明時代背景,並援引〈[教堂與市集](http://crazyangelo.github.io/Cathedral-and-Bazaar/)〉的模型來解釋 ## 心得 Revolution OS 這部紀錄片,紀錄當時 GNU 的創立和創立原因, linux 的發展歷史,其中我認為值得讚賞的一點是因為有 GNU 的創辦人提出程式碼應該要可以任意修改或創作,不要拘束在公司的財產。因為有這個想法 linux 才能在現今的社會如此蓬勃的發展,如果當時因為自私而限制 linux 的自由開發,我們可能現在就沒有許多的作業系統選擇,雲端系統也不會如此蓬勃。因為 linux 使用 open source license ,大家都可以合力開發,只需要遵照 license ,這樣不會侷限只有特定的人才能開發,例如:windows 是 Microsoft 底下的資產。Linux 可以接受來自四面八方的意見,所以可以將現實生活的問題處理更完善,反之 windows 則是有許多 bug ,需要等待 Microsoft 進行修復。如同紀錄片 GNU 的創辦人說的這個社會需要分享,如果大家都自私保護自己所有的資產不願公開分享,這個社會會發展很遲鈍,這樣我們跟其他動物一樣,就保護自己的東西。中國有句話說得好,「三個臭皮匠勝過一個諸葛亮」,我們應該適度讓出一些特別的權益,讓大家一起享有,大家一起創作解決問題,增進社會的福祉。 ## 疑問 - 如果當時 UNIX 不收費,open source 的概念會被提出嗎?GNU 還會被創立嗎? Linus torvalds 所設計的 linux 核心會使用 open source license 嗎?會帶給社會什麼衝擊嗎? :::warning 在 1970 年代中期的 UNIX (正式說法是 research UNIX),在 AT&T 的默許 (和忽視) 下,可在大學院校用相當低廉的成本散佈,作為 UCB 校友的 Ken Thompson 甚至將 UNIX 帶回母校,間接促使 BSD 的發展。換個角度說,一開始 UNIX 近乎免費的方式擴散,但很快 AT&T 就嗅出箇中的商業價值,於是派出律師對許多大學和公司施壓,收取版權和專利費用 (當時著作權尚未涵蓋軟體,但專利費仍可收),也使得 Richard Stallman 在內的人士思考 UNIX 的生態 —— 這樣的劇本有沒有讓你很熟悉呢?一開始若沒對使用者的權力給予保障,日後很難說會不會有所變質,網際網路上的「免費」服務就是這樣的案例。 :notes: jserv :::