1964 年,由美國通用電氣公司和麻省理工學院發起了一個合資專案,該專案旨在開發一套能執行在 GE-645 等大型主機之上的多使用者、多工的分時作業系統,簡稱 MULTICS。
1965 年,貝爾實驗室派出開發人員 KenThompson 等也加入了該專案,雖然專案期間發布了一些版本的 MULTICS 產品,但由於執行效能較差,1969 年該專案以失敗告終。
由於 KenThompson 酷愛遊戲及遊戲程式設計,他在專案 MULTICS 期間編寫了一款名叫“星際旅行”(Startravel)的遊戲,並執行在該 MULTICS 系統上,但執行速度非常慢,且耗費昂貴。
1969 年 MULTICS 專案宣告失敗後,KenThompson 沒有放棄其遊戲的夢想,他在貝爾實驗室的庫房中,找到一台閒置的 PDP-7 裸機,但由於缺少作業系統,無法在該 PDP-7 上執行其遊戲。在 DennisRitchie 的幫助下,他使用組合語言為該 PDP-7 編寫了一個作業系統雛形,並把其遊戲成功執行在了該作業系統之上。該作業系統體現出了很多優勢,受 MULTICS 專案開發經驗的啟發, DennisRitchie 和 KenThompson 在該遊戲作業系統雛形的基礎上,進一步完善和開發新功能,最終於 1970 年開發出了一款新的多使用者、多工作業系統,稱為
UNIX 作業系統。
綜上所述,1969—1970 年,美國貝爾實驗室的 KenThompson 和 DennisRitchie 等使用組合語言編寫了第一個版本的 UNIX 作業系統。
UNIX的改進與C語言的起源
由於 UNIX 作業系統良好的效能,在其發布初期,就得到迅速的推廣和應用。1973 年,KenThompson 和 DennisRitchie 在做系統核心移植開發時,感覺使用組合語言很難實現。後來決定使用一種稱為 BCPL(BasicCombinedProgrammingLanguage) 的語言進行開發,在開發過程中,他們在 BCPL 的基礎上做了進一步的改進,推出了 B 語言(取 BCPL 第一個字母)。
後來發現使用 B 語言開發的 UNIX 核心,還是無法達到他們的預期要求,於是在 B 語言的基礎上,做了進一步的改進,設計出了具有豐富的資料型別,並支援大量運算子的程式語言。改進後的語言較B語言有質的飛躍,取名為 C 語言,並使用 C 語言成功重新編寫了 UNIX核心。
至此,使用 C 語言編寫核心的 UNIX 版本已相當穩定,且具有良好的可移植性,為 UNIX 的進一步推廣和普及奠定了堅實的基礎,也展現了 C 語言與 UNIX 的完美結合及 C 語言在編寫系統軟體時得天獨厚的優勢。
由此可見,C 語言的起源與UNIX的改進是密不可分的,也體現了 C 語言在編寫系統軟體時的優勢。