1964 - System/360 與 OS/360(相容性家族與《人月神話》)#
案件摘要#
1964 年 4 月,IBM 發布 System/360——史上第一個「相容性電腦家族」: 從小型到大型機,全部執行同一套指令集與同一個作業系統 OS/360。 同時,Frederick Brooks 的管理日記在 1975 年成書《人月神話》—— 軟體工程的第一次大規模實驗:5000 人年、500 萬行程式碼的巨型專案,教訓至今無人能繞過。
前因 -- 為什麼會有這個案子#
- 相容性的商業命案:1960 年代 IBM 有多條不相容的產品線(1401、7090、7030)——客戶換機器就要重寫所有程式。客戶鎖定在舊機,競爭者(如 CDC)趁虛而入。
- Brooks 的偵探直覺:時任 IBM 產品線經理的 Brooks 接受「賭上公司」的決策——統一指令集 + 統一 OS,讓客戶只需寫一次程式。
- 軟體危機的預言:OS/360 的開發遠超預期(預算 4 倍、延遲數年),Brooks 事後寫下經典定律——軟體工程的誕生。
線索與推理 -- 數學式、程式、理論#
第一條線索:指令集架構 (ISA) 的抽象#
System/360 的關鍵發明:架構 (architecture) 與實作 (implementation) 的分離:
\[ \text{ISA(指令集)} = \text{契約}, \qquad \text{硬體} = \text{任一實作}. \]
同樣的程式碼在 360/30(廉價)到 360/195(超級)都能跑——軟體資產的保值。 這個「介面與實作分離」的思想,是電腦科學最重要的抽象之一(從 ISA 到 TCP/IP 到 API)。
第二條線索:Brooks 定律(人月神話)#
向延遲的專案加人,只會更延遲:
\[ \text{溝通成本} \propto \frac{n(n-1)}{2} \quad \Longrightarrow\quad n \text{ 加倍,溝通成本翻 3 倍多}. \]
Brooks 的三大教訓: 1. Brooks 定律:加人不會加速——溝通成本爆炸。 2. 外科手術團隊:小型精英團隊 + 大量支援者,勝過人人平等的民主團隊。 3. 第二系統效應:第二個系統最危險——設計師會把所有「聰明想法」塞進去,過度設計。
第三條線索:軟體複雜度的數學#
Brooks 指出軟體複雜度是本質的(essential)而非偶然的:
\[ \text{複雜度} = \text{本質複雜度} + \text{偶然複雜度}. \]
工具與語言只能削減偶然複雜度——本質複雜度(問題本身的複雜)無法繞過。這個區分成為軟體工程的哲學基礎。
Python:Brooks 定律的模擬#
import numpy as np
def project_time(work_units, n_people, comm_overhead=0.01):
# 有效生產力 = n 人 - 溝通損耗 C(n,2) 比例
comm_loss = comm_overhead * n_people * (n_people-1) / 2
efficiency = max(1 - comm_loss / work_units, 0.05)
return work_units / (n_people * efficiency)
work = 1000 # 1000 人月的本質工作量
for n in [5, 10, 20, 50, 100]:
print(f"{n:4d} 人 → 專案時間 {project_time(work, n):6.1f} 人月")
5 人 → 專案時間 200.2 人月
10 人 → 專案時間 100.7 人月
20 人 → 專案時間 57.6 人月
50 人 → 專案時間 52.1 人月
100 人 → 專案時間 51.1 人月
結案 -- 後果與影響#
- System/360 的商業勝利:IBM 成為 1960–80 年代的電腦之王;360 架構的後裔(z/Architecture)至今仍在大型主機上執行——60 年的相容性。
- OS/360 的教訓成書:Brooks《人月神話》(1975) 成為軟體工程聖經——Brooks 獲 1999 年圖靈獎。
- 軟體工程誕生:1968 年 NATO 會議正式命名「軟體工程」——「軟體危機」的正式承認。
- 抽象的分離思想:ISA 與實作的分離,成為電腦科學的通用範式——從硬體到作業系統(系統呼叫介面)到網路協定。
- 歷史定位:System/360 是「家族式設計」的開端;OS/360 是「巨型專案」的教科書案例——勝利與教訓同時誕生。
關鍵人物與文獻#
- F. P. Brooks, Jr.:《The Mythical Man-Month》(1975);《No Silver Bullet》(1986);1999 圖靈獎。
- IBM:System/360 (1964)、OS/360 (1966)。
- Amdahl / Blaauw / Brooks:360 架構論文 (1964)。
- 相關案件:
1961-CTSS分時系統.md、1965-Multics公用電腦.md。