---
title: 從 _Revolution OS_ 看作業系統生態變化
image: https://i.imgur.com/LUTselV.jpg
description: 這部紀錄片《_Revolution OS_》在 21 世紀的第一年發布,是刻畫自由軟體和開發原始碼的經典,為了教學需求,我們透過共筆,選錄部份內容作資訊更新和補充
tags: sysprog
---
# 從 _Revolution OS_ 看作業系統生態變化
> 資料整理: [jserv](https://wiki.csie.ncku.edu.tw/User/jserv)
![Revolution OS](https://hackmd.io/_uploads/rJvsgS8tp.png)
## 相關影片資訊
- 影評: [IMdb](https://www.imdb.com/title/tt0308808/)
- 影片來源 (YouTube)
* [英文字幕](https://youtu.be/GsHh2wfy_-4)
* [修訂過的繁體中文字幕](https://youtu.be/vWwvh3036Fw)
- 參考資訊
* [Wikipedia: Revolution OS](https://en.wikipedia.org/wiki/Revolution_OS)
* [UNIX 簡史](http://old.linux.vbird.org/linux_basic/0320bash/csh/preface.html), 網路農夫
* [Unix Diagram](http://www.unix-diagram.org/)
## 說明
2001 年,[J. T. S. Moore](https://en.wikipedia.org/wiki/J._T._S._Moore) 以自由軟體和開放原始碼軟體發展為主題,導演相當可貴的紀錄片《==_Revolution OS_==》,訪談若干先鋒者,是理解黑客 (hacker)、 GNU 計畫、自由軟體基金會 (FSF)、Linux 核心 (kernel)、開放原始碼 (open source) 和自由軟體 (free software) 基於不同理念各自發展、Netscape 宣佈 Mozilla 開放原始碼專案、基於 Apache 和一系列開放原始碼技術的公司、在 NASDAQ 上市等等歷程的第一手資訊。
:::info
對照閱讀趨勢科技官方部落格的文章〈[認識 Hacker, Cracker, Hacktivist, Cybercriminal, White Hat, Black Hat, Grey Hat](https://blog.trendmicro.com.tw/?p=1857)〉可知,影片裡頭指最前面的 hacker,而後者在台灣早期翻譯為「駭客」,在中國及港澳地區則譯為「黑客」。
Hacker 一詞若採音譯「駭客」可能令人誤解,真實的 hacker 主要是指技術高超的電腦軟體開發者,而「劊客」(Cracker) 才是專指對電腦系統及網路進行惡意破壞者,本文採用「黑客」一詞,避免非必要的誤會。除了精通程式設計、作業系統內部運作原理的人可被視作黑客,對硬體裝置做創新的工程人員通常也視作黑客。
:::
這部紀錄片在 21 世紀的第一年發布,是刻畫自由軟體和開放原始碼的經典,為了教學需求,我們試圖透過共筆,選錄部份內容作資訊更新和補充。
:::warning
共筆內容會以《Revolution OS》影片時間軸切割為特定的子項,然後標定時間點並補充對應資訊。
:::
為了理解時代背景,可搭配觀賞以下影片:
- [ ] 《[Pirates of Silicon Valley](https://en.wikipedia.org/wiki/Pirates_of_Silicon_Valley)》(1999)
* [Pirates of Silicon Valley Documentary](https://www.youtube.com/watch?v=GqFYsvxHZOs)
{%youtube GqFYsvxHZOs%}
* 1980 年代初期到 1990 年代末期,個人電腦領域中軟硬體系統的消長,有助於理解自由軟體發展過程中,所面對的時代巨變
* 反托拉斯法案的背景
- [ ] 《[Linux: A Short Documentary](https://www.youtube.com/watch?v=aurDHyL7bTA)》
* 透過手繪,簡單明瞭地說明相關歷史演變和術語
{%youtube aurDHyL7bTA %}
- [ ] 《[The Code](https://topdocumentaryfilms.com/the-code/)》(2001)
* 客觀且進階的題材,如 Torvalds 家庭的採訪,Linus Torvalds 曾經開發 Linux 核心的地方,講解開放原始碼社群的開發過程,並論述其哲學與訴求
* 英文字幕版:[The Code: Story of Linux documentary](https://youtu.be/zPt_e9Cdk08)
{%youtube zPt_e9Cdk08 %}
* [2015 年春季學生報告](https://www.dropbox.com/scl/fi/06efeehf8jyuquu9lynr2/C2.paper?rlkey=msqzof8if5i0a494hic1rvdun)
資訊補充方向:
* [The GNU Manifesto Turns Thirty](https://www.newyorker.com/business/currency/the-gnu-manifesto-turns-thirty)
* 影響 Linux 核心的 MINIX 已超過 30 年,已退休的 Andrew S. Tanenbaum 教授撰文〈[Lessons Learned from 30 Years of MINIX](https://cacm.acm.org/magazines/2016/3/198874-lessons-learned-from-30-years-of-minix/fulltext)〉
* 作為技術創新者,BSD 在本紀錄片只零星出現四次 (談及 Apache 的成功歸於開發者社群, GNU 計畫源始, 開放原始碼授權, 對 Microsoft 提出反托拉斯訴訟),幾乎一面倒向 Linux,略顯偏頗
* 從 TCP/IP 的廣泛化、Web 技術背後的伺服器成長,都涉及作業系統,甚至主導近代作業系統的發展方向,特別是效能、資訊安全、檔案系統,還有通訊協定
* 增加圖片解說,像是:
- [《Revolution OS》與《The Code》心得(上):自由軟體 和 開源軟體 的歷史與展望](https://mropengate.blogspot.tw/2016/02/revolution-osthe-code.html)
- [《Revolution OS》與《The Code》心得(下):自由軟體與麥卡錫主義、駭客與女性主義](https://mropengate.blogspot.tw/2016/03/revolution-osthe-code.html)
* IPO 的故事,如 Red Hat 股價雖然沒有高峰期的高於 120 美元,但至 2012 年初仍穩站 40 美元以上,較招股價 14 美元高許多 (不過上市轉眼便升到 40 美元以上)
- 2018 年 10 月底,IBM 宣布以每股 190 美元購買 Red Hat 的所有股票,IBM 表示 Red Hat 將成為 IBM 混合雲部門的一部份,且原 Red Hat 執行長 Jim Whitehurst 將加入 IBM 的高級管理團隊並直接向首席執行長 Ginni Rometty 負責;
- 此次收購創下 IBM 規模最大的收購紀錄,也是截至 2018 年美國科技史上第三大交易,Red Hat 本益比高達 51 倍;
- 2020 年,[IBM 公司宣布](https://arstechnica.com/information-technology/2020/10/ibm-to-split-into-two-companies-by-the-end-of-2021/),計畫將公司一分為二,原本 IT 基礎設施服務部門擬分拆為新公司 NewCo,預計在 2021 年底前完成分拆,IBM 則把重心放在高獲利的雲端運算業務 —— IBM 無可避免地變成 Red Hat。
* 對作業系統發展史做承先啟後的探討,特別是過去帶有失敗色彩的專案,為何這些專案儘管因為各種原因不成為主流選擇,但主流的系統往往就是避開之前的問題、從經典中淬煉出精華並發揚光大,才得以開創新的生態。
* 短文〈[The 10 Worst Operating Systems of All Time](https://www.pcworld.com/article/528411/worst_operating_system.html)〉提及以下作業系統:
- OS/360 (1964 年)
- ITS (1960 年代末期)
- GNU Hurd (始於 1983 年,至今仍在開發,過了 30 年才展開[對音效裝置的支援](https://tech.slashdot.org/story/16/01/31/1612239/gnu-hurd-begins-supporting-sound-still-working-on-64-bit-usb-support))
- Windows 1.01 (1985 年)
- MS-DOS 4.0 (1988 年)
- SCO Open Desktop (1989 年)
- JavaOS (1996 年)
- Windows Me (2000 年)
- Lindows (2001 年)
- Linux XP Desktop (2006 年), Windows Vista (2006 年)
---
## 開場: [Eric S. Raymond](https://en.wikipedia.org/wiki/Eric_S._Raymond)
- [ ] 影片時間: [00:00:09](https://youtu.be/vWwvh3036Fw?t=9) $\to$ 00:00:49
- 摘錄:「那時我去參加 Agenda 2000 資訊會議,有個叫 Craig Mundie 的傢伙,他是 Microsoft 的大頭目之一,好像是消費產品部門副總裁之類的,其實我沒正式見過他,我是無意中坐電梯遇到他的。
- 我看了一眼他的工作證說:
> 『哦,你在 Microsoft 工作啊』
- 他回看了我一眼說:
> 『是啊,你在哪高就?』
- 我覺得他的回答有點像是在哄小孩似的,你知道的,一個西裝革履的傢伙看著一個衣衫襤褸的黑客,於是我狠狠地瞪著他說:
> 『我是你最可怕的噩夢!』」
[Craig Mundie](https://en.wikipedia.org/wiki/Craig_Mundie) 是 Microsoft 前任 Chief Research and Strategy Officer
- 在拍攝手法上屬於破題的性質,直接點明在影片主軸之一的自由軟體發展歷史這件事上,Microsoft 所扮演的所抱持的不認同以及最後難以抵擋勢潮,逐漸妥協的結局
- [Agenda 2000](https://en.wikipedia.org/wiki/Agenda_2000) 在歐洲舉行,以共同農業/區域政策 + 建立新金融架構為目標的一場會議
2001 年 5 月 3 日,Craig Mundie 先在 NYU (紐約大學) 演講時提及 free software,隨後 Richard Stallman 在當月 25 日做出回應演說,這事件被紀錄在 GNU 網站: [Richard Stallman Delivers Speech at NYU, Countering Mundie’s Attack on Free Software](https://www.gnu.org/press/2001-05-25-NYU.html)
Microsoft 首次探討 GPL 議題,是該公司 [Jim Allchin](https://en.wikipedia.org/wiki/Jim_Allchin) (當時領導 Microsoft 的 Platforms division) 表示,GPL 和傳統美國精神牴觸,之後 Free Software Foundation 做出澄清: [The GNU GPL and the American Way](https://www.gnu.org/philosophy/gpl-american-way.html)
* 2001 年即是紀錄片拍攝年份,既然 Microsoft 頻頻評價 GPL 與 Linux,所以用這段作為紀錄片開頭,寓意深遠
關於 Eric S. Raymond (慣用代稱: esr)
- 著名文章〈[提問的智慧](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way)〉及〈[如何成為一個黑客](https://translations.readthedocs.org/en/latest/hacker_howto.html)〉的原文便是其大作
* [How To Ask Questions The Smart Way](http://www.catb.org/~esr/faqs/smart-questions.html)
* [How To Become A Hacker](http://www.catb.org/esr/faqs/hacker-howto.html)
"I'm your worst nightmare" 台詞的出處
- 最早出現於一部美國喜劇影集《[48 Hrs](https://www.imdb.com/title/tt0083511/)》(1982 年)
- 蝙蝠俠卡通影集 (1992 年) 內也有[同一句台詞](https://www.youtube.com/watch?v=xDP8zru0FPE)
{%youtube xDP8zru0FPE %}
## [Linus Torvalds](https://en.wikipedia.org/wiki/Linus_Torvalds) 解釋作業系統原理
- [ ] 影片時間: [00:02:29](https://youtu.be/vWwvh3036Fw?t=149) $\to$ 00:03:09
* 摘錄:「作業系統就是你永遠不會看到的東西,因為沒有人直接使用作業系統,人們使用的是程式。在他們的電腦上,作業系統唯一的使命就是,幫助其它程式執行,所以作業系統從未獨立運行,而僅是默默等待程式,來向它要求現有資源、某個存在硬碟上的檔案或要求其它程式將這個程式連接到外面去,然後作業系統再一步步地,試著讓人們寫程式容易一些」
- 搭配觀賞影片:《[The Unix System: Making Computers Easier to Use](https://www.youtube.com/watch?v=XvDZLjaCJuw)》(1982)
> 來自 AT&T 的 23 分鐘短片,理解 UNIX 和早期作業系統的第一手資訊
{%youtube XvDZLjaCJuw %}
## [Bruce Perens](https://en.wikipedia.org/wiki/Bruce_Perens) 說明 Open Source Definition
- [ ] 影片時間: [00:03:12](https://youtu.be/vWwvh3036Fw?t=191) $\to$ 00:03:44
* 摘錄:「開放原始碼是讓人們合作開發軟體時,能免受智慧財產權的困擾,不用每次購買一小部份軟體,就得去協商合約,不需要一幫子律師參與。基本上,我們只是想讓軟體能執行,同時希望有人能出力修補這些軟體之類。所以我們犧牲部份的智慧財產權,讓全世界都能使用這些軟體」
- [ ] 影片時間: [00:49:59](https://youtu.be/vWwvh3036Fw?t=2999) $\to$ 00:50:36
* 摘錄: 「我們提出了一份叫作〈開放原始碼定義〉的文件,來自於 Debian 自由軟體準則,最初的寫作人是 Bruce Perens」
* 摘錄: 「我起草原始稿件,跟 Debian 的開發者們討論一個月。Debian 是 Linux 的發行套件 (distribution) 之一。然後使它成為他們的計畫方針。Eric Raymond 和我決定要重新正名我們為 Debian 所寫的開放原始碼定義文件,其中解釋開放原始碼的軟體,賦予使用者 9 項權利,這就是開放原始碼定義的內容」
- [The Open Source Definition](https://opensource.org/osd)
- [Debian Free Software Guidelines (DFSG)](https://wiki.debian.org/DebianFreeSoftwareGuidelines)
在 1998 年正式定義 "open source" (而非 "free software") 這個詞彙前,Ian Murdock 在 1993 年 8 月用當時女友 Debra 和自己的名字,各取三個字母,建立 Debian 這個 free software & open source 專案,不僅是技術的領先者,也親自示範相關的商業模式。
> 註: Debian 計畫的發起人 [Ian Murdock](https://en.wikipedia.org/wiki/Ian_Murdock) 在 2015 年底過世
> [Debian 的追思頁面](https://bits.debian.org/2015/12/mourning-ian-murdock.html)
Ubuntu 創辦人 [Mark Shuttleworth](https://en.wikipedia.org/wiki/Mark_Shuttleworth) 過去是 Debian 某些套件的維護者,Debian 事實上是經過不穩定 (unstable,也稱為 sid) 和實驗 (experimental) 分支,才有穩定 (stable) 版本 ,而 Ubuntu Linux 建構在 Debian 的基礎上,將最新的技術帶給使用者,並承諾每年更新兩次主要發行版本。
## [Richard Stallman](https://en.wikipedia.org/wiki/Richard_Stallman) 講述 GNU 計畫緣起
- [ ] 影片時間: [00:04:20](https://youtu.be/vWwvh3036Fw?t=260) $\to$ 00:05:05
* 摘錄:「我在 1971 年加入 MIT (麻省理工學院) 的人工智慧實驗室也加入...這活躍的黑客社群。人們熱愛編寫程式、熱愛探索電腦的極限,他們還發展了一個完整的作業系統,全都在那裡完成。我成為他們的一員,致力於改良作業系統、增加新的功能,我熱愛這份工作,我們全都熱愛這份工作,所以才做得去。我們把我們的系統稱之為『不相容的分時系統』(==I==ncompatible ==T==imesharing ==S==ystem),這名字反映了黑客的玩笑風格,黑客是一群貪玩的聰明人」
- MIT 人工智慧實驗室 (Artificial Intelligence Laboratory) 在 2003 年和電腦科學合併稱為 [CSAIL (MIT Computer Science and Artificial Intelligence Laboratory)](https://en.wikipedia.org/wiki/MIT_Artificial_Intelligence_Laboratory)
- 1960 年代中期啟動 [Project MAC](https://multicians.org/project-mac.html) (與阿波羅登月計畫平行,由 DARPA 贊助的大型計畫) 的 [Multics](https://en.wikipedia.org/wiki/Multics) 專案,但 AI 實驗室成員反對 Multics 的開發方向,於是在 1960 年代末期啟動 ITS 專案。ITS 的專案全銜為 [Incompatible Timesharing System](https://en.wikipedia.org/wiki/Incompatible_Timesharing_System) 是由 [Tom Knight](https://en.wikipedia.org/wiki/Tom_Knight_%28scientist%29) 提出,作為 MIT 最早分時作業系統 (用於登月計畫中的多人多工作業系統) —— [Compatible Time-Sharing System](https://en.wikipedia.org/wiki/Compatible_Time-Sharing_System) —— 在命名上的戲謔
- Project MAC 及阿波羅計畫彼此的關聯,可見〈[從登月計劃看電腦軟體發展](https://hackmd.io/@sysprog/apollo-guidance-computer)〉
- Emacs 最早就是發展於 ITS 作業系統之上,包含 LISP 和 Scheme (LISP 的「方言」)
- ITS 的後續更新: [PDP-10/its](https://github.com/PDP-10/its)
* MIT 人工智慧實驗室的一項重要成果是 [Lisp machine](https://en.wikipedia.org/wiki/Lisp_machine)。後來,實驗室中的兩幫科學家分別創業,創立 Lisp Machine Inc.,也即是 LMI,另一間是 Symbolic 公司。這兩家公司的主要業務都是基於 Lisp Machine ,而且和 MIT 也簽了約,MIT 授權他們使用 Lisp Machine,而兩家對 Lisp Machine 做的改進也授權 MIT 使用,互惠互利
- 不料後來 Symbolic 公司有意另起爐灶,於是仿照 Lisp Machine 的功能自己重新研發一個仿製品,日後再開發的軟體產品就是基於這個仿製品系統而不是 MIT 的 Lisp Machine,於是 Symbolics 不再與 MIT 和 LMI 分享開發成果。此舉激怒 Richard Stallman,他決定用自身的才華,抵抗 Symbolic 這個不遵守知識共享原則的公司,於是他就盯著 Symbolic 的新產品推出情況,只要 Symbolic 一發布新產品,他就馬上在動手在 Lisp Machine 上做一個功能一樣的送給 MIT 和 LMI 使用
- 一般 Symbolic 推出的新軟體,Richard Stallman 自己一個人花個幾天就能做出一個功能一模一樣的版本,並且分享給大眾。他的這種方式和工作效率曾經讓 Symbolic 公司一度非常惱火。
* Emacs 被採用為文字編輯器之前,ITS 慣用 TECO 編輯器,而 Emacs 就是用 TECO 撰寫的
- ITS 的檔名長度有 6 個以 6 位元編碼字元的限制,這是為了填入 PDP-10 word 的 [36-bit 長度](https://en.wikipedia.org/wiki/36-bit_computing)。要注意,早期的資訊系統中,1 byte (保存字元的單位) 並非總是等於 8 bits 長度
- [Experimental Archaeology In Digital Computing: Hacking 36 Bits At A Time](https://user.it.uu.se/~victor/nuccc05/nuccc05.html)
- [Phil’s PDP10](http://www.ultimate.com/phil/pdp10/)
- [TENEX / TOP-20](https://en.wikipedia.org/wiki/TOPS-20) (作業系統),來自 [Bolt, Beranek and Newman](https://en.wikipedia.org/wiki/Bolt,_Beranek_and_Newman) (BBN)
* 稍後介紹的 Bill Joy 和 BBN 公司多次交手
- 用模擬器運作 ITS: [Some notes on setting up an ITS system](https://its.victor.se/wiki/)
- Richard Stallman 在 1986 年於瑞典演講就提到 ITS 的運作方式,出處為 [Stocholm Sweden, 30 October 1986](https://www.gnu.org/philosophy/stallman-kth.html):
> "_Of course, no file is protected on our system. What’s the problem? You got your answer sooner; why are you unhappy? Of course we read each other’s mail so we can find people like you and help them."_
:::info
Incompatible Timesharing System 已在 1990 年由 MIT 棄置,但一群黑客們嘗試維護 ITS,其原始程式碼可在 GitHub [PDP-10/its](https://github.com/PDP-10/its) 取得。
快速體驗 ITS 作業系統
```shell
$ wget https://victor.se/bjorn/its/supdup-jta25.jar
$ java -jar supdup-jta25.jar
```
> 在 File 選單點選 Connect,等待對話框並輸入 `up.update.uu.se`
![its](https://hackmd.io/_uploads/SJTIuX8Ka.png)
BBN 公司的 TENEX 原始程式碼及文件可在 GitHub [PDP-10/tenex](https://github.com/PDP-10/tenex) 瀏覽
:::
- [ ] 影片時間: 00:09:57 $\to$ 00:10:43
* 摘錄:「因為在 1980 年代初期,得到一台時髦的電腦後,你還得去弄一套有授權的作業系統。那些系統開發者不願分享,反而還想控制使用者、設限支配使用者。因此,要得到系統,你得先簽署協定,保證不分享給其他人使用。對我來說,這是一份罪惡條款,等於要我背叛全世界,強行把我與分工合作的世界分離。有人這樣對待過我們,拒絕與我們分享,因為他們簽署合約,於是實驗室元氣大傷,使我們無法像之前一樣作出有用的東西」
- 需要取得所費不貲的作業系統授權案例:AT&T UNIX
- Richard Stallman 之前舉過在 AI 實驗室使用 Xerox 公司出品印表機的案例: [Free as in Freedom: Richard Stallman's Crusade for Free Software](https://www.oreilly.com/openbook/freedom/ch01.html)
- 1970 年代的雷射印表機大得像一輛轎車,所以 Xerox 送來一台 Xerox Graphic Printer 給 AI 實驗室時,人們發現僅有 AI 實驗室的九樓機房裡,才找得到位置放它。實驗室的人把它連上 AI 實驗室自己開發的區域網路,於是在大樓裡所有的人只要在各自的電腦上打些指令,就可以叫那台巨無霸印表機幫你服務。
- 它的列印速度令人滿意,只是有時紙印光或夾紙,一大堆人的列印工作就全部停頓。有時有的人要印上一大堆東西,而有些人只要印一兩張時,不得不爬上九樓,把印表機的控制改一下,使它先印一兩張。於是一天就這樣爬上爬下,沒有人可忍受。
- 幸好印表機送來時,Xerox 把裝置驅動程式的原始程式碼也隨機附上,實驗室的人就把控制印表機的驅動程式等功能作了些修改,於是大家都省了不少麻煩和汗水。Richard Stallman 回憶地說:
> 「把你要的列印做完之後,它還會通知你; 如果夾紙或你想問些什麼列印上的事情,它也會讓你知道。」
- 然而到 1978 年,Xerox 再送來一台名為 Dover 的新機給 AI 實驗室,但不願再附上原始程式碼。Stallman 說:
> 「因此我們沒辦法修改 Dover 的程式,於是整個大樓的列印效率又回到從前,Dover 卡紙或把紙印光,你在下面也不知道。」
- [ ] 影片時間: 00:11:00 $\to$ 00:11:45
* 摘錄:「我在尋找其它替代品時,突然想到,我就是作業系統開發者,以作者的身份,鼓勵大家共享,對每個人說:
> 『來用這個吧,這是來自新世界的產物』
這樣不只我可以繼續使用電腦,而無需背叛他人,還能解救別人,所有人都能跳脫出道德困境。於是我明白,這就是我的畢生事業。實際上,我是在 1984 年 1 月開始這項計畫,那時我辭掉在 MIT 的工作,開始研發 GNU 作業系統」
- "gnu" 在英文中的意思就是牛頭羚 (產於非洲南部),g 字母是不發音的。但若指作業系統的 GNU 的話,`g` 字母便要發音(也因此,早期中譯文件稱 GNU 為「革奴」)。
- 這是 Stallman 在 GNU Manifesto 的說法,其原文如下:
> To avoid horrible confusion, please pronounce the `G` in the word `GNU` when it is the name of this project.
- GNU 當初的策略就是先發展 UNIX 現有的程式,並且由於確立 GNU 會是個與 UNIX 相容的作業系統,而 UNIX 下的標準介面都已經算完備,只要照著標準完成的程式。
- GNU 前期先發展 Emacs、gcc 等工具,其中 gcc 更使得 GNU 計畫能不依靠 non-free software (指的是不具備自由軟體授權精神的軟體,不是講價格) 來產生/編譯自己。
- 將來 GNU 的作業系統核心 (kernel) 完成後,即可延用之前開發的 UNIX 的公用程式。
* "kernel" 一詞在英文中的意思就是「核心」,就如心臟之於個人般,kernel 掌管一個作業系統的重大關鍵,諸如,檔案系統、行程 (process) 與執行緒(thread) 的管理、行程間通訊 (Inter-Process Communication, IPC)、同步控制 (synchronization)、輸出及輸入設備的 Driver,甚至,還有 GUI (如 Windows NT 為增進顯示的效能,就將 GUI 模組納入核心)、網路通訊等等
- 關於用自由軟體的 gcc 編譯 gcc 自身的行為,稱為 self-host,是編譯器和虛擬機器發展的重要手法,可參閱 [你所不知道的 C 語言:編譯器和最佳化原理篇](https://hackmd.io/@sysprog/Hy72937Me)
* 1984 年 1 月,Richard Stallman 為了展開他的理想而決心離開已待十幾年的 MIT AI 實驗室。當 Richard Stallman 向他老闆 Patrick Winston 辭職時,後者試圖挽留 Richard Stallman 並說:
> 「你還是要辭職?」
* Richard Stallman 不為所動地回答:
> 「是」
* Patrick Winston 顯然得到預料中的答案,於是接著反問:
> 「你想要保留你的鑰匙嗎?」
* 於是 Richard Stallman 就從此開始專心地「失業」在他的老東家:一個人窩在他原來的舊辦公室中,規劃著如何開始他的 GNU 計劃
- [ ] 影片時間: 00:23:01 $\to$ 00:23:22
* 摘錄:「到了 1990 年,GNU 工具套件開發完成,被廣泛地運用在各種版本的 UNIX 上,但依然沒有免費、自由流通的核心。那時候我們正要開始寫核心,才剛開工不久,Linus Torvalds 就是在那時加入的」
- GNU 計畫長久以來欠缺真正能用的作業系統核心,萬事具備只欠東風,這也難怪 Linux 核心一出來就轟動,因為 Linux 填補這個重要的缺口,而 GNU Hurd 作為官方欽定的核心,卻發展遲滯。
對照看同時期作業系統的授權金,儘管價格落差大,但幾乎都要簽署程式碼協定,保證不將軟體 (含`原始程式碼`) 分享給其他人
- 各廠商的授權金
* [AT&T](https://en.wikipedia.org/wiki/AT%26T_Unix_PC) 的 Unix: 999 美元(高額)
* MS-DOS
* 2 到 5 美元不等 (1981-1982 年)
* 25 到 28 美元 (1988 年)
:::info
這是 OEM (Original Equipment Manufacturer) 版本價格,由於台灣和全球各地硬體廠商投入,一窩蜂開發出 IBM-PC 相容機種,Microsoft 定價策略成功地打入低價電腦市場,後者從而奠定個人電腦軟體供應商霸主的地位。
[ [source](https://www.theregister.co.uk/1999/01/13/ms_pricing_strategy_exposed_cheap/) ]
:::
## UNIX 和 BSD 後續的發展
:::info
- 對應的共筆: [4BSD 與 AT&T 官司訴訟的影響](https://www.dropbox.com/scl/fi/u81dcfzoairnf8ixwiz9l/B0.paper?rlkey=9xbnyo1cxfavpiss3x1q5q54a&dl=0),補充 Revolution OS 紀錄片對於 BSD 描述的不足。涵蓋 BSD Unix 的緣由、發展歷程,以及官司的影響
:::
- [ ] 影片時間: 00:12:28 $\to$ 00:12:50
* 摘錄:「加州柏克萊大學的電腦科學家們也在研發自己的免費作業系統,被稱為柏克萊的 UNIX (Berkeley Unix),簡稱 BSD。BSD 以 AT&T 所授權的 UNIX 核心為基礎,但也由於跟 AT&T 的法律問題,以及原始碼過於破碎零星,黑客及學會外的其他使用者,較晚才接受這個系統」
- BSD 的發展大致分為三個時期:
* Bill Joy 年代: BSD 早創
* BSD 全盛時期: TCP/IP 發展的溫床,代表作有 BSD 4.2, 4.3
* BSD 和 AT&T 的官司
- 在 1993 年,也就是 BSD 官司結束那年,Linux 核心正式擁有 TCP/IP 的支援,後者是 BSD 一直以來引以為傲的重要特徵,因而 GNU/Linux 吸引不少原本 BSD 支持者的目光
- 值得注意的是,Linux 核心與對應的 distribution (發行套件) 剛好在前述官司過程中,快速發展,某個角度來說,算是 BSD 官司訴訟的間接受益者
* 光在 1992 年就有三套 Linux distribution:
* MCC Interim Linux
* Softlanding Linux System (SLS)
* Yggdrasil Linux/GNU/X
:::info
- 交大資工系的學生自製生動的短片,重現當年 AT&T 旗下 Unix System Laboratories (USL) 和 BSDi 官司的時空背景:「[USL v. BSDi 官司](https://www.youtube.com/watch?v=Ttsz-h81R54)」
:::
### Bill Joy 年代:BSD 早創
* 1970 年代末,DARPA 在為 Artificial Intelligence、VLSI、Computer Vision 等研究尋找可以共通作業的電腦環境。硬體方面的首選是 DEC ([Digital Equipment Corporation](https://en.wikipedia.org/wiki/Digital_Equipment_Corporation)) 的 VAX,作業系統方面則是 VMS。這搭配非常接近 DARPA 需求,但是 DARPA 卻沒有從 DEC 那獲得滿意的答覆,於是考慮轉往 UNIX 發展,而當時的 UNIX 是 [UNIX/32V](https://en.wikipedia.org/wiki/UNIX/32V),一大缺點是沒有 virtual memory 支援;
* DEC 銷售的 VAX 硬體預設搭配的作業系統是自家的 VMS,但在校園中,人們偏好改裝 Berkeley UNIX 作業系統,因為 Berkeley UNIX 不僅改版更快、功能更多,並提供完整的原始程式碼
- VMS 作業系統的開發團隊後來被 Microsoft 挖角去開發 WIndows NT 的核心,有人戲稱 Windows NT 簡寫 "WNT" 就是取自 "VMS" 每個字母遞移一個順位
- VMS 和 Windows NT 作業系統的關鍵開發人物是 [Dave Cutler](https://en.wikipedia.org/wiki/Dave_Cutler),在態度上鄙視 UNIX,在 1988 年 10 月離開 DEC,為 Microsoft 效勞至今。Dave Cutler 加入 Microsoft 前,在 DEC 主導 Prism 這個 RISC 架構的處理器和 Mica 作業系統 (提供 VMS 和 UNIX 相容層),後來 Prism 變成 [Alpha 處理器](https://en.wikipedia.org/wiki/DEC_Alpha)的基礎。也因為 Dave Cutler 的開發背景以及 VMS 與 Windows NT 技術上的相似性,在 DEC 對 Microsoft 的雙方協定下,Windows NT 支援 DEC 64-bit Alpha 架構
> 延伸閱讀: [Windows NT and VMS: The Rest of the Story](https://www.itprotoday.com/compute-engines/windows-nt-and-vms-rest-story) (1998 年)
- 後來一群獨立的開發者依循 Microsoft Windows NT 的設計原則和 API,重新實作一個開放原始碼的 NT,稱為 [React OS](https://www.reactos.org/)
- 1979 年末,Bob Fabry 撰寫建議書給 DARPA,建議以支援 Virtual Memory 的 3BSD 為基礎來發展成所需的作業系統。Bill Joy 也表示 VMS 會永遠限制於 VAX 上,但 BSD 可攜性更佳,可運作於未來出現的新硬體架構上。這個方案得到 DARPA 的關注,3BSD 也獲得 DARPA 成員的好評,最後 Berkeley 打敗 CMU 和 BBN (Bolt Baranek & Newman, Inc.) 取得 DARPA 的資助合約
- 合約始於 1980 年 4 月,為期 18 個月。Bob Fabry 在取得合約後成立 CSRG (Computer Systems Research Group) 來支援
- 後來 Bob Fabry 找 Bill Joy 做開發,於是 Bill Joy 以 3BSD 為基礎,整合 job control (由 Jim Kulp 開發), auto reboot, 1K block file system, Pascal compiler, Franz Lisp system, enhanced mail handling system 等等先進特徵,成為 1980 年發表的 4BSD,沒多久後被裝在約 500 臺 VAX 上 (當時 DARPA 也採用 4BSD 作為標準的作業系統)
- 為了進行 DARPA 的專案,Bill Joy 開始整合先前 BBN 的 Rob Gurwitz 開發的 TCP/IP 通訊協定,但 Bill Joy 對於原有程式碼的執行效率不滿意,所以 Bill Joy 和 Sam Leffler 就自行撰寫新的版本。
- 此外,Bill Joy 需要在機器間跑一些程式來測試,但當時缺乏 FTP 和 Telnet 一類的工具程式,所以他就撰寫一些工具 (rcp, rsh, rlogin, rwho),這些程式也被加入新的版本。這版本被稱為 4.1a BSD,但沒有正式發表,1982 年 4 月開始於內部使用
* 雖然 4.1a BSD 沒有正式發表,但仍到處流傳。1982 年 6 月,4.1a BSD 加上新的檔案系統,成為 4.1b BSD
* 後來,rcp, rsh, rlogin, rwho 等工具因安全問題被 SSH (Secure Shell) 取代
- 1982 年春季末,厭倦 UC Berkeley 環境的 Bill Joy 受邀加入剛創立的 Sun Microsystems, Inc.,成為 Sun Microsystems 的第四位創辦人。Bill Joy 對 BSD 的修改到一個段落後交由 Sam Leffler 接手
:::info
由於 Bill Joy 離開 UC Berkeley,所以「Bill Joy 時代」因而結束
* [Bill Joy 人物側寫](http://www.ctuaa-sc.com/index.php/collection/42-bill-joy.html)
* 詳盡的訪談: [Oral History Andreas Bechtolsheim & William Joy](http://www.cwhonors.org/search/oral_history_archive/bechtolsheim_joy/BecJoy.pdf)
* Bill Joy 在 TED 的演說: [What I'm worried about, what I’m excited about](https://www.youtube.com/watch?v=LN2shXeJNz8)
:::
- 1980 到 1990 年代,兩位 "Bill" 各領風騷,都在作業系統領域大放異彩,分別是 Bill Gates (MS-DOS, MS-Windows) 與 Bill Joy (BSD UNIX, SunOS, Solaris),而且都在 2000 年初期退休,分別投入綠能、醫療,和社會企業領域
- 此時,Unix 上形成二個選擇:
* AT&T 原廠
* with [UUCP](https://en.wikipedia.org/wiki/UUCP) (Unix-to-Unix Copy) as networking
* File System could utilize 3 to 5 percent of bandwith of the disk
* BSD 改進版
* with sockets, TCP, ... etc
* File System could utilize 50 percent of bandwith of the disk
### BSD 全盛時期
- 1983 年 1 月 1 日,ARPANet 把 core networking protocols 從 NCP (Network Control Protocol) 轉到 TCP/IP 上
* 這時期的 BSD 各版本特徵:
- 4.1a: networking, BBN TCP/IP
- 4.1b: fast file system
- 4.1c: signalling
- 4.1d: new virtual memory (Bill Joy 沒做完 virtual memory 的部份就離開,發展延宕許久)
- 4.2: AT&T 釋出 [UNIX System V](https://en.wikipedia.org/wiki/UNIX_System_V) release 1,block size 從 512 bytes 提升到 1 Kbytes
* Sun Microsystems 以生產 RISC 架構 ([SPARC](https://en.wikipedia.org/wiki/SPARC)) 的工作站電腦為主,運作以 BSD 為基礎的作業系統。在當時以不遜於大型電腦的多人多工、具網路溝通功能的 UNIX OS、加上價格低廉的硬體 (相對於迷你級電腦而言,當然這個「迷你」不能用今日電子產品的尺寸觀點來看待),廣得工程界的青睞,而 mini 級大電腦自此逐漸式微。電腦軟體的應用因具備網路,於是也開始朝向 Client-Server 的架構發展。
* 1982 年,SUN 擁有自己的作業系統 Sun OS 1.0 (基於 4.1BSD)。
* 直到 1992 年,SUN 才向 [System V](https://en.wikipedia.org/wiki/UNIX_System_V) 靠攏,並將作業系統改名為 Solaris。
* Sun Microsystems 對 UNIX 和其它領域的發展也做出一些重大的貢獻和成就
* NFS (Network File System) (開發於 1984 年)
* [PC-NFS](https://www-01.ibm.com/support/knowledgecenter/ssw_aix_71/com.ibm.aix.networkcomm/nfs_pcnfs_intro.htm) (發表於 1986 年)
* Java (開發於 1990 年 12 月)
* ZFS (開發於 2001 年)
* MySQL (於 2008 年 1 月購入)
* VirtualBox (於 2008 年購入)
### BSD 和 AT&T 的官司
* 1991 年,[Rick Adams](https://en.wikipedia.org/wiki/Rick_Adams_%28Internet_pioneer%29) 和 [Computer Systems Research Group](https://en.wikipedia.org/wiki/Computer_Systems_Research_Group) (CSRG) 的成員一同成立 Berkeley Software Design Inc. (1911 ~ 2002),因為主要產品主要源自於 [4.3BSD](https://en.wikipedia.org/wiki/4.3BSD) Networking Release 2 所以取了和 Berkeley Software Distribution 相似的名稱。BSDi 販賣 [BSD/OS](https://en.wikipedia.org/wiki/BSD/OS) (原名稱為 BSD/386) 的 license 和支援。
* 1992 年 1 月,BSDi 發佈 BSD/386,整套系統包含原始程式碼售價 $995 美元,同時期 [AT&T](https://en.wikipedia.org/wiki/Old_AT%26T) 的 [UNIX System V](https://en.wikipedia.org/wiki/UNIX_System_V) 從 1980 年代起就要價超過 $20,000 美元
* 1991 年底,AT&T 旗下的 [Unix System Laboratories](https://en.wikipedia.org/wiki/Unix_System_Laboratories) (USL) 控告 BSDi,宣稱後者的 BSD/386 裡面包含他們的商業機密
* BSDi 公司的電話號碼 ITS-UNIX (從商標到電話號碼,都被 AT&T 視為資產來保護) 是引發 AT&T 官司訴訟的導火線
* Berkeley Software Design, Inc. (BSDi) 從事 4.3BSD 與其衍生發行版本 Net/2 (移除源自於 AT&T 的程式碼) 的商業化。該公司產品名為 BSD/386,並宣稱 BSD/386 經過 Berkeley 的改寫,已沒有 AT&T 的原始碼,不過 AT&T 還是對 Berkeley 和 BSDi 提出告訴,此一訴訟延後了 4.4BSD 的發表
* 1993 年 6 月,[Novell](https://en.wikipedia.org/wiki/Novell) 買下 USL
* AT&T 和 Berkeley 在 1994 年 2 月 4 日達成和解,撤銷告訴, BSDI 發布不含 AT&T 宣稱的原始碼的 4.4BSD 原始碼,稱為 4.4BSD-Lite
* source: [McKusick 口述歷史](https://www.youtube.com/watch?v=bVSXXeiFLgk)
* [ 42’37" ] AT&T suited BSDi, judge almost threw it out. AT&T suited Berkeley in turn. the whole story starts around 35’
搭配觀賞影片: 《[A Narrative History of BSD](https://www.youtube.com/watch?v=ds77e3aO9nA)》
* 親身參與 BSD, FreeBSD 等一系列系統開發的 [Marshall Kirk McKusick](https://en.wikipedia.org/wiki/Marshall_Kirk_McKusick) 在演講中揭露第一手歷史淵源
> 中文字幕共筆:[A Narrative History of BSD](https://www.dropbox.com/scl/fi/qlzx496ym40f4tl7aimp6/A-Narrative-History-of-BSD.paper?rlkey=tksv642kbkprz1d8krkryc8gg&dl=0)
關於 UNIX 及其影響,可搭配觀賞影片:
* 〈[The Rise of Unix. The Seeds of its Fall](https://youtu.be/HADp3emVABg)〉
* 〈[A Chronicle of the Unix Wars](https://youtu.be/Ffh3DRFzRL0)〉
Linux 核心至今仍保有一部分 BSD 的血液,例如 TCP/IP stack 就移植自 BSD,Linux 尚有個系統呼叫名為 [bpf](https://man7.org/linux/man-pages/man2/bpf.2.html),是 Berkeley Packet Filters 的簡稱,指源於加州大學柏克萊分校的技術,後來被 Linux 核心大幅擴充和變造,改名為 eBPF,即 Extended BPF。Linux 核心雖然不是 UNIX 相容作業系統,但保留時代演化的軌跡,例如檔案 [include/uapi/linux/route.h](https://github.com/torvalds/linux/blob/master/include/uapi/linux/route.h) 開頭的授權聲明
> INET
> An implementation of the TCP/IP protocol suite for the LINUX operating system. INET is implemented using the BSD Socket interface as the means of communication with the user level.
> Authors: Original taken from Berkeley UNIX 4.3, (c) UCB 1986-1988 for the purposes of compatibility only.
而 FreeBSD 和 NetBSD 這樣現代 BSD 則源自 386BSD,後者是 Net/2 的延續,首次發布於 1992 年,當年 AT&T, BSDi, 和加州大學柏克萊分校的官司並未波及到 386BSD,儘管後者仍包含部分 AT&T 宣稱的部分原始程式碼 (源於 4.3BSD)。在 386BSD 首個版本 v0.0 發布的前一年 (恰好與 Linux 核心首次發布同年,1991 年!),386BSD 作者 William Jolitz 夫婦於知名的電腦刊物 Dr. Dobb's Journal (DDJ) 連載 18 個月的 "[Porting Unix to the 386](https://386bsd.org/releases)" 專欄,詳盡揭露 BSD UNIX 如何在 80386 微處理器移植和運用 GCC 在內的 GNU Toolchain 來建構整個作業系統。
386BSD 是 Net/2 的 80386 處理器移植,由 William Jolitz 和其妻 Lynne Jolitz 主導開發。386BSD 奠定 NetBSD 與 FreeBSD 的基礎,同時,這兩個專案也繼承 BSD 授權條款,作為發行的方針。在長期的病痛糾纏後,386BSD 作業系統的創始人 William Jolitz (也稱為 Bill Jolitz) 在 2022 年三月過世。在 [386BSD](https://386bsd.org/) 的網站上,開頭寫著:
> 386BSD was the first open source Berkeley UNIX operating system. It was the progenitor of Linux, iOS, and Android. Beginning with "A Modest Proposal" in 1989, 386BSD broke from proprietary systems by having publicly accessible code and documentation.
- Bell Labs 歸屬公司的演變:
* [AT&T](https://en.wikipedia.org/wiki/AT%26T_Corp.) (1925–1996)
* [Western Electric](https://en.wikipedia.org/wiki/Western_Electric) (1925–1983)
* [Lucent](https://en.wikipedia.org/wiki/Lucent_Technologies) (1996–2006)
* [Alcatel-Lucent](https://en.wikipedia.org/wiki/Alcatel-Lucent) (2006–2016)
* [Nokia](https://en.wikipedia.org/wiki/Nokia) (2016– 目前)
## [Bill Gates](https://en.wikipedia.org/wiki/Bill_Gates) 在 1976 年倡軟體私有化的公開信
- [ ] 影片時間: 00:07:21 $\to$ 00:07:51
* 摘錄: 「在 1970 年代中期,有一群黑客跟電腦玩家組織『自製電腦俱樂部』。1976 年 1 月 31 日,在俱樂部的新聞公報上,剛成立 Microsoft 公司的比爾蓋茲給這個社群寫一封公開信,他一一為軟體所有權的相關觀念辯論。他的重點是,實際的電腦使用者習於自由交流軟體,並不重視軟體的所有權」
* 位於加州的 [Homebrew Computer Club](https://en.wikipedia.org/wiki/Homebrew_Computer_Club) (自製電腦俱樂部) 上有非常多軟硬體創作,包含 [Steve Wozniak](https://en.wikipedia.org/wiki/Steve_Wozniak) 在 1975 年 3 月第一次聚會結束後,Wozniak 在紙上完成 Apple I (當時未命名) 的設計草圖,並在第二次聚會分享交流
* 延伸閱讀: 《[科技頑童沃茲尼克](https://www.ithome.com.tw/node/44994)》
* 時代背景: [站在世界巔峰的 Bill Gates](https://www.youtube.com/watch?v=YMuuNw1vH98)
* 公開信全文: [Open Letter to Hobbyists
](https://en.wikipedia.org/wiki/Open_Letter_to_Hobbyists)
## [Larry Augustin](https://en.wikipedia.org/wiki/Larry_Augustin) 談自由軟體的廣泛使用
- [ ] 影片時間: 00:15:55 $\to$ 00:17:01
* 摘錄: 「我對自由軟體的首度貢獻,是在 1989 年尾、1990年初。我 (當時) 是個在史丹佛大學工作的畢業生,致力開發電腦輔助設計 (CAD) 的工具,其中我需要一支工具程式,叫做語法產生器。自由軟體基金會在理查史托曼的領導下,開發一個很棒的工具叫 "bison",而我要的是能處理 C++ 的工具,bison 卻只能處理 C 語言,於是經過我更新修改後,改名為 "bison++"。」
* 摘錄:「這有一種強大的成就感,可將手邊軟體的某部份,以很短的時間,修改成自己需要的模樣。我將之傳回網路,我很驚訝,有很多人下載回去使用。我記得一次去工作面試,我常常會想要去找工作,於是我就跑去參加面試,我會跟其他人聊天,然後會問他們都使用什麼工具,結果他們回答:『我們都用 bison++!』,於是我說:『哦,我就是 bison++的作者!』」
* [GNU bison](https://www.gnu.org/software/bison/) 是通用的解析器 (parser) 產生器,最早由 Charles Donnelly 和 Richard Stallman 開發。
* bison 可以轉換 LALR(1) 形式的語法描述為合法的 C 語言程式,這樣就可由編譯出來的程式去解析語法,這樣的工具又稱為 "compiler-compiler",詳情可參考 [TheLex & YaccPage](http://dinosaur.compilertools.net/)
* 在資訊科技領域,很多工程師和企業家都跟編譯器發展有關,比方說 [Eric Schmidt](https://en.wikipedia.org/wiki/Eric_Schmidt) 在 Bell Labs 服務時,重寫 lex 工具程式,[Dennis M. Ritchie](https://www.bell-labs.com/usr/dmr/www/) 在發展 Unix 作業系統和 C 語言之前,參與 Multics 專案的編譯器開發工作
- [ ] 影片時間: 00:14:54
* bison++ 作者創辦的 [VA Linux Systems](https://en.wikipedia.org/wiki/Geeknet) 在影片中不斷出現,它到底是何方神聖?SourceForge 曾經是他們的產品,並提供 SourceForge.net 主機和服務
- 最早來自於史丹佛大學的研究生成立的 VA Research, VA 可能和兩位創辦人 (James Vera 和 Larry Augustin) 的姓氏開頭字母有關
- VA Linux 是設計並「製造」Linux 個人電腦系統硬體和提供軟體服務的科技公司,以提供企業 Linux 解決方案為主。
- VA Linux 在結束了硬體市場後,就改名為 VA Software 賣 SourceForge 的服務,接著又改名為 SourceForge, Inc. 提供廣告業務
## [Michael Tiemann](https://en.wikipedia.org/wiki/Michael_Tiemann) 創立世界上第一間以自由軟體獲利的公司
- [ ] 影片時間: 00:13:58 $\to$ 00:14:47
* 摘錄: 「我有看到 Richard Stallman 的公告,在 1987 年 2 月跟他見面。他來我們公司教 5 天 Emacs 的課程,在那幾天,他說出關於 Emacs 的新想法、如何利用 Emacs 的原始碼,將它擴展加強,而不計成敗。晚上他都忙著在改寫這支編譯器 (gcc),他當時尚未公開釋出程式,他對想看原始碼的人有一點戒心。而我十分急切,所以他在6月首度釋出程式時,我馬上就下載,我玩了一下,從他身上得到一些指點,當我把原始碼回傳給他時,他非常地驚訝於我這麼快,就掌握他的技術」
* 這裡的「我們公司」指的是 Michael Tiemann 當時任職的 [MCC](https://en.wikipedia.org/wiki/Microelectronics_and_Computer_Technology_Corporation) 公司 (位於美國德克薩斯州 Austin)
* Michael Tiemann 在 20 年後撰寫回憶錄〈[Well It Was Twenty Years Ago Today](https://web.archive.org/web/20220814060725/https://opensource.org/node/155)〉,揭露當時的互動的狀況
* Red Hat 於 2000 年一月收購 Cygnus 後,指派 Michael Tiemann 為技術長,新聞稿 [Red Hat Names Michael Tiemann Chief Technical Officer](https://www.redhat.com/en/about/press-releases/press-tiemann) 提及 Tiemann 的相關學經歷
- [ ] 影片時間: 00:20:24 $\to$ 00:21:47
* 摘錄: 「在原始的 GNU 聲明中,也就是 GNU Emacs 使用手冊的最後一章,Richard Stallman 提出幾種可能賺錢的方法。自由軟體運動剛起步時,我就知道商業行為勢必可行。自由軟體的優勢之一,就是擁有各種提供技術支援的自由市場,如果你在工作上使用某個軟體需要良好的技術支援時,就可以找人來幫助你,你可以找專門提供服務的公司,他們勢必要給你良好的服務,不然你會去找別人。」
* 摘錄: 「對於私有軟體來說,技術支援是獨佔壟斷的,一般來說,只有一家公司擁有原始程式碼,只有他們能提供技術支援。所以,基本上來說,那算是壟斷下的施拾,譬如 Microsoft 公司就是,這也就難怪,服務會那麼糟糕。自由軟體的好處很多,但是技術支援的潛藏成本,卻會讓管理者極為不安,所以我原來的想法是,如果能建立一種模式,提供 2 到 4 次的技術支援,並且將性能掌控在相當於一個內部工程師的能力範圍內,我們就能節省 1/2 到 1/4 的成本,無論成效如何,都能讓人們掏腰包」
* Cygnus Solutions 公司創立時採用的名稱是 "[Cygnus Support](https://en.wikipedia.org/wiki/Cygnus_Solutions)"
* gcc 的首個 beta release 在 1987 年 3 月 22 日: [A Brief History of GCC](https://gcc.gnu.org/wiki/History)
* 創立 Cygnus Solutions 時,Michael Tiemann 已對 gcc 貢獻 C++ frontend,也就是 g++ 前身,也對 gcc 加入 [National Semiconductor 32032](https://en.wikipedia.org/wiki/NS320xx) 晶片的支援 (在 Tiemann 22 歲的時候)
* 多年來,Cygnus Solutions 的員工是 GNU 幾個主要軟體專案的維護者,這些軟體包括 GNU Debugger, GNU binutils (包括 GNU Assembler 和 GNU Linker)。該公司也是 gcc 計畫的主要貢獻者。Cygnus 還開發 BFD 函式庫,並在許多接受 NDA (保密協定) 的狀況下,開發新型晶片的軟體開發移植工具,將 GNU 開發工具移植到許多硬體架構
* 值得注意的是,Cygnus 公司活躍的 1990 年代,恰好也是處理器市場的「戰國時代」,百家爭鳴 (真的有百餘家微處理器開發商) 的榮景可見 [CPU-museum](http://www.cpu-museum.de/?a=cpus),所以 Cygnus 公司貢獻的 gcc 自然是這些處理器開發商與其合作夥伴不可或缺的基礎建設
* 1998 年,Cygnus 公司擁有 200 餘名軟體工程師,並經由其對於 GNU 工具程式的熟稔,為 Sony 公司提供 PS2 系統軟體開發的諮詢服務,在業界建立起技術專業的口碑,於是 Red Hat 公司在 NASDAQ 順利公開上市後,便以 6.74 億美元將 Cygnus 公司購併
* 1998 年 10 月,Intel 開始向 Red Hat 公司投資
* Red Hat 在 1999 年 11 月 15 日 (值得一提的是,該年 8 月 11 日 Red Hat 首次公開上市 [IPO],也是首間上市的 Linux 公司,在 2012 年營收超越 10 億美元),宣佈收購 Cygnus Solutions,後者員工轉為 Red Hat 公司服務,包含 Michael Tiemann,他現職為 Red Hat 的 Open Source Affairs 副總裁,並曾任技術長一職。
* Michael Tiemann 也是 OSI (Open Source Initiative) 的主席
* [GNU Manifesto](https://www.gnu.org/gnu/manifesto.html) 有一段提及自由軟體的商業應用:
> "When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things."
:::info
中譯:當我們提到自由軟體 (free software) 時,我們是指自由 (freedom),而非免費。 GPL 授權許可是設計來確保你有散播自由軟體的自由 (你若願意,你可以此服務收費),確保你可取得原始碼,確保你可以修改該軟體並使用它為基礎創造新的自由軟體;以及確保你認知到你擁有這些權力。
:::
* Cygnus Solutions 主要的客戶,依據時間排列
* Nortel (1990)
* Intel (1990)
* Ericsson (1991)
* Cisco Systems, Alcatel (1992)
* Nortel 也䀻雇若干位 GNU 專案的開發者 (如 cbj; Brian Jones),與 Cygnus 合作的過程,大幅改進 gcc 的成熟度,這也是在程式碼中見到 Nortel 公司字眼的緣故
- [ ] 影片時間: 00:22:12 $\to$ 00:22:34
* 摘錄: 「以 "GNU" 為底的單字,"Cygnus" 是其中最親切可人的字。我可以很確定地說,Cygnus 是第一間專門的自由軟體公司,Cygnus 為自由軟體提供服務,填補必要的空白」
* Cygnus 公司的口號是「讓自由軟體使用無憂」(Making free software affordable)
* Cygnus 是 "Cygnus, Your GNU Support" (意為:Cygnus,你的GNU 支持) 的遞歸式首字母縮寫詞,一如 GNU = GNU’s Not Unix
* 為什麼會說 Cygnus 是所有含有 gnu 的單字中最不 obnoxious 和 obscene 的?有很多含有 gnu 的單字是很糟糕的嗎?
* 在 Ubuntu Linux 18.04 執行以下命令:
```shell
$ sudo apt install wamerican
$ grep gnu /usr/share/dict/words
```
* 得到的結果是:
* Cygnus (天鵝座)
* Cygnus’s
* Xiongnu (匈奴)
* Xiongnu’s
* gnu
* gnu’s
* gnus
* magnum (大酒瓶)
* magnum’s
* magnums
> 看起來選擇真的不多
* Cygnus solution: GCC 輸出的符號中,以 cyg_ 開頭的函式,就是來自 Cygnus 公司的貢獻
* gcc 的 [-finstrument-functions 參數](https://hacktalks.blogspot.com/2013/08/gcc-instrument-functions.html)
* [eCos](https://ecos.sourceware.org/) 嵌入式作業系統是 Cygnus 開發,其 kernel API 也是以 `cyg_` 開頭
* GCC 經歷快速發展,已是工業標準,是 FSF 最知名的軟體,但開發團隊不拘限於 FSF
* gcc1 是 Richard Stallman 主要開發
* gcc2 是 Cygnus Solutions 公司、以 Michael Tiemann 為首的開發者為了增進速度和 C++ 支援而改出
* FSF 在 GCC 2.0 之後即嚴格管制 committership
* gcc3 完全不是 Richard Stallman 樂見,這是 g77, Pentium GCC 等專案的開發者,自 1997 年起,以 EGCS (Experimental/Enhanced GNU Compiler System) 為名而進行的 fork
* 為了避免激怒 FSF,Cygnus 另外成立一個管理委員會來管理新專案,並刻意取名為 egcs,以免引起綁架 gcc 的聯想。1999 年底,egcs 證明方向成功,FSF 基於局勢,採納 egcs 成果 (gcc 的 main branch) 整合進並將其正名為 gcc3
* 如 gcc 2.7 系列無法對 Intel Pentium 硬體架構作有效的最佳化,而 egcs 則把 pgcc 對 Pentium 所作的最佳化整合進去
* pgcc 據說用 JPEG 壓縮解壓縮測試,最多可比 gcc 2.x 快 30%
* gcc4 新的 GIMPLE/SSA 最佳化架構也是 Apple 和其他廠商的開發者對 Richard Stallman 固守 GCC RTL 的反動
* 同樣也因技術優勢,所以能不顧 FSF 的意志達成改版
* 這部份的技術背景知識,可參見〈[你所不知道的 C 語言:編譯器和最佳化原理篇](https://hackmd.io/@sysprog/c-compiler-optimization)〉
* 摘錄: 「其實為我們的商業模型貼模籤,或多或少都會曲解本意。無論是共產主義還是資本主義,是什麼無妨,重要的是,你能傳播多少價值?你的生意有多少賺頭?你能解決什麼問題?承受多快的創新速度?之後不管要怎麼貼標籤,都隨你便」
* 1989 年,在 Linus Torvalds 開始動手撰寫 Linux 程式碼的前兩年,Michael Tiemann 已創立 Cygnus 公司並見證開放原始碼軟體的逐步成長歷程
## [Richard Stallman](https://en.wikipedia.org/wiki/Richard_Stallman) 探討 copyleft 的理念
- [ ] 影片時間: 00:17:01 $\to$ 00:18:11
* 摘錄: 「一般來說,自由軟體是有著作權的,它還具備擁有人、授權證的,它不是公共財。如果把軟體變成公共財,有人就能做些小修改,將之變成私有的套裝軟體,意思就是,使用者雖然跑的是我們的軟體,卻沒有合作共享的自由。為了以防萬一,我們採取一種叫 "Copyleft" 的技巧,Copyleft 就是著作權 (Copyright) 的相反。」
* 摘錄: 「我們的做法就是,這些軟體是受著作權保護的,但作者賦予你散佈複製的權力、賦予你修改的權力、賦予你添加的權力,但是你要散佈的時候,也得遵守這些規範,一個不能多,一個不能少。無論誰從你那裡取得軟體,同時也得到想要與人合作的自由,如此,不管軟體所到何方,自由也尾隨而至。與他人合作並組建社群,變成不可剝奪的權力。」
* 1991 年 Linux 核心的最初版本使用一種禁止商業使用的授權條款。一些早期的貢獻者建議更改為符合自由軟體精神的許可證。1991 年秋天,Richard Stallman 造訪芬蘭,赫爾辛基大學的同窗 Lars Wirzenius 帶著 Linus Torvalds 去聽 Stallman 的演講,最終來自 Linux 核心貢獻者的壓力,以及 Lars Wirzenius 的努力,最終說服 Linus Torvalds 在 1992 年初選擇 GNU GPL 授權條款。
* 延伸閱讀: [The early days of Linux](https://lwn.net/Articles/928581/)
- [ ] 影片時間: 00:48:30 $\to$ 00:48:52
* 摘錄:「我支持自由軟體運動、而非開放原始碼運動的理由,在於我相信有比利益更重要的事情,像是與他人自由合作、組建社群。從我們的生命品質來說,能生活在優良的社會之中,是相當重要的,這就是我的觀點」
* 這邊表示,Richard Stallman 不認同開放原始碼運動這整件事,雖然他認同他們某些理念,但他仍然認為有跟直接利益扯上關係不是該鼓勵的事。充分地再次表現一種完美理想主義的哲學家思想。
- [ ] 影片時間: 01:12:37 $\to$ 01:14:33
* 摘錄:「向自由軟體基金會頒發托瓦茲獎,就像反抗軍收到韓索羅獎一樣 (Han Solo, 電影星際大戰的主角)。你們有些人還沒意會到,我說這是什麼意思。讓我來告訴各位,事情是這樣的,你 15 年前如果想用電腦,唯一的辦法就是使用私有軟體,然後被分化征服。很多人不喜歡這樣,卻毫無選擇。
* 我們有些人毅然決然,要做出替代方案。我們要開發出一個自由的作業系統,基於自由軟體的作業系統,賦予人們在使用電腦上,有選擇的自由。很多人說,這主意不錯,不過太困難,不可能成功,所以我不參與,我不相信你能成功。好在不是每個人都這麼說,我們很清楚地知道,核心最後一定能完成。碰巧的是,有人趕在我們之前,寫出更好的核心。在過去,我們的總體策略是,喚起人們對自由的重要性、喚起他們在使用電腦時,應有卻沒有的自由。」
* 習慣於廠商基於長期利益而「施捨」看似免費服務的我們,今天要去理解 Richard Stallman 的堅持,在心境也許不是這麼容易轉換。建議閱讀 "[30 Years of Free Software Foundation: Best Quotes of Richard Stallman](https://tlhp.cf/fsf-richard-stallman/)" 一文
## [Richard Stallman](https://en.wikipedia.org/wiki/Richard_Stallman) 講述 GNU Hurd
- [ ] 影片時間: 00:25:35 $\to$ 00:26:27
* 摘錄: 「GNU Hurd 系統的實際開發時間並沒比 Linux 早多久。我們選擇的是一種能還權於民的先進設計,不過這的除錯難度也很高:我們決定將傳統的單一核心分離,分割成許多的小型程式,以非同步的方式傳送訊息、進行協調。問題是,這種類型的程式具有為數可觀的潛在性錯誤,而且通常很難發覺,因為它們有賴於這個程式傳送訊息的之前或之後,另一個程式也會傳送訊息,而結果就是,我們花多年的時間才完成系統」
* Hurd 是架構在 Mach 為基礎的 microkernel 實作,稱為 [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) 。曾有一段時間,開發者嘗試以 L4 microkernel 作為 Hurd 的開發根基,不過目前已棄置
* Mach 起於 CMU ([Carnegie Mellon University](https://en.wikipedia.org/wiki/Carnegie_Mellon_University) ;卡內基美隆大學) 的研究,屬於第一代 microkernel,而 L4 屬於第二代
* 在 CMU 釋出 Mach 3.0 之後,University of Utah 的 Flux Group 將 Mach 的 x86 相關程式碼重寫並加入 Linux 驅動程式 (device driver) 的支援,這計畫稱為 Mach4,而 GNU Mach 正是以 Mach4 為基礎,自然也衍生於 CMU Mach 3
* Microkernel 的由來是當初 BSD 發展到最後,核心越寫越大,每次要增加新功能,就要更換並透過硬體重新啟動系統,變得很沒有模組化,也缺乏彈性。因此,microkernel 的觀念應運而生 ── 目的是將核心中最基本的部份、最與硬體相關的部份抽取出來,形成 microkernel。其他部份則歸為 userspace 層次,稱為 server。也就是說,microkernel 是將硬體加以抽象化並封裝起來,形成一個形式為虛擬機器 (Virtual Machine),而 server 則在這個虛擬機器上跑,提供傳統作業系統所應該提供的功能。以 Hurd 來說,就是希望在 GNU Mach 之上建構完整的 UNIX 相容 (或說 POSIX) 的執行環境
* Hurd 取自 "Hird of Unix-Replacing Daemons" 的縮寫,而,"Hird" 一詞又是代表 "Hurd of Interfaces Representing Depth"
* Unix-like 與 POSIX 的出現
* [POSIX](https://en.wikipedia.org/wiki/POSIX)
* P for `Portable`
* O for `Operating`
* S for `System`
* I for `Interface`
* X for `Unix`
* POSIX 的規格是有分版本的,目前是由 [Open Group](https://www.opengroup.org/) 制定
* 延伸閱讀: [淺談 Microkernel 設計和真實世界中的應用](https://hackmd.io/@sysprog/microkernel-design)
## [Linus Torvalds](https://en.wikipedia.org/wiki/Linus_Torvalds) 創造 Linux 核心
- [ ] 影片時間: 00:30:00 $\to$ 00:30:44
* 摘錄: 「Linux 本來只是個作業系統核心名稱,起源於我的名字 "Linus",結尾一定會有 "X",就像 UNIX 是個不成文規定。事情是這樣的,一開始我並不想公開叫它 Linux,因為太老王賣瓜了,好像我是個自大狂。他們認為一整個結構,都是圍繞著 Linux,所以稱這一切為『Linux系統』,然後就傳開來。結果是,現在有上千萬使用者用的是各種不同的 GNU 系統,GNU/Linux 作業系統,大多數人不知道而已」
* Linux 核心版本和對應的使用者及原始程式碼行數
* [ 1991 ] v0.01 / 1 萬行; 1 名使用者
* [ 1992 ] v0.96 / 4 萬行 ; 1 千名使用者
* [ 1993 ] v0.99 / 10 萬行 ; 2 萬名使用者
* [ 1995 ] v1.2 / 25 萬行 ; 50 萬名使用者
* [ 1997 ] v2.1 / 80 萬行 ; 350 萬名使用者
* [ 1998 ] v2.110 150 萬行 ; 750 萬名使用者
* [ 1999 ] v2.2 1200 萬名使用者
- [ ] 影片時間: 00:37:13 $\to$ 00:37:43
* 摘錄: 「3 年前我來到美國,理由是,我已經在赫爾辛基大學花 6 到 7 年時間,我決定該是離開學校,體驗真實世界的時候,尤其這個領域有很多有趣的事情可以做,於是我決定跨越半個地球,給自己一個機會,結果還不錯」
* 1997 年,Linus Torvalds 離開芬蘭,加入創辦於 1995 年、致力開發低功耗 x86 相容 CPU 的 Transmeta 公司 (於 2009 年被收購並停止營運),與 [Hans Peter Anvin](https://en.wikipedia.org/wiki/Hans_Peter_Anvin) 和 [Dave D. Taylor](https://en.wikipedia.org/wiki/Dave_D._Taylor) 等 Linux 界的高手共事
* [Transmeta](https://en.wikipedia.org/wiki/Transmeta) 公司雖然結束,但其技術和影響力不能小覷。Transmeta 其實不是 Intel x86 相容架構,因為根本是 VLIW 架構,為何 Transmeta 能執行 x86 指令集?仰賴 Code morphing software,可說是 transcoding-based VM,在當時是很創新的技術,近年來甚至 NIVIDIA 原本在 [Denver Core](https://en.wikipedia.org/wiki/Project_Denver) 計劃想使用。現今許多 processor core 在硬體設計上與具有支援的 ISA 能抽換的能力,除了受到 RISC 思維的影響,Transmeta 這些技術也是啟發之一。Transmeta 的離職員工一部分到 Google Inc. 服務,提升 GNU Toolchain 和 LLVM 的品質
* Linus Torvalds 在 2003 年 6 月離開待 6 年的 [Transmeta](https://en.wikipedia.org/wiki/Transmeta),轉向去非營利的 OSDL (Open Source Development Lab,後來在 2007 年合併 The Free Standards Group,成為 [Linux Foundation](https://www.linuxfoundation.org/)) 服務,全職投入 Linux 核心開發
> 延伸閱讀: Linus Torvalds 自傳 《[Just for Fun](https://en.wikipedia.org/wiki/Linus_Torvalds#Bibliography)》
- Linux 在 1995 年,即可在 i386 以外的平台運作,包含 Alpha
* [Porting Linux to the DEC Alpha: Infrastructure](https://www.linuxjournal.com/article/1044)
- 1997 年,《鐵達尼號》(Titanic) 製作電腦特技效果的 [Digital Domain](https://digitaldomain.com/) 公司在製作過程中用了 105 台跑 Red Hat Linux 的 Alpha 電腦 (另有二百多台 SGI 及 55 台 NT) [ [source](https://www.linuxjournal.com/article/2494) ]
* 1997 年 12 月 19 日電影《鐵達尼號》(Titanic) 在全球各地上映,獲得空前成功。該片是第一部達到 10 億美元票房大關的電影,全球票房收入達 18 億,並保持電影票房收入排行第一位,是隨後 12 年來最賣座的電影。直至 2010 年 1 月《阿凡達》的上映,導演 James Cameron 才打破了自己在《鐵達尼號》的紀錄
![圖片](https://hackmd.io/_uploads/B1kevQLFa.png)
* Digital Domain 製作不少賣座電影,像是《阿波羅 13 號》、《天崩地裂》、《第五元素》等等。當導演 James Cameron 把《鐵達尼號》的視覺特效交給 Digital Domain 公司時,工程團隊面臨前所未有的挑戰:鐵達尼號的動畫特效伴隨著一個體型相當龐大、且複雜的物件模型,也就是說,需要非常快速且穩定的電腦系統來作為開發平臺,才能夠負荷如此複雜且大量的視覺特效運算
* 為了以最少的成本換取最高的計算能力,Digital Domain 公司向當時執工作站牛耳的 DEC 公司買下 160 部 Alpha 工作站電腦。儘管多數的 DEC Alpha 使用者偏好採用 Digital UNIX 或 Microsoft Windows NT 作業系統,但 Digital Domain公司卻選擇在其中的 105 部新機器上安裝 Red Hat Linux 作業系統,事後證實是相當划算的投資,許多動畫特效公司紛紛採用 Linux 搭配價格低廉且高效能的硬體
- [ ] 影片時間: 00:31:41 $\to$ 00:32:02
* 摘錄: 「因為我在這一行,已經當了將近 15 年的軟體工程師,根據一切我所知道的,像控制複雜度、靈活的團隊規模、正確的管理方針,Linux 應該會徹底的失敗,但實際卻沒有,相反卻好得令人驚訝。我決心要找出,他們是怎麼做到的」
* 實際上,並非 Richard Stallman 或 Linus Torvalds 去「控制」專案,Linus 在多次訪談提到他根本不知道未來的 Linux 到底會發生什麼變化。
* 回到 gcc 和 Linux kernel 的對比,前者就像是「教堂」,這是需要高度專業的開發者才能有效率貢獻的專案,而後者的門檻低多了,中等的開發者就能貢獻驅動程式和文件,從而帶動開發者社群。Linux kernel 講究「權利下放」的概念,而 gcc 後來成立委員會,嚴格審查開發方向,並且落實執行。
- [ ] 影片時間: 54:45
* Linux 出現的雜誌為 1998 年 8 月 10 日的富比士雜誌
![Linux on Fobes](https://hackmd.io/_uploads/S1PY_7Ut6.png)
* 富比士雜誌在 1998 年 8 月 10 日的報導
- [Linux: the making of a global hack](https://www.forbes.com/global/1998/0810/0109044s1.html)
- [For the love of Hacking](https://www.forbes.com/forbes/1998/0810/6203094a.html)
## [Brian Behlendorf](https://en.wikipedia.org/wiki/Brian_Behlendorf) 歸納網際網路是 Apache 與 Linux 得以快速成長的重要因素
- [ ] 影片時間: 00:33:07 $\to$ 00:34:53
* 摘錄: 「在動機或者說商用考量上,和 Windows NT 相比起來,Linux 並沒有什麼令人值得使用之處,直到 Apache 的出現,那個由許多 Apache 外掛模組所增強的 Apache。當你想架設一組伺服器群組時,會有許多成本考量,而架設 Linux 和 Apache 比 Microsoft IIS 跟 NT 能有更多的實際回饋,即使得花一點錢訓練員工如何使用,或尋找具有這方面技能的人。不過往好處想,這種技能並不昂貴,因為那些大學生,使用 Linux 已經很久,很熟悉這個環境。」
* 摘錄: 「縱觀網頁伺服器的趨勢曲線,Apache 穩定成長,並取得前所未有的市場佔有率,目前已佔有 66% 的市場,並持續痛擊所有封閉原始碼的競爭者,因為它更可靠靈活,更具擴展性,它具有網站管理員實際需要的功能。Apache 與 Linux 的結合闖出一條連接到許多商店的大道,Apache 成為實質上刺激網路供應商 (ISP) 與電子商務公司選擇 Linux 而非 Microsoft Windows 的關鍵軟體,它大概在 Linux 及 FreeBSD 上效能最佳,理由是,使用那些作業系統的社群,也是回饋 Apache 最多的社群,也因為網路供應商所使用的作業系統開始變得負荷沈重。」
* 摘錄: 「網路供應商非常喜歡 Apache,因為他們可以做到許多用商用網頁伺服器辦不到的事情,比如說可以在一台主機上,架設多個網站。如果你是個 4 萬用戶的 ISP,而且他們都要架設網站時,這一點對你就極為重要」
![Web Server Survey](https://hackmd.io/_uploads/r1A5_XUYT.png)
圖片來源: [Web Server Survey](https://news.netcraft.com/archives/category/web-server-survey/)
## Netscape 的開放原始碼貢獻: Mozilla
- [ ] 影片時間: 00:40:06 $\to$ 00:40:25
* 摘錄:「Netscape 會重要的原因是,他們是第一個參與開放原始碼的大公司。雖然有 Cygnus 這樣的公司提供技術支援 (來營利),但 (Cygnus) 其實沒什麼大生意。Netscape 加入開放原始碼,目的是為了對抗 Microsoft,能遠離 Internet Explorer,但又不讓任何人獨占原始碼,不被其它公司合併」
* 從 1993 年[首個 NSCA Mosaic 網頁瀏覽器現身](https://livinginternet.com/w/wi_mosaic.htm),中間出現 Netscape, Internet Explorer, Mozilla, Firefox, Opera, Konqueror (KHTML), WebKit 等等都和開放原始碼技術有關,即便本體不見得開放原始碼,但都大量使用既有的技術,並且有對應的開發者社群。
- [ ] 影片時間: 00:41:00 $\to$ 00:41:26
* 摘錄:「真正的問題是,他們害怕 Microsoft 壟斷瀏覽器市場後,會以壟斷的地位,隨意竄改網站所依靠的 HTTP 及 HTML 標準協定。一旦他們詭計得逞,便能發揮影響力,將 Netscape 趕出伺服器市場。伺服器市場才是真正賺錢的地方」
* 近二十年前的狀況,對照今天的「雲端運算」就很好懂。真正賺到錢的廠商,往往是從事「雲」,而非開發和製造「端」(終端設備) 的廠商。Netscape 後期靠伺服器業務支撐,但需要有強大的形象支持,這是瀏覽器之所以重要的緣故
* 搭配觀賞影片:《How Microsoft Attacked the Beast who created Netscape, Mozilla Firefox》
* Bloomberg 製作的紀錄片,訪談親身參與 Netscape 公司的第一線人物,包含 Marc Andreessen;
* 亮點: Netscape 的技術溫床源自 NCSA, Marc Andreessen 帶領的團隊和工程師風格,NCSA 和 Netscape 前身 Mosaic Communications 的官司, Microsoft 從 NCSA 取得 Mosaic 授權來開發 Internet Explorer,從而打擊 Netscape。1990 年代末期 Microsoft 面臨的反壟斷官司,Mozilla 浴火重生。
> [The History of Web Browsers](https://www.mozilla.org/en-US/firefox/browsers/browser-history/)
* 搭配觀賞影片:《_[Code Rush](https://www.youtube.com/watch?v=VoLUvE-ny1k)_》(1998.3-1999.4)
* David Winton 導演的紀錄片
* 紀錄 Netscape 工程師們將瀏覽器原始碼釋出,成為 Mozilla 專案的經過;同時 Netscape 也這段時間被 AOL 併購
* 這部紀錄片詳實的記錄 Netscape 程式設計師的生活、對程式開發的熱情與執著、矽谷的掏金夢、投資銀行家的市儈與貪婪,以及 2000 年當時尚未破滅的網路泡沫
{%youtube VoLUvE-ny1k %}
* NCSA Mosaic 作為早期網頁瀏覽器的先驅,整合文字與圖像等多媒體元素,並支援多種網路通訊協定,如檔案傳輸協定 (FTP)、網路新聞傳輸協定 (NNTP) 和 Gopher等早期網際網路協定。Mosaic 經常被視為首款圖形Web瀏覽器,儘管在它之前已有 WorldWideWeb 和ViolaWWW 等產品,其中 ViolaWWW 是史上首個圖形化網頁瀏覽器 ViolaWWW。
* 人們熟知 Tim Berners-Lee 在 1990 年陸續開發出史上首個網頁瀏覽器 WorldWideWeb、首個網頁伺服器 CERN HTTPd,並在 1991 年 提出 WWW。
* 生於台灣的魏培源,在加州大學柏克萊分校接受高等教育,並投入早期網際網路的發展。1992 年 3 月,魏培源針對 X Window System 開發出 ViolaWWW (使用 Motif 函式庫),首次支援 HTML 元素、樣式表 (style sheet)、表格繪製,還有表單,也是 CERN 推薦使用的網頁瀏覽器。NCSA Mosaic 則到 1993 年才對外釋出,並受到 ViolaWWW 的影響。後來魏培源在 2008 年回到台灣,直至 2023 年離世。
* Mosaic 開發始於 1992 年底,在伊利諾伊大學厄本那-香檳分校的國家超級計算應用中心 (NCSA) 進行。1993 年,NCSA 正式發布 Mosaic,而到 1997 年 1 月 7 日,官方對其的開發和支援正式結束。
* 試用 ViolaWWW 後,David Thompson 向 NCSA 的軟體開發團隊展示該瀏覽器,激勵當時任職於 NCSA 的 [Marc Andreessen](https://en.wikipedia.org/wiki/Marc_Andreessen) 和 Eric Bina 開發出 Mosaic,他們最初針對 X 視窗系統 (運作於 UNIX) 開發 NCSA Mosaic,該瀏覽器稱為 xmosaic。
* 1991 年 12 月,參議員[艾爾·高爾](https://en.wikipedia.org/wiki/Al_Gore) (也是後來的副總統) 提出的高爾法案獲得通過,為 Mosaic 項目提供資金支持。1993 年 1 月,Marc Andreessen 宣布該專案成立,同年 6 月推出首個 alpha 版本 (0.1a 版),在 9 月發佈首個 beta 版本(0.6b 版)。同年稍後,Mosaic 也推出了適用於 Microsoft Windows 和 Macintosh 的瀏覽器版本。
* NCSA Mosaic 的 2.0 版於 1993年 11 月 10 日發佈,從 1994 年到 1997 年,國家科學基金會 (NSF) 支持 Mosaic 的後續開發。
* 自 1995 年起,Mosaic 開始失去市場份額,主要被 Netscape Navigator 所取代。當 1997 年專案終止時,其使用者數量大幅縮水,同年,Microsoft 依據 Mosaic 的技術開發第一版的 Internet Explorer。
* 1994 年,Mosaic 瀏覽器的主要開發者 Marc Andreessen 離開 NCSA,聯手 Silicon Graphics, Inc.(SGI)的共同創辦人 James H. Clark 及伊利諾伊大學的其他學生和員工,共同成立 Mosaic Communucations,後者更名為 Netscape Communucations 公司,推出著名的 Netscape Navigator。
* Netscape 成為首家企圖利用新興全球資訊網的企業,該公司的首款產品是 1994 年 10 月 13 日發佈的 Mosaic Netscape 0.9 網頁瀏覽器。在發佈後的四個月內,該瀏覽器佔據市場的四分之三份額,迅速成為網際網路使用者的首選。該瀏覽器後來更名為 Netscape Navigator,以避開 NCSA 的商標權問題,公司也於 1994 年 11 月 14 日正式更名為 Netscape,並強調 Mosaic Netscape 網頁瀏覽器不使用任何 NCSA Mosaic。
* 1995 年 8 月 9 日,Netscape 進行極為成功的首次公開募股 (IPO),股票價格從每股 14 美元在最後一刻翻倍至 28 美元。開盤當天股價飆升至 75 美元,最終收盤價為 58.25 美元,使 Netscape 的市值達到 29 億美元。這次成功的 IPO 後來被用來形容高知名度的 IPO,象徵著一個新興行業的到來。
* 1998 年,Netscape 啟動名為 Mozilla 的原始程式碼專案,並公開發佈 Netscape Communicator 5.0 的原始碼。然而,該版本的開發最終因難度過大而停止,開發的焦點轉移到全新構建的下一代瀏覽器,後者採用全新的 [Gecko 佈局引擎](https://en.wikipedia.org/wiki/Gecko_(software)) (layout engine),具有更高的模組化架構,更適合由大量程式設計師共同開發。
* Netscape 公司成立初期,給予瀏覽器的內部代號是 Mozilla,代表「Mosaic 殺手」,因為該公司的目標是取代 NCSA Mosaic 成為世界排名第一的網路瀏覽器。
* 由藝術師 Dave Titus 繪製的卡通哥斯拉狀蜥蜴吉祥物,一直是該公司的吉祥物,在 Mozilla 專案發佈時,該吉祥物正式出現在公眾面前。
![image](https://hackmd.io/_uploads/r15unBUKp.png)
$\to$ 參見〈[How was Mozilla born](https://www.davetitus.com/mozilla/)〉
* 1998 年 11 月 24 日,美國線上 (AOL) 宣布將以 42 億美元的免稅股票交換方式收購 Netscape Communications。該交易於 1999 年 3 月 17 日完成,交易價值達到 100 億美元。
* Netscape 的部分業務被整合進 AOL 與Sun Microsystems 之間的合作企業 iPlanet 中
* 2000 年 11 月 14 日,AOL 以 Mozilla 0.6 原始程式碼為基礎,發佈 Netscape 6。
* 隨著 AOL 於 2003 年 7 月 15 日解散 Netscape,大部分程式設計師遭到解僱,標誌著 Netscape 時代的終結。
* 延伸閱讀:〈[NCSA Mosaic Internet Web Browser: The Complete History](https://history-computer.com/history-of-the-ncsa-mosaic-internet-web-browser/)〉
2003 年一月,在 Apple 的 MacWorld 上,[Steve Jobs 正式對外宣布 Safari 網頁瀏覽器](https://youtu.be/gPyrzvI7Mlc?t=4000
),提及使用到 KDE 專案的網頁瀏覽器引擎的成果,約莫在此六個月前,Apple 工程人員對 KDE 郵件論壇發布修改過的程式碼。
1998 年對於網頁瀏覽器技術和開放原始碼都是相當重要的一年,Netscape 因應 Microsoft 在網頁瀏覽器領域咄咄逼人的態勢 (例如後者運用自身作業系統的優勢,綑綁 IE 並試圖在作業系統層面排除 Netscape 網頁瀏覽器),宣布以開放原始碼釋出 Gecko 排版引擎,與此同時,[Open Source Initiative](https://opensource.org/) 成立作為非營利組織,並註冊 Open Source 這商標,鮮明宣布開放原始碼和商業應用的規範。不過 KDE 專案的開發者對於 Netscape 公司發布的 Gecko 排版引擎有不同的意見,主要是顧及當時 Mozilla/Gecko 許多元件是重新撰寫、完整度不若 Netscape Navigator 穩定版本,於是 KDE 開發者在 1998 年另起爐灶,開發 KHTML 子專案,其中 "K" 開頭的命名就是 KDE 專案的慣例,用於檔案管理和和網頁瀏覽,這樣的整合風格相似於 Microsoft Windows 的 MSHTML 手法,為了讓 KHTML 能顯示更多網頁,KDE 開發者也加入對某些 IE 專有 HTML 標籤和語法的支援,關於後者,在 Mozilla 陣營則持負面態度。
2001 年 6 月,Apple 工程人員展開 WebKit 前身 WebCore 專案的開發工作。和 KDE 的 KHTML 開發者之間的合作關係受限於 Apple 公司的開發文化,屏蔽許多內部資訊 (這件事在 Google 的 Android 也重演),致使雙方關係一度緊張,後來Apple 作出讓步,宣布 WebKit 從原始程式碼到開發模式全面開放原始碼 (注意:此案例告訴我們,開放原始碼絕非字面上程式碼的開放,尚有開發模式和公眾信任的議題),KDE 專案和 Apple 之間關係有所改善,從而鞏固 WebKit 專案作為 Gecko 的替代選擇,Google 後來加入 WebKit 的開發,不過在 2013 年,歷史重演,Google 自 WebKit 分化出 Blink 專案。
## 開放原始碼崛起:軟體供應商的支持
- [ ] 影片時間: 00:53:17 $\to$ 00:54:15
* 摘錄:「就是資料庫軟體供應商的倒戈。就在短短的三個月間,比我預期得還要快,確切的發生時間是七月底八月初,我們得到來自 Oracle, Sybase 及其它關鍵資料庫軟體供應商的移植承諾,為什麼這很關鍵?為了讓人信賴開放原始碼,尤其是信賴 Linux,就必須得到獨立軟體供應商 (Independent software vendor; ISV) 對於移植應用軟體的承諾。其實我有些擔心這點,我們處於受人責難的立場,在我們宣稱自己是開放原始碼陣營之後,直到資料庫軟體供應商倒戈,這期間都受到 Microsoft 及其它封閉原始碼陣營的敵視。這表示,我們可能會被嚴酷的市場競爭吞沒,不過一旦大型的資料庫軟體供應商倒戈,便為其它獨立軟體供應商作了榜樣,雪球效應就開始」
* [Oracle](https://zh.wikipedia.org/wiki/%E7%94%B2%E9%AA%A8%E6%96%87%E5%85%AC%E5%8F%B8), [Sybase](https://zh.wikipedia.org/wiki/Sybase)及其他資料庫軟體供應商承諾移植
* [滾雪球效應](https://zh.wikipedia.org/zh-tw/%E9%9B%AA%E7%90%83%E6%95%88%E6%87%89)開始發酵,開放原始碼陣營士氣大增。也使得客戶開始變多,像是 [Cisco](https://zh.wikipedia.org/wiki/%E6%80%9D%E7%A7%91%E7%B3%BB%E7%BB%9F)
## Linux 本質上只是核心,需要發行套件
- [ ] 影片時間: 00:31:26
* First commercial Linux Distribution with live-cd -- Yggdrasil produced by Adam J. Richter, Yggdrasil Computing, Inc.
* [Yggdrasil Linux/GNU/X](https://en.wikipedia.org/wiki/Yggdrasil_Linux/GNU/X)
* December 8 1992
* Yggdrasil was the first company to create a [live CD](https://en.wikipedia.org/wiki/Live_CD) Linux distribution.
* Yggdrasil Linux described itself as a "[Plug-and-Play](https://en.wikipedia.org/wiki/Plug_and_play)" Linux distribution, automatically configuring itself for the hardware.
* The name was chosen because Yggdrasil took disparate pieces of software and assembled them into a complete product.
* Yggdrasil’s company motto was "Free Software For The Rest of Us"
> [Yggdrasil](https://en.wikipedia.org/wiki/Yggdrasil) 是北歐神話中的世界之樹、連接九個世界
- Live CD 的技術在當時算是一種創舉嗎?
* 當時電腦的記憶體容量很小,1995 年許多個人電腦的主記憶體容量僅有 4MB (不是 4GB!),這對 Live-CD 的運作自然就是挑戰
* 1993 年秋天釋出的光碟,[上面文字](https://en.wikipedia.org/wiki/Yggdrasil_Linux/GNU/X#/media/File:Lgx_yggdrasil_fall_1993.jpg)寫著要安裝的話,得先將磁碟片放入 3.5 吋軟碟機,再插入光碟片,之後才重開機
- [ ] 影片時間: 00:35:09
* [Marc Ewing](https://en.wikipedia.org/wiki/Marc_Ewing): Red Hat 創始人
* [Bob Young](https://en.wikipedia.org/wiki/Bob_Young_%28businessman%29): Red Hat 早期 CEO
* After leaving Vernon, Young founded the ACC Corp Inc. in 1993.
* [Marc Ewing](https://en.wikipedia.org/wiki/Marc_Ewing) and Young’s partnership started in 1994 when ACC acquired the Red Hat trademarks from Ewing. In early 1995, ACC changed its name to Red Hat Software, which has subsequently changed to simply [Red Hat](https://en.wikipedia.org/wiki/Red_Hat), Inc. Young served as Red Hat's CEO until 1999.
* Donnie Barnes - Red Hat 第 4 位員工
* [Red Hat 早期關鍵員工的訪談](https://www.redhat.com/magazine/013nov05/departments/red_hat_speaks/)
- [ ] 影片時間: 00:35:53
* Erik Troan: Red Hat 第 5 位員工,[2000 年離開 Red Hat](https://www.smoogespace.com/documents/behind_the_names.html)
* [Newt](https://en.wikipedia.org/wiki/Newt_(programming_library)) 的作者
* [RPath](https://en.wikipedia.org/wiki/RPath) 作者之一
* [RPM](https://en.wikipedia.org/wiki/RPM_Package_Manager) 的作者之一
* RPM Package Manager (RPM) (originally Red Hat Package Manager 的作者之一
* 又是一個遞迴縮寫
* RPM 最初在 1997 年,由 Eric Troan 與 Red Hat 創辦人 Marc Ewing 合作開發
## [Eric S. Raymond](https://en.wikipedia.org/wiki/Eric_S._Raymond) 的〈教堂與市集〉
- [ ] 影片時間: 00:38:31 $\to$ 00:40:03
* 摘錄: 「我寫一篇名為〈教堂與市集〉的論文,經由我的觀察及人類學分析,研究開放原始碼 (open source) 世界如何運作。那時還不是這麼叫的,主要還是用『自由軟體』這個說法,所以我觀察自由軟體世界,研究為何違反正常軟體工程規則,卻還能製作出水準極高的軟體。」
* 摘錄: 「在論文裡,我拿二種不同的開發類型來作對比,二種相對的發展風格,一種是傳統的封閉開發類型,我稱之為『教堂風格』,這個類型有嚴謹的目標規劃,小型專案團體運作於權力主義的階級制度下,發佈間隔較長。另一種,我認為誕生在 Linux 世界裡,是較為分散的點對點結構,類似於商場或市集的風格,發佈間隔相當短,需要非專案正式人員持續不斷的回饋,是一個極為對等的校對過程。隨著我觀察越深就越吃驚,它似乎具有超越傳統封閉模式所有假定優勢的可能,以大規模的獨立對等校對模式所達到的單一優勢,似乎真的要贏了,似乎真的就要交出好的成果」
* 繁體中文翻譯: 〈[教堂與市集](https://crazyangelo.github.io/Cathedral-and-Bazaar/)〉
* 〈教堂與市集〉的精髓是「讓夠多人看到原始碼,錯誤將無所遁形」(Given enough eyeballs, all bugs are shallow)
* 教堂模式的軟體開發讓程式除錯的時間大幅增加,因為只有少數的開發者可參與修改工作,而市集模式則恰好相反
* 啟發大部份的開放原始碼及自由軟體的開發計畫採用市集模式,連同原來偏向教堂模式的 GNU Emacs 及 GCC 也做了轉變
* 在 1999 年,Eric Raymond 這篇文章和後續討論集結為專書《[The Cathedral and the Bazaar](http://www.catb.org/esr/writings/cathedral-bazaar/)_》_
- 以 GCC 為例:
* Started in 1987 by RMS
* Originally done by small group (教堂模式)
* Forked in 1997 to [EGCS project](https://en.wikipedia.org/wiki/GNU_Compiler_Collection#EGCS_fork)
* Open access development (市集模式)
* Remerged in 1999
* 意味著市集模式的勝利
- [ ] 影片時間: 00:42:30 $\to$ 00:43:05
* 摘錄: 「在 1997 年初的 Linux 大會是我發表這份論文的第一個地方,其中有個人聽說是 O'Reilly 出版企業的 Tim O'Reilly,他覺得很吸引人,於是我受邀到他舉辦的第一屆 Perl 討論會上發表。也就是在遲些日子的 1997 年秋,後來才有人告訴我發生什麼事情,那時我對狀況也是毫不知情,是 Netscape 的人從 Perl 討論會上知道這份論文,並將那些觀點帶回 Netscape,給他們一些靈感」
## [Richard Stallman](https://en.wikipedia.org/wiki/Richard_Stallman) 講述 Open Source movement 與 Free Software movement 的差別
- [ ] 影片時間: 00:48:07 $\to$ 00:48:57
* 摘錄: 「當談論由三位發起人所提倡的 Open Source 運動的時候,我想我也應該談論 Free Software 運動。Open Source 運動聚焦於實質上的好處,讓你可以利用社群的方式,可以互相交流並改進軟體程式,我完全認同這個觀點,但為什麼我會參與 Free Software 運動而非 Open Source 運動呢?原因在於,能自由自在的與其他人一起合作、一起擁有一個社群,比起強大與可靠的軟體,使我們能生活在有品質與和諧的社會中才是最重要的。」
* 更詳細的瞭解這兩者的差異,可見 [Why "Free Software" is better than "Open Source"](https://www.gnu.org/philosophy/free-software-for-freedom.html#translations)
* Richard Stallman 像是一個哲學家,而 Linus Torvalds 像是一個工程師。
## [Bruce Perens](https://en.wikipedia.org/wiki/Bruce_Perens) 敘述他認為自己與 Richard Stallman 理念的異同處
- [ ] 影片時間: 00:48:48 $\to$ 00:49:51
* 摘錄:「我認為一些自由軟體圈的人對於商業化感到有些畏懼。呃,你知道的,成功必然能夠推遲反抗的到來。但我認為商業化是非常重要的,我們想要推廣這個軟體。我和 Richard Stallman 共事,而我不認為我和他有任何哲學理念上的差異,我是《開放原始碼定義》的作者,他則是自由軟體運動的發起人暨組織者。『他認為所有的軟體都必須是自由公開的;而我則認為自由軟體與非自由軟體可以同時存在。』這是我們唯一的差異。」
## Microsoft 面對的反壟斷官司
- [ ] 影片時間: 00:58:29 $\to$ 00:59:20
* 法院的判例已讓人們注意到,他們應該關注一下 Microsoft 之外的選擇,可能 Microsoft 不是所謂的「美國夢」,對於這種轉變,可清楚地發現一般大眾仍將 Microsoft 視為理所當然的選擇。
* Microsoft 用 Linux 當作擋箭牌,宣稱自己並沒有壟斷市場,因為 Linux 可有效地將他們從龍頭的位置拉下來,這是非常聰明的論點,但完全無法對他們以往從事的壓迫、反對競爭的活動指控作出解釋。
* 最後,法官並不接受 Microsoft 的說詞。
「反托拉斯」(antitrust) 最初意思是「反壟斷」(antimonopoly),始於美國石油大王洛克菲勒 (John D. Rockefeller) 在 1882 年聯合 40 家相關的企業,集體信託給「標準石油托拉斯」(Standard Oil Trust) 來統籌管理業務,經由聯合管理達成拉抬或控制價格的目的,當時引起一窩蜂的跟風,其他行業仿效聯合並信託的風氣盛行,事態演變成不當壟斷的現象。
美國政府為導正此歪風,於 1890 年 通過鼎鼎有名的休爾曼法 (Sherman Act)。「標準石油托拉斯」(Standard Oil Trust) 隨後被美國政府起訴,且於 1911 年宣告解散,「反壟斷」稱為「反托拉斯」於焉開始,即是在對抗藉「聯合信託」以行使不當之商業壟斷。
現今美國與反壟斷相關的競爭法,籠統稱之為「反托拉斯法」([Antitrust laws](https://en.wikipedia.org/wiki/United_States_antitrust_law)),通過的相關法案,包含以下:
* 1890 年休爾曼法 (Sherman Act)
* 1914 年克萊頓法 (Clayton Act)
* 1914 年聯邦貿易委員會法 (The Federal Trade Commission Act)
* 1936 年羅賓遜-帕特曼法 (Robinson-Patman Act)
* 1950 年賽勒-凱福維爾法 (Celler-Kefauver Act)
## Free Software vs Communist / Capitalism (共產/資本主義)
- [ ] 影片時間:01:03:50 $\to$ 01:04:19
* 摘錄: 「因為你追求共享,是為了人們的理想而奮鬥,這樣看起來不是有點共產主義嗎?『一派胡言,聽了真讓人生氣』在 1989 年時,說我們是共產主義還算是恭維,人們當時用的詞是「瘋狂」,而我希望他們用「資本主義」這個詞。共產主義是強迫他人共享的意識形態,如果你不共享,你就會被關入監獄或者被殺掉。」
* **麥卡錫主義 (McCarthyism**): 不少美國人被指為共產黨人或同情共產主義者,被迫在政府或私營部門、委員會等地接受不恰當的調查和審問。被懷疑的主要對象是政府僱員、好萊塢娛樂界從業人士、教育界、工會成員。雖然沒有足夠證據能證明任何事實,但嫌疑人依然被定罪,而個人的真實或可疑的左派組織或信仰都被大肆誇張。儘管隔相當長的時間,Free Software 在 1980 年代還是會被扣上共產主義的帽子
- [ ] 影片時間: 01:05:16 $\to$ 01:06:09
* 摘錄: 「開放原始碼不是共產主義的原因是,它並不強迫別人加入。馬克思不會發明東西來幫助你的鄰居。不是共產主義才有公共財的概念,早在共產主義成為政治哲學前,公共財就已存在。生活中就有很多是公共財,例如我們常走的高速公路就是我們的公共財。」
* 軟體作為「公共財」,比作為「智慧財產」的歷史還早很多。事實上,所謂的「公共財」是能夠營利的,一如公路建設。怎麼作呢?有過路費、違規罰單、還有廠商回饋金等等手段。Bill Gates 的論點在於將軟體這個原本是近乎公共財的存在形式,轉化為具體的財產,也就是直接對「智慧」收費。
* 21 世紀的獲利方式通常都不直接,絕對不是直接販售軟體,我們常見的搜尋引擎、即時通訊軟體,甚至手機遊戲都不是這樣,甚至其中還有頗多本來就使用大量開放原始碼技術,但不影響其獲利。重點是事業體系、生態系統能創造現金流,這樣就能支付工程師開發軟體,無論是開放原始碼或封閉原始碼都是。
* 這樣的案例就像是 Intel, Google, IBM,或者 Linaro 等公司,本身都支付工程師開發開放原始碼軟體的薪資,甚至購買相關的專利,確保這些公司重視的開發原始碼技術能夠以某種公共財的形式,強化產業的影響力,從而讓公司獲利,無論來自更多的晶片銷售、廣告收益、技術顧問服務,或是更完整的 Arm 生態系統 (Linaro 的模式,讓主要的晶片供應商付費)
* 換言之,以開放原始碼獲利的前提很明顯,就是先要有個具有特色的商業利基點,然後透過開放原始碼降低開發成本、增加影響力,或者培養社群參與等等。
* 反過來說,如果你的公司只能靠著販賣單一私有軟體獲利,這樣的利基點太弱,倘若原始程式碼洩漏,或者市場有開放原始碼軟體的解決方案,你的公司就會受到很大的挑戰。
* 延伸閱讀: [開放原始碼專案獲利指引](https://github.com/jserv/lemonade-stand)
## [Linus Torvalds](https://en.wikipedia.org/wiki/Linus_Torvalds) 家庭成員與 Linux 核心程式碼
- [ ] 影片時間: 00:37:53 $\to$ 00:38:03
- 摘錄: 「我最小的女兒有美國跟芬蘭的雙重國籍,她是在這裡 (美國) 出生的,大女兒會講瑞典話跟英語」
* 標頭檔 [include/uapi/linux/reboot.h](https://github.com/torvalds/linux/blob/master/include/uapi/linux/reboot.h) 之中,有以下定義
* `LINUX_REBOOT_MAGIC2` = 672274793
* `LINUX_REBOOT_MAGIC2A` = 85072278 (Linux v2.1.17 追加)
* `LINUX_REBOOT_MAGIC2B` = 369367448 (Linux v2.1.97 追加)
* `LINUX_REBOOT_MAGIC2C` = 537993216 (Linux v2.5.71 追加)
- 當把定義中的十六進位轉換成某些值時
* `LINUX_REBOOT_MAGIC2` = 672274793 十六進位表示法:
```shell
$ printf "%x\n" 672274793
28121969
```
* 稍微作切割,就是 28/12/1969,也就是 Linus Torvalds 生日的 DD/MM/YYYY 寫法。也可以這樣解讀:
```shell
$ perl -e ’print localtime(672274793). "\n";’
Mon Apr 22 06:59:53 1991
```
:::info
1991 年 4 月 22 日大致是 Linus Torvalds 當年在赫爾辛基大學撰寫 Linux 核心的日期
:::
* `LINUX_REBOOT_MAGIC2A` = 85072278 的十六進位表示法:
```shell
$ printf "%x\n" 85072278
5121996
```
:::info
可得知日期是 1996 年 12 月 5 日,這天是 Linus 千金 Patricia Miranda Torvalds 出生的日子,也被稱為 "Linus v2.0"
:::
* 同理可推論下個數值 `LINUX_REBOOT_MAGIC2B` = 369367448 的十六進位表示法:
```shell
$ printf "%x\n" 369367448
16041998
```
:::info
日期 1998 年 4 月 16 日,也就是二千金 Daniela Yolanda Torvalds,或 "Linus 3.0" 誕生的日子
:::
* `LINUX_REBOOT_MAGIC2C` = 537993216 十六進位表示法:
```shell
$ printf "%x\n" 537993216
20112000
```
:::info
小女兒 Celeste Amanda Torvalds 誕生於 2000 年 11 月 20 日
:::
- 芬蘭人的瑞典語族群
- 1808 年 2 月至 1809 年 9 月,瑞典帝國和俄羅斯帝國發生戰爭,最後瑞典戰敗,割讓其東部三成的土地給俄羅斯,成為芬蘭大公國,亦即大致是今日芬蘭的疆域,不過瑞典文化的影響仍在芬蘭存在,在芬蘭,約有 5% 到 10% 的人口使用瑞典語作母語。同時,芬蘭語和瑞典語都是芬蘭的官方語言。Linus Torvalds 的母語就是瑞典語。此外,芬蘭還有一個政黨 [SFP](https://sfp.fi/en/),代表瑞典語母語者的利益。
- Linus Torvalds 的雙親是芬蘭瑞典族人。Linus 的父親 [Nils Torvalds](https://sfp.fi/en/contact-information/person/nils-torvalds/) 是記者和議員,2017 年,受瑞典族人民黨推舉為總統參選人,隔年第一輪選舉得到 1.5% 選票。Linus 的外祖父是著名的芬蘭瑞典族人 Leo Törnqvist,是芬蘭第一位統計學家,Linus 的祖父是著名詩人兼記者 Ole Torvalds。
- 1997 年,Linus Torvalds 離開赫爾辛基,前往美國加州,受僱於 Transmeta 公司,首度全職投入 Linux 核心開發。在此之前,他在赫爾辛基大學作為研究生,擔任教學工作,也因講課而認識同校的妻子 Tove Torvalds,後者是六屆芬蘭空手道全國冠軍。Linus Torvalds 賢伉儷自 2010 年起,成為美國公民,不過他們仍會回母校赫爾辛基大學演講和交流。
- 芬蘭國防軍採用著徵兵制,年滿 18 歲的男性需服一年兵役,1990 年秋天,服完兵役的 Linus 回到大學繼續學業,選修 C 語言和 UNIX 程式設計,並廣泛研究起多項作業系統的原理。
- 延伸閱讀: [The early days of Linux](https://lwn.net/Articles/928581/)
## The Free Software Song
- [ ] 影片時間:01:21:27 $\to$ 01:24:08
- 影片來源: [The Free Software Song](https://youtu.be/xSkCny-HtTw)
{%youtube xSkCny-HtTw %}
- [歌詞原文](https://www.gnu.org/music/free-software-song.html)
> _Join us now and share the software;_
> _You’ll be free, [hackers](https://stallman.org/articles/on-hacking.html), you'll be free._
> _Join us now and share the software;_
> _You’ll be free, hackers, you’ll be free._
> _Hoarders can get piles of money,_
> _That is true, hackers, that is true._
> _But they cannot help their neighbors;_
> _That’s not good, hackers, that’s not good._
> _When we have enough free software_
> _At our call, hackers, at our call,_
> _We’ll kick out those dirty licenses_
> _Ever more, hackers, ever more._
> _Join us now and share the software;_
> _You’ll be free, hackers, you’ll be free._
> _Join us now and share the software;_
> _You’ll be free, hackers, you’ll be free._
## 女性的 Hacker 在哪?
- 一位研究生問道:
> 「影片結束後,我內心中最大的問題是為什麼影片中幾乎沒有女生?難道在那個時期就沒有很厲害的女生黑客嗎?」
- 我們可對照看一段故事,在 GNU 網站中,探討關於 GNU Hurd 的命名時,提到以下: [The GNU Project](https://www.gnu.org/gnu/thegnuproject.html)
> The GNU kernel was not originally supposed to be called the Hurd. Its original name was Alix—named after the woman who was my sweetheart at the time. She, a Unix system administrator, had pointed out how her name would fit a common naming pattern for Unix system versions; as a joke, she told her friends, ’Someone should name a kernel after me.’ I said nothing, but decided to surprise her with a kernel named Alix.
* 原來 Richard Stallman 曾經為了當時摯愛的女性 —— 名為 Alix 的 UNIX 系統管理員 —— 而考慮將 GNU 的核心以 Alix 命名
* 至少可見,那個時代一定有厲害的女性開發者,只是光芒被掩蓋
## 大家來找碴
- [ ] 影片時間: 00:13:34
* 影片展示 [GLib](https://en.wikipedia.org/wiki/GLib) 的程式碼:GLib 1.1 版,發布於 1998 年 9 月 12 日
- [ ] 影片時間: 00:15:29
* 這兩隻動物有何典故?
* 如同 [ 00:27:41 ] 也出現過,就是 gnu 這個名詞的原意「[牛羚](https://en.wikipedia.org/wiki/Wildebeest)」
- [ ] 影片時間: 00:53:25
* 談論 Oracle,影片中的建築物就是 Oracle 總部
- [ ] 影片時間: 00:13:37
* 為什麼以前的顯示器/雷達都是黑底綠字? 是因為人眼對綠光最敏感嗎?
* 「古代」顯示器亮度不足,而人眼對於綠光又最敏感,所以普遍採用綠色的螢光粉末。
![](https://hackmd.io/_uploads/SkaEmqTkT.png)
> [圖片出處](https://en.wikipedia.org/wiki/Besta_%28computer%29)
* 不光是顯示器,很多古舊的類比示波器之類,也是綠色。
![](https://hackmd.io/_uploads/S1XUz5p1T.png)
> [圖片出處](https://bbs.pigoo.com/thread-32529-1-1.html)
* 相關論文: [平板電腦螢幕色彩組合在全暗空間中對視認性與視覺疲勞之關聯](https://ndltd.ncl.edu.tw/cgi-bin/gs32/gsweb.cgi/login?o=dnclcdr&s=id=%22101TIT05719032%22.&searchmode=basic)
- [ ] 影片時間: 01:06:46
* 為什麼這裡提及 Linux,會說 Linus 是 gay 呢?
* 歐美文化中,gay 有「自戀」的暗喻意思
- [ ] 影片時間: 00:01:45
* 出現名為《[UPSIDE](https://en.wikipedia.org/wiki/Upside_(magazine))》的雜誌,標題是 _The Linux Threat_,該期雜誌提到一本書《[The Plot to Get Bill Gates](https://www.amazon.com/The-Plot-Get-Bill-Gates/dp/0812930061)》
![](https://hackmd.io/_uploads/Hk73mDlep.png)
* 影片時間 00:48:25
* Richard Stallman 演講時穿的衣服跟接受 Revolution OS 訪談穿的衣服一樣,果然是阿宅本性,在正式場合能穿的衣服都是那幾件
- [ ] 影片時間: 37:00
* 出現的 "Kleiner Perkins Caufield & Byers" (KPCB,後改稱 [Kleiner Perkins](https://en.wikipedia.org/wiki/Kleiner_Perkins)) 是間位於美國矽谷的風險投資公司,曾投資過 Netscape, Sun Microsystems, Google 等公司
![](https://hackmd.io/_uploads/H1VtVPgga.png)
- [ ] 影片時間: 00:45:48
* Mountain view (山景市) 是孕育若干開放原始碼專案的溫床
* Google 總部 [Googleplex](https://en.wikipedia.org/wiki/Googleplex) 所在地
* [Paypal](https://en.wikipedia.org/wiki/PayPal) 創始人之一的 [Peter Thiel](https://en.wikipedia.org/wiki/Peter_Thiel) 喜歡去那邊吃午餐
> 出處:Peter Thiel 撰寫的《[Zero to One](https://en.wikipedia.org/wiki/Zero_to_One)》
- [ ] 影片時間: 00:11:36
* Richard Stallman 發到新聞群組的一封信,`From` 之後帶許多`!` 的字串該如何解讀?
![](https://hackmd.io/_uploads/B1WI_uxg6.png)
* 這是 uucp routing address,可參考 Wikipedia: [UUCP](https://en.wikipedia.org/wiki/UUCP) 的說明
- [ ] 影片時間: 1:11:04
- 看到有個人囂張地摳腳,後面他也有出來說話。原來這位 [Rob Malda](https://en.wikipedia.org/wiki/Rob_Malda) 是 [Slashdot](https://slashdot.org/) 的創辦人
- 這部影片兩度引用 Slashdot 裡的文章
* 影片中所出現的教堂
- 曾毅同學發信詢問,不過拍片的 J. T. S. Moore 忘記是在哪裡拍攝
![](https://hackmd.io/_uploads/S1zw__elp.png)
## 待整理
* [History of Unix and Linux](https://github.com/jhajek/Linux-text-book-part-1/blob/master/Chapter-02/chapter-02.md)
* [7th Edition Unix at 40](https://2019.eurobsdcon.org/slides/7th%20Edition%20Unix%20at%2040%20-%20Warner%20Losh.pdf) / [video](https://youtu.be/FTlzaDgzPY8)
* [Transcending POSIX: The End of an Era?](https://www.usenix.org/publications/loginonline/transcending-posix-end-era)