Try   HackMD

2025-01-19 課程簡記

2024 年「資訊科技產業專案設計」課程補課

The Evolution of the Operating System

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
繁體中文字幕品質不佳,之後授課教師會貢獻調整過的版本

影片解說:

  • 時間軸 05:31: 並行和多執行緒程式設計
  • 時間軸 08:02: Multics,參照 從 Multics 到雲端作業系統:淺談系統程式發展和新機會
  • 時間軸: 11:13: Intel 在 1973 年發表後繼的 8008 微處理器,隔年發表 8080 微處理器。參照 Another 50th #birthday #CPU
  • 時間軸: 11:34: 已故資訊科技先驅 Gary Kildall 博士曾說過:"You need to study other people's work. Their approaches to problem solving and the tools they use give you a fresh way to look at your work."
    這句話很值得省思,不是因為有多深奧,反而是聽起來很簡單,但做起來格外困難。在 1970 年代初期,那個 UNIX 和工作站主導科技發展的年代,Gary Kildall 博士看見微處理器的未來,並與當時仍不成氣候的 Intel 合作,1972 年,他針對微處理發展 PL/M 高階程式語言,該語言比 C 語言高階,也早了一年發表。
    Intel 8008 為世界上首款 8-bit CPU,有兩種運作時脈: 0.5 Mhz 和 0.8 Mhz,甚至比該公司推出的全球首款微處理器 4004 的工作時脈還低,但相較後者的 4-bit,所以整體效能要比 4004 好。Intel 8008 可支援到 16KB 的記憶體,原本是 Intel 為 Computer Terminal Corporation (CTC) 的 Datapoint 2200 所製造的微處理器 (原本編號為 Intel 1201),但因交貨延遲而效能又比原本宣稱的差,所以慘遭退貨,不過 CTC 允許 Intel 將 8008 出售給其他客戶。
    如今,我們很難想到,顯赫的 Intel 過去也有這麼艱辛的日子:被日本廠商夾殺,忍痛放棄公司主要的記憶體業務,轉向一個未知的微處理機領域,又慘遭大客戶退貨,只好頻頻調整業務和市場定位。
    Gary Kildall 博士當然不是不知道這些狀況,1970 年代初期,Multics 計畫以失敗作收,而 UNIX 正在崛起,全球半導體也邁向穩定成長。除了 PL/M,他發展了改變個人電腦命運的 CP/M 作業系統,在 1973 年,這使得 Intel 8080 微處理器可控制軟碟機並透過一系列演算法 (read-ahead algorithms, file directory caches, and RAM disk),能有效存取資料,而 Intel 沒看到這方面的市場價值。於是 Kildall 夫婦創立日後知名的 Digital Research, Inc,以銷售 CP/M 作業系統。
    同時,Gary Kildall 博士也是 BIOS 概念的創立者,使得 CP/M 和後繼的 DOS 得以在各式微型電腦上運作,而不用到處修改。1981 年,CP/M 成功地運作於 3000 款硬體上,並創造 540 萬美元的年營收。後面的故事,可能大家猜得到,就是 IBM 和 Microsoft 聯手改變個人電腦的命運。要注意的是,MS-DOS 幾乎完全以 CP/M 為藍圖來設計,前者的前 26 個系統呼叫就跟後者是一致的,相關的 API 也仿造 CP/M 來實作,以至於後續 IBM 和 Digital Research, Inc. 有一系列的法律舉動。
    儘管 1980 年代,Digital Research, Inc. 錯估情勢,1991 年 Novell 收購該公司,許多成果走入歷史。但毋庸置疑的是,Gary Kildall 博士不僅是微處理器領域的先驅,還引導真正的多工處理、圖形使用者界面、程式語言和編譯器,甚至包含公共電視節目、百科全書,和電話通訊系統。
    在 Gary Kildall 博士過世後,Bill Gates 評論道: "one of the original pioneers of the PC revolution and a very creative computer scientist who did excellent work. Although we were competitors, I always had tremendous respect for his contributions to the PC industry."
    1969 年夏季,日本 Busicom 公司要求 Intel 公司製造一套矽晶片,以供其計畫中的高性能及可程式化的計算器使用。1971 年,Intel 利用 PMOS 技術完成 4 個晶片,取名為 MCS-4,這 4 只 LSI 的編號分別為 Intel 4001 (ROM)、4002 (RAM)、4003 (10位元的移位暫存器)、4004。4004 則是只包含 4-bit 平行加法器 (Parallel Adder)、累積器 (Accumulator)、堆疊器 (Stack)、還有 16 個 4 位元的暫存器的中央處理器,隨著 IC 外部提供的指令碼,4004 可做出算術、邏輯等運算,所有運算的指令及資料都可由寫在記憶體中的程式來支配。MCS-4 不但降低了 Busicom 計算器的成本,成為史上第一台微電腦系統,而 Intel 4004 因而成了史上第一款 microprocessor。
    在 Intel 受理 Busicom 委託開發的同年,美國專門製造智慧型終端機 Datapoint 公司委託 Intel 和 TI 這兩間公司來設計一個非常基礎的 CPU,希望將此電路製作在單一的晶片上。後來 Intel 公司成功,但速度卻較 Datapoint 公司的要求幾乎慢 10 倍,Datapoint 公司拒絕該產品,Intel 只好自行研究改良後,於 1972 年 4 月公開上市,宣佈為 Intel 8008,但這對市場的衝擊有限,因為功能太受限。Intel 再接再厲,於 1974 年推出了強化版本的微處理機 8080,工作速度為 2MHz,具備 7組 8-bit 暫存器,64K 的記憶定址空間,加以寬廣的指令集。至此,微處理器的市場因為 Intel 8080 的存在而起飛
  • 時間軸: 14:53: Bill Gates 的母親與 IBM 執行長 John Opel 共同擔任非營利組織 United Way 的聯合主席。參見: Remembering Mike Maples, Sr.
  • 時間軸: 15:29: 於是 Gates 從一家當地電腦製造商購買 QDOS。980 年,美國西雅圖上映一幕決定科技產業未來數十年格局的會議:Microsoft 的年輕主席比爾·蓋茲,帶著皺巴巴的西裝走進 IBM 的會議室。儘管他的裝扮與對方一眾穿著得體律師們形成鮮明對比,但這不影響談判的結果。最終,IBM 與 Microsoft 達成協議,前者以約 8 萬美元的一次性費用,購得 MS-DOS 的永久授權,同時也取得 Microsoft BASIC 語言的授權。然而,比爾·蓋茲的高瞻遠矚並未止步於此,他保留將 DOS 授權給其他公司的權利。這一策略為微軟日後的成功奠定了基石。
    Microsoft 原本並沒有自己開發的作業系統,在 IBM 公司談判的前一年,還跟 AT&T 授權 UNIX,成為日後廣為在微電腦運作的 Xenix。Microsoft 最初只是 IBM 的代辦人,將其引導至 Digital Research 商討授權 CP/M 系統。然而,Digital Research 的律師拒絕簽署保密協議,導致談判破裂。比爾·蓋茲見此情況,果斷向西雅圖電腦公司購買由 Tim Paterson 開發的 QDOS(Quick and Dirty Operating System)。微軟稍作修改,將其改名為 MS-DOS,並成功交付給 IBM,讓首款 IBM PC 如期上市。
    MS-DOS 的成功讓 Microsoft 一舉成名,但比爾·蓋茲的真正聰明之處在於,他抓住市場中的增長機會,將 DOS 授權給其他 PC 製造商,從而成為眾多 IBM PC 相容機型 (即仿製品) 時代不可或缺的軟體供應商。在 Intel 推出 286、386 等新型處理器後,微軟逐步改進 MS-DOS,並開始涉足圖形介面的開發。
    隨著市場對圖形使用者介面的需求增加,Microsoft 於 1985 年推出第一版 Windows。然而,Windows 1.0 無論在功能還是效能上都顯得捉襟見肘,未能獲得廣泛認可。Microsoft 並未因此氣餒,而是持續改進,於 1990 年推出革命性的 Windows 3.0。這版不僅擁有吸引人的圖形介面,還支援虛擬 8086 模式,使得 DOS 應用程式能夠與 Windows 同時運行。Windows 3.0 一經推出便大受歡迎,成為 Microsoft 征服個人電腦市場的利器。
    Microsoft 的成功並非僅靠技術本身。在市場策略上,微軟積極與 IBM PC 相容電腦製造商合作,提供優惠的 Windows 授權方案,確保其作業系統在每台新電腦中成為標配。同時,微軟也積極開發應用軟體,如 Word、Excel 和 PowerPoint,進一步鞏固其生態系統。
    OS/2 的開發初期是 IBM 與微軟合作的產物。IBM 希望藉由 OS/2 建立一個無法輕易被複製的生態系統,並以此重新掌控個人電腦市場。然而,隨著 Windows 的成功,微軟逐漸認識到自己的獨立發展潛力。雙方在技術方向和市場策略上的分歧最終導致合作破裂。
    1990 年,微軟與 IBM 分道揚鑣。IBM 繼續開發 OS/2 2.0,嘗試進一步推進 32 位元技術;而微軟則專注於 Windows 的改進,並開始著手開發 Windows NT 系列,旨在提供工業級穩定性與多平台支援。
    1994 年,IBM 推出 OS/2 Warp,這是其進一步挑戰 Windows 95 的希望所在。OS/2 Warp 引入許多創新特性,包括高效的多工處理和 Windows 3.1 相容子系統,以允許 16 位元 Windows 應用程式直接運作在 OS/2 Warp 上。然而,Windows 95 在使用者體驗和市場滲透率上的表現遠超 OS/2,成為壓倒性勝利者。
    OS/2 Warp 指 OS/2 3.0 與 4.0。OS/2 3.0 於 1994 於 Windows 95 推出前發表,OS/2 4.0 是 1996 推出,當時的硬體價格相當高昂,能順暢運作的基本需求是個硬傷,這個分道揚鑣前的合作讓微軟獲得許多進階系統的技術,當然除了 OS/2 本身運作的高門檻外,IBM 內部還有大型主機與個人電腦的各種矛盾。Windows 95 不僅改善圖形介面,還加入許多實用功能,如即插即用和使用者友好的操作邏輯。同時,Microsoft 繼續與電腦製造商緊密合作,使其作業系統成為業界標準。而 OS/2 的高硬體需求和有限的應用程式生態,成為其推廣的最大障礙。
    OS/2 的失敗是一場巨人與新興力量的較量。IBM 雖擁有龐大的資源和技術實力,但其內部的目標矛盾與策略錯誤,使其錯失了關鍵機遇。相較之下,微軟以靈活的市場策略和對未來技術的敏銳洞察,迅速崛起並主導了個人電腦市場。這段歷史不僅是兩家公司的興衰記錄,更是一個時代的縮影。參見: Half an operating system: The triumph and tragedy of OS/2
  • 時間軸 16:22: VisiCalc 帶動 Apple II 個人電腦的銷售,其後的 Lotus 1-2-3 一度壟斷個人電腦的電子試算表市場。在 IBM 還以「藍色巨人」姿態稱霸電腦產業的時代,Lotus 1-2-3 是 IBM PC (及其「相容」電腦) 的殺手級應用程式,當時和 dBase 和 WordPerfect 等軟體視為必備程式。

