linux與unix區別

UNIX 與 Linux 之間的關係是一個頗有意思的話題。在目前主流的服務器端操做系統中,UNIX 誕生於 20 世紀 60 年代末,Windows 誕生於 20 世紀 80 年代中期,Linux 誕生於 20 世紀 90 年代初,能夠說 UNIX 是操做系統中的"老大哥",後來的 Windows 和 Linux 都參考了 UNIX。linux

現代的 Windows 系統已經朝着「圖形界面」的方向發展了,和 UNIX 系統有了巨大的差別,從表面上甚至看不出二者的關聯。程序員

UNIX 的坎坷歷史

UNIX 操做系統由肯•湯普森(Ken Thompson)和丹尼斯•裏奇(Dennis Ritchie)發明。它的部分技術來源可追溯到從 1965 年開始的 Multics 工程計劃,該計劃由貝爾實驗室、美國麻省理工學院和通用電氣公司聯合發起,目標是開發一種交互式的、具備多道程序處理能力的分時操做系統,以取代當時普遍使用的批處理操做系統。編程

說明:分時操做系統使一臺計算機能夠同時爲多個用戶服務,鏈接計算機的終端用戶交互式發出命令,操做系統採用時間片輪轉的方式處理用戶的服務請求並在終端上顯示結果(操做系統將CPU的時間劃分紅若干個片斷,稱爲時間片)。操做系統以時間片爲單位,輪流爲每一個終端用戶服務,每次服務一個時間片。安全

惋惜,因爲 Multics 工程計劃所追求的目標太龐大、太複雜,以致於它的開發人員都不知道要作成什麼樣子,最終以失敗收場。服務器

以肯•湯普森爲首的貝爾實驗室研究人員吸收了 Multics 工程計劃失敗的經驗教訓,於 1969 年實現了一種分時操做系統的雛形,1970 年該系統正式取名爲 UNIX。網絡

想一下英文中的前綴 Multi 和 Uni,就明白了 UNIX 的隱意。Multi 是大的意思,大並且繁;而 Uni 是小的意思,小並且巧。這是 UNIX 開發者的設計初衷,這個理念一直影響至今。架構

有意思的是,肯•湯普森當年開發 UNIX 的初衷是運行他編寫的一款計算機遊戲 Space Travel,這款遊戲模擬太陽系天體運動,由玩家駕駛飛船,觀賞景色並嘗試在各類行星和月亮上登錄。他前後在多個系統上試驗,但運行效果不甚理想,因而決定本身開發操做系統,就這樣,UNIX 誕生了。編程語言

自 1970 年後,UNIX 系統在貝爾實驗室內部的程序員之間逐漸流行起來。1971-1972 年,肯•湯普森的同事丹尼斯•裏奇發明了傳說中的C語言,這是一種適合編寫系統軟件的高級語言,它的誕生是 UNIX 系統發展過程當中的一個重要里程碑,它宣告了在操做系統的開發中,彙編語言再也不是主宰。學習

到了 1973 年,UNIX 系統的絕大部分源代碼都用C語言進行了重寫,這爲提升 UNIX 系統的可移植性打下了基礎(以前操做系統多采用匯編語言,對硬件依賴性強),也爲提升系統軟件的開發效率創造了條件。能夠說,UNIX 系統與C語言是一對孿生兄弟,具備密不可分的關係。優化

20 世紀 70 年代初,計算機界還有一項偉大的發明——TCP/IP 協議,這是當年美國國防部接手 ARPAnet 後所開發的網絡協議。美國國防部把 TCP/IP 協議與 UNIX 系統、C語言捆綁在一塊兒,由 AT&T 發行給美國各個大學非商業的許可證,這爲 UNIX 系統、C語言、TCP/IP 協議的發展拉開了序幕,它們分別在操做系統、編程語言、網絡協議這三個領域影響至今。肯•湯普森和丹尼斯•裏奇因在計算機領域作出的傑出貢獻,於 1983 年得到了計算機科學的最高獎——圖靈獎。

Linux和UNIX的關係及區別(詳解版)
圖 1 爲肯•湯普森與丹尼斯•裏奇的合影,天才都是不修邊幅的……

隨後出現了各類版本的 UNIX 系統,目前常見的有 Sun Solaris、FreeBSD、IBM AIX、HP-UX 等。

Solaris 和 FreeBSD

