1969:UNIX 問世#
事件#
1969 年,貝爾實驗室的 Ken Thompson、Dennis Ritchie 等人因退出 Multics 計畫,在一台閒置的 PDP-7 上創造了 UNIX——一個以「小事處理」(do one thing well)哲學為核心的作業系統。UNIX 繼承了 Multics 的 shell 概念,並將其簡化到極致。
概念的理論與實用原因#
1. 檔案系統萬物歸一#
- 理論原因:「一切皆檔案」(everything is a file)——裝置、目錄、行程資訊都以檔案介面存取。
- 實用原因:shell 只需學會一種操作(讀寫檔案),就能操作整個系統。
- 彌補缺陷:每種裝置各有專屬指令與介面的混亂。
2. 小工具組合哲學#
- 理論原因:程式只做一件事、用文字(後來確立)作為通用介面、以程式組合程式。
- 實用原因:shell 的存在價值正是「組合」——這讓 shell script 天生就是膠水語言。
3. Thompson Shell(1971)的前置#
- UNIX 最初的 shell 由 Thompson 親自撰寫,1971 年正式發佈,成為第一代
sh。
程式範例:一切皆檔案與小工具組合#
# 「一切皆檔案」:裝置也是檔案,shell 只需讀寫檔案
cat /dev/tty # 讀終端機
date > /dev/lp # 輸出直接送印表機——不需專屬指令
# 小工具組合哲學:每支程式做好一件事,用檔案組合
who > tmp # 誰在線上 → 暫存檔
sort < tmp # 排序 → 讀暫存檔
rm tmp # 清理暫存檔
# 1973 年管線問世後,上面的組合變成一行(見 1973 篇):
who | sort
彌補了什麼缺陷#
彌補了 Multics 過於龐大複雜、無法在小型硬體上運作的缺陷;同時保留了「外殼與核心分離、腳本可重用」的精華。