透過 Linux 核心重新認識數位化世界: 藉由 Dominic Walliman 製作的〈Map of Computer Science〉短片,探討電腦科學的多個面向,諸如電腦網路、圖形處理、抽象機器及理論 (如Turing machine)、NP-Complete 問題、計算機架構、排序演算法、資料壓縮、現代密碼學、形式化方法、作業系統排程、異質多核運算、編譯器,和程式語言,來回顧今日的 Linux 核心 ── 電腦科學的子學科幾乎都可反映在 Linux 核心中。

解說錄影

slides: Operating System 101: The Evolution of Operating Systems

有鑑於部分教材對於作業系統概念的描述過於拘泥某些過時細節 (惡名昭彰的案例就是恐龍書,書越來越厚,但讀者反而無所適從),授課教師整理一份簡報,搭配計算機結構課程使用,不過內容應該足夠通用,日後學習 Linux 核心或 RTOS 也有助益。〈Introduction to Operating Systems〉簡報從並行 (concurrency) 出發,介紹作業系統以下關鍵主題:

  • System Calls → protection, API/ABI, wrapper function, bootstrapping
  • Emulation vs. Virtualization → interpretation is slow
  • Hypervisor → context switch, CPU virtualization
  • Memory Management → address space/translation, memory virtualization, paging
  • Process Management → process lifecycle, threads (race condition, mutual exclusion, concurrent data structures, false sharing)

從 Revolution OS 看作業系統生態變化

Linux

笑話改編:有天女孩問男孩 ABCDEFG 是什麼意思?男孩回答:

A boy can do everything for girls
(一個男孩可以為女孩做任何事情)

人們告訴女孩後面還有 HIJK:

He is just kidding
(他只是在開玩笑)

女孩說這沒關係,因為後面還有 LMNOP:

Linux must observe patience.

看漫畫學 Linux

Linux 核心設計: 作業系統術語及概念

US
技術 : 工程 : 貿易
(開端) (成本風險管理) : (賺錢營運)

TW
貿易 -> 工程 -> 技術
(不計手段) (cost down; QA) (提升產業)

過去幾十年,台灣許多廠商靠著縫隙中的利基市場,撐起了一片天,諸如「參考」Apple II 起家的 Acer,或是將「規模經濟」應用於代工產業而達到空前規模的 Foxconn ,但這些廠商始終知道得轉型,而且不得不以最快的速度進行。