咱們重點介紹一下 Solaris,它是 UNIX 系統的一個重要分支。Solaris 除能夠運行在 SPARC CPU 平臺上外,還能夠運行在 x86 CPU 平臺上。在服務器市場上,Sun 的硬件平臺具備高可用性和高可靠性,是市場上處於支配地位的 UNIX 系統。

對於難以接觸到 Sun SPARC 架構計算機的用戶來講,能夠經過使用 Solaris x86 來體驗世界知名大廠的商業 UNIX 風采。固然,Solaris x86 也能夠用於實際生產應用的服務器,在遵照 Sun 的有關許可條款的狀況下,Solaris x86 能夠免費用於學習研究或商業應用。

FreeBSD 源於美國加利福尼亞大學伯克利分校開發的 UNIX 版本,它由來自世界各地的志願者開發和維護,爲不一樣架構的計算機系統提供了不一樣程度的支持。FreeBSD 在 BSD 許可協議下發布,容許任何人在保留版權和許可協議信息的前提下隨意使用和發行,並不限制將 FreeBSD 的代碼在另外一協議下發行,所以商業公司能夠自由地將 FreeBSD 代碼融入它們的產品中。蘋果公司的 OS X 就是基於 FreeBSD 的操做系統。

Linux和UNIX的關係及區別(詳解版)

FreeBSD 與 Linux 的用戶羣有至關一部分是重合的,兩者支持的硬件環境也比較一致,所採用的軟件也比較相似。FreeBSD 的最大特色就是穩定和高效,是做爲服務器操做系統的不錯選擇;但其對硬件的支持沒有 Linux 完備,因此並不適合做爲桌面系統。

其餘 UNIX 版本因應用範圍相對有限,在此不作過多介紹。

Linux 的那些往事

Linux 內核最初是由李納斯•託瓦茲(Linus Torvalds)在赫爾辛基大學讀書時出於我的愛好而編寫的,當時他以爲教學用的迷你版 UNIX 操做系統 Minix 太難用了,因而決定本身開發一個操做系統。第 1 版本於 1991 年 9 月發佈,當時僅有 10 000 行代碼。

Linux和UNIX的關係及區別(詳解版)

李納斯•託瓦茲沒有保留 Linux 源代碼的版權,公開了代碼,並邀請他人一塊兒完善 Linux。與 Windows 及其餘有專利權的操做系統不一樣,Linux 開放源代碼,任何人均可以避免費使用它。

據估計,如今只有 2% 的 Linux 核心代碼是由李納斯•託瓦茲本身編寫的,雖然他仍然擁有 Linux 內核(操做系統的核心部分),而且保留了選擇新代碼和須要合併的新方法的最終裁定權。如今你們所使用的 Linux,我更傾向於說是由李納斯•託瓦茲和後來陸續加入的衆多 Linux 好者共同開發完成的。

李納斯•託瓦茲無疑是這個世界上最偉大的程序員之一,況且,他還搞出了全世界最大的程序員交友社區 GitHub (開源代碼庫及版本控制系統)。

關於 Linux Logo 的由來是一個頗有意思的話題,它是一隻企鵝。

Linux和UNIX的關係及區別(詳解版)

爲何選擇企鵝,而不是選擇獅子、老虎或者小白兔?有人說由於李納斯•託瓦茲是芬蘭人,因此選擇企鵝,有人說由於其餘動物圖案都被用光了,李納斯•託瓦茲只好選擇企鵝。

我更願意相信如下說法,企鵝是南極洲的標誌性動物,根據國際公約,南極洲爲全人類共同全部,不屬於世界上的任何國家,可國家都無權將南極洲歸入其版圖。Linux 選擇企鵝圖案做爲 Logo,其含義是:開放源代碼的 Linux 爲全人類共同全部,可公司無權將其私有。

UNIX與Linux的親密關係

兩者的關係,不是大哥和小弟,"UNIX 是 Linux 的父親"這個說法更怡當。之因此要介紹它們的關係,是由於要告訴讀者,在學習的時候,其實 Linux 與 UNIX 有不少的共通之處,簡單地說,若是你已經熟練掌握了 Linux,那麼再上手使用 UNIX 會很是容易。

兩者也有兩個大的區別:

  1. UNIX 系統大可能是與硬件配套的,也就是說,大多數 UNIX 系統如 AIX、HP-UX 等是沒法安裝在 x86 服務器和我的計算機上的,而 Linux 則能夠運行在多種硬件平臺上;
  2. UNIX 是商業軟件,而 Linux 是開源軟件,是免費、公開源代碼的。

