# 2021q1 Homework1 (culture)
contributed by < `jhan1998` >
## :question: 問題清單
### free software (自由軟體) 和 open source (開放原始碼) 兩者的理念有何落差?
#### definition
* free software:
1. The freedom to run the program as you wish, for any purpose
2. The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
3. The freedom to redistribute copies so you can help others.
4. The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
* open source:
1. Free Redistribution
2. Source Code
3. Derived Works
4. Integrity of The Author's Source Code
5. No Discrimination Against Persons or Groups
6. No Discrimination Against Fields of Endeavor
7. Distribution of License
8. License Must Not Be Specific to a Product
9. License Must Not Restrict Other Software
10. License Must Be Technology-Neutral
#### different
仔細研讀下來我認為兩者最大的差異在於對 ==自由== 的講述上, open source 賦予的自由是在原始碼上面, free sofware 是賦予的自由是在人身上。 free software 在我看來是更加嚴謹的,就算被賦予了原始碼的自由,人們使用軟體的自由如果不受尊重的話,不就違背了 free software 的宗旨了嗎?總結來看 open source 比較像是引用一個開放的方式使開發更加順利,而 free software 就是把自由的精神作為道德標準,重點放在尊重使用者的自由上,感覺層次更高一些。
### 從最初的 Cygnus Solutions (史上首間透過 free software 實現盈利的公司), Red Hat (收購 Cygnus Solutions), 到 IBM (收購 Red Hat 並將其既有業務作為主軸),請解釋公司如何透過 free software 及 open source 來獲利?請列出相關的論文和報告
> 自由軟體的優勢之一,就是擁有各種提供技術支援的自由市場,如果你在工作上使用某個軟體需要良好的技術支援時,就可以找人來幫助你,你可以找專門提供服務的公司,他們勢必要給你良好的服務,不然你會去找別人。
> 所以我原來的想法是,如果能建立一種模式,提供 2 到 4 次的技術支援,並且將性能掌控在相當於一個內部工程師的能力範圍內,我們就能節省 1/2 到 1/4 的成本,無論成效如何,都能讓人們掏腰包
從 [revolution os](https://hackmd.io/@sysprog/revolution-os-note#Richard-Stallman-%E8%AC%9B%E8%BF%B0-GNU-%E8%A8%88%E7%95%AB%E7%B7%A3%E8%B5%B7) 共筆中,我們可以知道開放原始碼軟體的盈利模式主要以後期服務為主,重點不在前期出售軟體獲利,目的藉此打開市場,在軟體項目的後續的檢修升級過程盈利。
從 [Red Hat just proved you can make billions of dollars with open source
](https://www.cio.com/article/3047498/red-hat-just-proved-you-can-make-billions-of-dollars-with-open-source.html) 這篇新聞稿我們也可以知道, Red Hat 的獲利也是來自訂閱以及支援服務。
> Red Hat has become the icon for other companies to follow: they established that you can make money from open source. And they do it the old fashioned way, selling subscription and support.
### 在 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 生態,這樣的策略有何考量?
### FSF 所提倡的 "Copyleft" 概念,和 "Copyright" 是否衝突?在實務上如何達成?free software 和 open source 的授權條款是否符合著作權精神呢?
### 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/)〉的模型來解釋