# 2021q1 Homework1 (culture) contributed by < `WayneLin1992` > ###### tags: `linux2021` ## 問題清單 - [ ] free software (自由軟體) 和 open source (開放原始碼) 兩者的理念有何落差?請以創始人的訴求來解讀,儘量引用第一手材料 * free software: Richard Stallman 「我支持自由軟體運動、而非開放原始碼運動的理由,在於我相信有比利益更重要的事情,像是與他人自由合作、組建社群。從我們的生命品質來說,能生活在優良的社會之中,是相當重要的,這就是我的觀點」`(影片時間: 00:48:30 → 00:48:52)` * open source:Bruce Perens 「我認為一些自由軟體圈的人對於商業化感到有些畏懼。呃,你知道的,成功必然能夠推遲反抗的到來。但我認為商業化是非常重要的,我們想要推廣這個軟體。我和 Richard Stallman 共事,而我不認為我和他有任何哲學理念上的差異,我是《開放原始碼定義》的作者,他則是自由軟體運動的發起人暨組織者。『他認為所有的軟體都必須是自由公開的;而我則認為自由軟體與非自由軟體可以同時存在。』這是我們唯一的差異。」`(影片時間: 00:48:48 → 00:49:51)` * 由此可以知道 free software (自由軟體)有比 open source (開放原始碼) 有更高的理想性,free software (自由軟體)強調所有的 software 應該都公開,open source (開放原始碼)則強調開發者可以選擇公開及不公開的部分。 :::danger 說好的「第一手材料」呢?無論是 FSF 或 OSI 都有相當可觀的文獻,你查閱了嗎? :notes: jserv ::: - [ ] 從最初的 Cygnus Solutions (史上首間透過 free software 實現盈利的公司), Red Hat (收購 Cygnus Solutions), 到 IBM (收購 Red Hat 並將其既有業務作為主軸),請解釋公司如何透過 free software 及 open source 來獲利?請列出相關的論文和報告 * Cygnus Solutions: 提供開發軟體高質量的技術支援(如:包裝 GCC 並出售)將 GCC 能夠支援各式硬體,當時 GCC 面對到 SUN 的編譯器挑戰,效能比 SUN 來的差, Cygnus 在這方面不斷努力,追上 SUN ,並在1987年,率先提供 C++ 編譯器也是第一個能在本地電腦執行的 C++ 編譯器。[Open Sources chapter 6](https://www.oreilly.com/library/view/open-sources/1565925823/ch07.html) * - [ ] 在 21 世紀初期,Microsoft 一度負面評價 GPL 與 Linux,但為何一旦該公司主推雲端業務後,即宣布擁抱 GNU/Linux 呢?請討論該公司的態度轉變,以及 Microsoft 如何利用 Linux 提高獲利? * 因為在雲端方面 Apache 上執行 Linux 的表現比 Windows 的表現來的有效率順暢很多,使得雲端業務公司紛紛轉向投入 Linux 懷抱, Linux 使用 Monolithic kernel 設計,這也是為什麼 Linus Torvalds 覺得這就是比當時 Windows 成功的原因。 :::danger 「使用 Monolithic kernel 設計,這也是為什麼 Linus Torvalds 覺得這就是比當時 Windows 成功的原因」這樣的因果關係,不足以說明 Microsoft 在技術投資的變化,你需要更多論證。 :notes: jserv ::: - [ ] Compatible Time-Sharing System (簡稱 CTSS) 是史上第一套分時多工作業系統,請簡述其發展背景和關鍵特徵,又有哪些 CTSS 的特徵被 UNIX 或更晚出現的 Linux 所繼承? * CTSS 的分時多工系統,使用者通訊 email ,文字編輯器 vim , password 登入。 - [ ] Richard Stallman 建立 GNU 的訴求是 “GNU’s Not Unix”,儘管 Stallman 博士對於 AT&T 收取 UNIX 高額授權金感到不悅,但為何他採用 UNIX 作為 GNU/FSF 發展的藍圖呢?UNIX 有哪些特徵和文化,很直得延續呢? 在 Linux 問世前,BSD 早已席捲作業系統的生態,但為何在 1990 年代後期,Linux 無論是聲勢和開發活躍度都超越 BSD 家族呢?請舉出量化數據和相關研究報告說明 * GNU 原本想寫出一個沒有著作權問題的 UNIX ,但最後因為在核心 (GNU Hurd) 的發展並不是很順利,而 Linux 又獲得巨大的成功,使得團隊轉向開發 GNU/Linux。 * GNU Hurd 繼承了 UNIX 的 microkernel 的設計 * BSD 因為被 AT&T 認為侵權告上法院,使得 BSD 聲勢下降 :::danger Research UNIX 並非採用 microkernel 的設計,上方描述有誤,請查閱 CMU Hach 實際影響的作業系統核心。 僅因為「告上法院」,不足以說明 BSD 受波及的程度。歷年有許多擁護 Linux 核心的公司 (如 IBM) 都曾被提告,而且官司曠日費時,但 Linux 生態圈仍相當活躍 :notes: jserv ::: - [ ] 儘管 Richard Stallman 成立 Free Software Foundation (FSF) 的初衷是打造 GNU 作業系統,但為何他從 gcc 編譯器著手?為了落實他心目中的 free software 生態,這樣的策略有何考量? * 因為 gcc 是其中的核心,只要 gcc 搞定,就能在使用以前 UNIX 的各種軟體,達到 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 獲得商業公司採納的考量是什麼? * Linux 及 Windows NT 性能比較 * RAM: Windows NT 需要 12MB Linux 只需要 2MB,假如你想跑得更順暢 NT 需要額外 70MB Linux 只需要 15MB。 * 檔案管理: NT 有 win16 的支持 , Linux 也有 x/window 的支持。 * 技術支援: Linux 因為 open source 的關係,提供方便第三方自行解決問題,而 Windows NT 則由 Microsoft 負責。 * 成本:  * 結論: 綜觀商業公司考慮使用 Linux 是出於成本因素,因為其他方面, Linux 及 Windows NT 都各有優劣。 [Linux vs. Windows NT and OS/2](https://www.linuxjournal.com/article/2734) - [ ] Brian Behlendorf 歸納網際網路是 Apache 與 Linux 得以快速成長的重要因素,請說明自 1990 年代中期,Apache 和 Linux 一類的自由軟體/開放原始碼基礎建設,對整個資訊科技產業帶來什麼衝擊? - [ ] 20 世紀最龐大的開放原始碼專案是 Mozilla,儘管後者無法挽救 Netscape 公司的命運,但卻使後續的 Mozilla Foundation/Corporation 有穩健的基礎來發展 Firefox 網頁瀏覽器和相關的軟體。請從網頁瀏覽器的發展,討論自 1998 年以來,活躍和一度活躍發展的開放原始碼網頁瀏覽器實作,以及這些實作對於 W3C 一類的標準制定有何影響? - [ ] GCC 的發展過程中,一度出現以 Cygnus Solutions 為首的開發者建立 EGCS project 分支,挑戰 FSF 的開發策略,但最終 EGCS 成為 GCC 發展主流方向,請說明時代背景,並援引〈教堂與市集〉的模型來解釋 * 在 GCC 1.x 版本後,變得相當穩定,而且 GCC 對於開發嚴格控制(如:教堂),無法適應當時各類的需求,使得 EGCS (如:市場)開始透過快速地疊帶,使他在特定領域優化,而且又有其他大公司紛紛加入(如: intel 對編譯器在 x86 優化),最後 GCC2.x 開始已 EGCS 為主。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up