Linux 受至曠大計算機愛好者的喜好,主要緣由也有兩個:

  1. 它屬於開源軟件,用戶不用支付可費用就能夠得到它和它的源代碼,而且能夠根據本身的須要對它進行必要的修改,免費使用,無約束地繼續傳播;
  2. 它具備 UNIX 的所有功能,任何使用 UNIX 操做系統或想要學習 UNIX 操做系統的人均可以從 Linux 中獲益。

開源軟件是不一樣於商業軟件的一種模式,從字面上理解,就是開放源代碼,你們不用擔憂裏面會搞什麼貓膩,這會帶來軟件的革新和安全。

另外,開源其實並不等同於免費,而是一種新的軟件盈利模式。目前不少軟件都是開源軟件,對計算機行業與互聯網影響深遠。

開源軟件自己的模式、概念比較晦澀,這套《Linux教程》旨在指導讀者應用 Linux,你們簡要理解便可。

近年來,Linux 已經青出於藍而勝於藍,以超常的速度發展,從一個醜小鴨變成了一個擁有龐大用戶羣的真正優秀的、值得信賴的操做系統。歷史的車輪讓 Linux 成爲 UNIX 最優秀的傳承者。

總結一下 Linux 和 UNIX 的關係/區別

Linux 是一個相似 Unix 的操做系統,Unix 要早於 Linux,Linux 的初衷就是要替代 UNIX,並在功能和用戶體驗上進行優化,因此 Linux 模仿了 UNIX(但並無抄襲 UNIX 的源碼),使得 Linux 在外觀和交互上與 UNIX 很是相似。

說模仿可能會被人噴,你也能夠說微創新或者改進。

相比於 UNIX,Linux 最大的創新是開源免費,這是它可以蓬勃發展的最重要緣由;而目前的 UNIX 大部分都是收費的,小公司和我的都難以承受。

正是因爲 Linux 和 UNIX 有着千絲萬縷的聯繫,因此人們把 Linux 叫作「類UNIX系統」,下節咱們將會着重講解。

UNIX/Linux系統結構

UNIX/Linux 系統能夠粗糙地抽象爲 3 個層次(所謂粗糙,就是不夠細緻、精準,可是便於初學者抓住重點理解),如圖 3 所示。底層是 UNIX/Linux 操做系統,即系統內核(Kernel);中間層是 Shell 層,即命令解釋層;高層則是應用層。

Linux和UNIX的關係及區別(詳解版)
圖 3 UNIX/Linux 系統結掏層次概要

  1. 內核層

內核層是 UNIX/Linux 系統的核心和基礎,它直接附着在硬件平臺之上,控制和管理系統內各類資源(硬件資源和軟件資源),有效地組織進程的運行,從而擴展硬件的功能,提升資源的利用效率,爲用戶提供方便、高效、安全、可靠的應用環境。

  1. Shell層

Shell 層是與用戶直接交互的界面。用戶能夠在提示符下輸入命令行,由 Shell 解釋執行並輸出相應結果或者有關信息,因此咱們也把 Shell 稱做命令解釋器,利用系統提供的豐富命令能夠快捷而簡便地完成許多工做。

  1. 應用層

應用層提供基於 X Window 協議的圖形環境。X Window 協議定義了一個系統所必須具有的功能(就如同 TCP/IP 是一個協議,定義軟件所應具有的功能),可系統能知足此協議及符合 X 協會其餘的規範,即可稱爲 X Window。

如今大多數的 UNIX 系統上(包括 Solaris、HP-UX、AIX 等)均可以運行 CDE (Common Desktop Environment,通用桌面環境,是運行於 UNIX 的商業桌面環境)的用戶界面;而在 Linux 上普遍應用的有 Gnome(見圖 4)、KDE 等。

Linux和UNIX的關係及區別(詳解版)
圖 4 Gnome圖形界面

X Window 與微軟的 Windows 圖形環境有很大的區別:

  • UNIX/Linux 系統與 X Window 沒有必然捆綁的關係,也就是說,UNIX/Linux 能夠安裝 X Window,也能夠不安裝;而微軟的 Windows 圖形環境與內核捆綁密切。
  • UNIX/Linux 系統不依賴圖形環境,依然能夠經過命令行完成 100% 的功能,並且由於不使用圖形環境還會節省大量的系統資源。

做爲服務器部署,絕大多數 Linux 並不安裝或並不啓用圖形環境,本教程的講解也基本上爲 Linux 命令行下的操做。

本文由博客一文多發平臺 OpenWrite 發佈!

相關文章
相關標籤/搜索