1. 程式人生 > >【Linux】Unix和Linux的歷史及關係

【Linux】Unix和Linux的歷史及關係

Unix和Linux的關係

悉悉嗦嗦

對於接觸計算機不久的同學來說,可能經常聽到類似:Unix,Linux,類Unix,Mac OS X,BSD,FreeBSD,“Linux和Unix一樣啦”,“差不多”等等名次和論斷。

就我個人來說,本科階段學習作業系統的時候,其實也沒有認真去弄明白這其中的歷史關係,有時候也是人云亦云,實際上也不懂它們之間到底有什麼區別和聯絡。那時,僅僅是想學習Linux的使用、開發、運維等知識,對於Linux的發展歷史和核心原理就當作是聽聽評書。

直到現在研究生階段,在反反覆覆使用了cd, ls, chmod等等東西之後,恰逢學校開設了高階作業系統這門課,藉著這個機會認認真真梳理一下Linux的發展史,以及其和Unix或者其他作業系統之間的區別和聯絡,也算是為自己答疑解惑了。

網上能直接找到的資料比較雜亂、魚目混珠,在這裡結合自己的專業知識進行了篩選和總結,希望能對大家有所幫助。

Unix的歷史

Unix於1969年誕生於貝爾實驗室,是Dennis Ritchie 和 Ken Thompson 兩人靈感火花碰撞的產物。在此之前,貝爾實驗室開發了一個多使用者作業系統Multics。但很遺憾,這是一個失敗的產物。正是由於Multics的失敗,貝爾實驗室發現處於沒有作業系統可用的尷尬境地,於是乎設計了一個檔案原型系統,也就演化成了後來的Unix系統。

1973年,Unix系統被利用C語言重寫,這一行動也成為了後來Unix被廣泛移植的最直接的原因。

這其中,一個比較著名的衍生開發版就是加州大學伯克利分校開發的Berkeley Software Distributions,即現在我們聽到的BSD。最初的BSD修正了貝爾實驗室Unix的一些bug,並且還集成了不少額外的軟體。

基於BSD的開放特性,BSD以Darwin,FreeBSD,NetBSD和OpenBSD等形式繼續發展。

在此基礎上,許多廠商進行了定製性的開發,推出了他們自己的Unix系統,其中比較著名的就是Sun公司的SunOS和Solaris。

今天,Unix已經發展成了一個支援搶佔式多工、多執行緒、虛擬記憶體、換頁、動態連結和TCP/IP網路的現代化作業系統,。

Linux簡介

20世紀90年代初,為了滿足Intel 80386微處理器的需求,Linus這位大神(沒錯,就是下面這位,圖來源於百度百科)開發了一個全新的作業系統,即Linux系統。
在這裡插入圖片描述
所以,劃重點:Linux 完全不等於 Unix,這是兩個獨立的作業系統。但是Linux和Unix完全沒有關係嗎?為什麼使用起來感覺如此相似呢?

當時已經存在Unix系統和Microsoft 的 DOS系統。Linus熱衷於Minix,一種教學的廉價Unix,但是這位大神終日為了不能修改Minix原始碼併發布這些修改而感到煩惱。同時期的DOS系統,對於Linus而言,除了玩遊戲別無他用。

在這種情況下,Linus開始開發自己的作業系統。(嗯,那時這哥們兒還只是一名大學生)。於是,Linux誕生。由於其許可證條款的約定,Linux迅速成為多人合作的開發專案。

Linux被稱之為類Unix系統,但不是Unix。這是因為Linux設計之初借鑑了Unix的許多規範化的設計思想並且實現了Unix的API(POSIX標準和其他Single Unix Specification定義),但是Linux並未直接使用Unix的原始碼,而是採用了和Unix一致的程式程式設計介面,這也就是為什麼說二者是兩個不同的作業系統。完全不能劃等號=

Mac OS

關於Mac OS和Linux的發展及區別,可以參考:
【Linux && Mac OS】Mac OS 和 Linux 的核心有什麼區別