MIT的CTSS:第一個分時操做系統shell
◼ Multics系統(Multiplexed Information and Computing System)架構
⚫ 1965年AT&T,MIT和GE的合做項目編輯器
⚫ 安裝在大型主機上的多用戶、交互式操做系統,支持300位以上的用戶聯機 使用函數
⚫ 這個系統不但開發週期長,成本高,並且龐大、緩慢,市場前景不被看好, 最終宣告失敗工具
◼ 曾經參與 Muitics 的貝爾實驗室的成員肯·湯普森(Ken Thompson) 因爲本身工做上的需求,性能
開發了一套主要用於文件存取的小型操做 系統Uniplexed Information and Computing System(UNICS)ui
◼ 以 DEC 公司的計算機 PDP-7 爲硬件基準,採用彙編語言開發操作系統
◼ 源於 Multics 系統,作了大幅度的簡化,主要包括文件子系統和進 程子系統 (其主要架構被UNIX/Linux沿用至今)開放源代碼
◼ 1973 年,貝爾實驗室的肯·湯普森、丹尼斯·利奇(Dennis Ritchie) 等人爲了提高UNICS系統的性能與兼容orm
性,採用高級語言對其進行 重構,並肯定該操做系統名稱爲UNIX,這就是最先的UNIX 操做 系統(
相對於Multics ,UNIX 具備單一的意思)
◼ C語言是UNIX的副產品!!
◼ 1974年,肯·湯普森、丹尼斯·利奇發表了著名論文「The UNIX Time Sharing System」 ,讓世人瞭解UNIX。
並向外發行免費拷貝, 開放源代碼
◼ 因爲UNIX是由工程師所主導開發的,並且使用者也大可能是工程師, 所以形成了UNIX 系統接
口(庫函數與API)較難被通常使用者接 受的狀況
◼AT&T貝爾實驗室
⚫版本排號:第1-7版,System Ⅱ,Ⅲ,Ⅳ,Ⅴ,例如:UNIX System V Release 4.2 (SVR4.2)
⚫現今的SCO UNIX ◼ 加州大學伯克利分校
⚫計算機系統研究小組(CSRG)的BSD UNIX(Berkeley Software Distributions)
⚫較有影響的版本:4.3BSD,FreeBSD
⚫工做站上的UNIX通常屬於這一流派
重要的UNIX分支:BSD UNIX
◼ 伯克利計算機系統研究小組對UNIX做出了許多重 要性的貢獻
⚫Vi編輯器
⚫虛擬存儲
⚫TCP/IP協議棧
⚫快速文件系統FFS
⚫可靠信號
⚫套接字
⚫……
◼80年代UNIX版本的劇增以及各類UNIX版本之間的差 別不斷擴大致使了以美國政府爲表明許多用戶要求對
其標準化,以加強各類應用程序在這些UNIX操做系統 之間的可移植性
◼重要的UNIX標準包括:ANSI C、IEEE POSIX等
◼UNIX標準只是對應用程序接口進行統一(內部實現機 制則留給操做系統開發者自行實現)
UNIX的標準化
◼ANSI C
⚫ANSI C是美國國家標準協會(ANSI)於1983年發佈的C語言標準
⚫1989年,此標準被採納爲國際標準ISO/IEC 9899:1990
⚫ISO C標準現旨在提供應用程序的可移植性,使其能適應於不一樣的操做系統 ,而不只僅是UNIX操做系統
◼POSIX
⚫1986年,IEEE制定了IEEE P1003標準,這套標準被稱爲POSIX(Potable Operating System Interface)
⚫POSIX定義了一整套的應用程序接口,包括系統調用、庫函數、公共命令
⚫POSIX標準但願在源代碼級別保證應用程序可移植性
UNIX的商業化
◼1977年到1982年,AT&T促使UNIX走上商業 化道路(收回版權,而且不公開源代碼)
◼1982年SUN公司發佈SunOS,這是基於 4.2BSD的UNIX變體, Solaris版本
◼微軟和SCO聯合發佈了XENIX
◼ UNIX的商業化讓許多 UNIX愛好者感到擔憂,包括了大名鼎鼎的理查 德·斯托曼先生(Richard M. Stallman )
◼ Stallman在 1983 年發起了 GNU計劃,GNU是「GNU‘s Not Unix」的遞歸 縮寫,其目標是建立一個徹底自由的類Unix操做系統,
GNU計劃也開發 了大批其餘的自由軟件,例如 Emacs 、Glibc、GCC、BASH等
◼ 1985年Stallman又創立了自由軟件基金會(Free Software Foundation) 來爲GNU計劃提供技術、法律以及財政支持
GNU計劃與Free Software Foundation
◼自由軟件並非指「免費」的,而是指具備「自由度」的軟件。什麼是 自由度呢?也就是使用者運行、複製、發佈、研究、修改和改進該軟件 的自由
◼GNU通用公共許可協議(GNU GPL)是一個普遍被使用的自由軟件許 可協議條款,最初由Stallman爲GNU計劃而撰寫,GPL授予程序接受人 如下權利,或稱「自由」:
⚫以任何目的運行此程序的自由;
⚫再發行復製件的自由;
⚫改進此程序,並公開發布改進的自由
Linux的誕生
◼1984年,由於UNIX規定「不能對學生提供源碼」,安德魯·斯圖爾 特·塔能鮑姆( Andrew Stuart Tanenbaum )本身編寫了兼容於UNIX 的Minix系統,用於教學
◼1991年,芬蘭郝爾辛基大學研究生林納斯·託瓦茲 (Linus Torvalds)受Minix系統影響,開發了針對386機器的Linux內核
◼1991年Linux的第一個版本公開發行時,GNU計劃已經完成除了操做 系統內核以外的大部分軟件(其中包括了shell程序,C語言程序庫以 及C語言編譯器)。
Linus Torvalds及其餘早期Linux開發人員加入了 這些工具,而完成了Linux操做系統
◼Linux是在GNU通用公共許可證下發行,它卻不是GNU計劃的一部分
Linux與UNIX的關係
◼ UNIX是能夠應用從大型計算機到普通PC機等多種不一樣的平臺上,是應用面 最廣、影響力最大的操做系統。
◼ Linux是一種外觀和性能與UNIX相同或更好的操做系統,但Linux不源於任 何版本的UNIX的源代碼,是一個相似於UNIX的產品
◼ Linux遵循POSIX規範,成功的模仿了UNIX系統和功能,更具體地講, Linux兼容於System V以及BSD UNIX:
◼ 對於System V,應用程序源代碼在Linux下從新編譯以後就能夠運行
◼ 對於BSD UNIX,應用程序可執行文件能夠直接在Linux環境下運行。