--- title: 2021 年春季 Linux 核心設計課程作業 —— culture image: https://i.imgur.com/robmeiQ.png description: 理解 GNU/Linux 發展的背景和黑客文化 --- # J03: culture ###### tags: `linux2021` > 主講人: [jserv](http://wiki.csie.ncku.edu.tw/User/jserv) / 課程討論區: [2021 年系統軟體課程](https://www.facebook.com/groups/system.software2021/) :mega: 返回「[Linux 核心設計](http://wiki.csie.ncku.edu.tw/linux/schedule)」課程進度表 ==[解說錄影](https://youtu.be/a8GwXtrUc6Q?t=9621)== ## 作業目標 1. 探究科技演化的過程中,自由軟體和開放原始碼技術扮演的角色 2. 只要接觸 GNU/Linux,就免不了要接觸充斥各式歷史的術語和「慣例」,學員應該嘗試調整心境,才能更融入 Linux 所繼承的特質 ## :question: 問題清單 * free software (自由軟體) 和 open source (開放原始碼) 兩者的理念有何落差?請以創始人的訴求來解讀,儘量引用第一手材料 * 從最初的 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 生態,這樣的策略有何考量? * 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/)〉的模型來解釋 ## :penguin: 作業要求 * 閱讀以下指定報告和材料: - [從 Revolution OS 看作業系統生態變化](https://hackmd.io/@sysprog/revolution-os-note): 非常珍貴的紀錄片,從早期的黑客挖掘的第一手材料 - 《[The Unix System: Making Computers Easier to Use](https://www.youtube.com/watch?v=XvDZLjaCJuw)》: 來自 AT&T 早期的 UNIX 介紹影片,在 35+ 年前就達到的技術水平 * 編輯「[作業區](https://hackmd.io/@sysprog/linux2021-homework1)」,嘗試回答上方「問題清單」裡頭的問題,儘量引用第一手材料和權威文獻來解說 * 針對上述材料所提到的所有影片、影片解說和對應資料,紀錄自己的疑惑和心得 - 若發現 [從 Revolution OS 看作業系統生態變化](https://hackmd.io/@sysprog/revolution-os-note)共筆中存在失效的超連結 (dead links),請回報和嘗試修正 - 不能只是「摘要」,必須詳述自己研讀上述材料的啟發並且「充分提問」(沒有笨問題,同學的提問彙整後,會成為後續課程的參考) * 截止日期: * Mar 7, 2021 (含) 之前