這篇文章將介紹Linux的發(fā)展歷史以及Linux與著名操作系統(tǒng)Unix之間的關(guān)系。不會深入探討Linux的技術(shù)問題。
說到Linux,我們首先要了解Unix。
Unix是一種在AT&T貝爾實驗室已經(jīng)存在很長時間的操作系統(tǒng)。該項目由兩位著名的計算機科學(xué)家Ken Thompson和Dennis Ritchie領(lǐng)導(dǎo)。
Unix的正式開發(fā)始于1969年的夏天,Unix的第一個版本于1971年3月發(fā)布,隨后的第二個版本于1972年發(fā)布。
如果你在Linux機器上或MacOS上輸入date命令,你會得到一個名為Unix時間戳的數(shù)字。這個數(shù)字是自1970年1月1日00:00:00起的秒數(shù)。為什么是1970年1月1日呢?現(xiàn)在你應(yīng)該知道答案了,那時Unix正處于開發(fā)過程中。
Ken Thompson和Dennis Ritchie創(chuàng)建了B語言,這是Unix早期版本中支持的編程語言。然后,在1972年,里奇(Ritchie)重寫了B語言,對它進行了更好的改進,成為了C語言,這種語言在今天仍然非常流行。后來的大多數(shù)Unix組件都是用C編寫的。
在20世紀(jì)70年代后期,AT&T與教育機構(gòu)和外部商業(yè)組織共享了Unix,從而導(dǎo)致了許多不同版本Unix的誕生。其中最突出的是由加州大學(xué)伯克利分校的計算機系統(tǒng)研究小組構(gòu)建的教育版本。此版本被廣泛稱為Berkeley Software Distribution,即BSD。
最初,BSD是建立在Unix設(shè)計和代碼庫的基礎(chǔ)上,但是后來,Unix和BSD的版本變得越來越有特色,導(dǎo)致了Unix BSD版本和AT&T代號為System V的Unix版本之間的“標(biāo)準(zhǔn)競爭”。最終,勝利屬于SystemV。后來的BSD版本使System V更接近于學(xué)習(xí),并納入了公認(rèn)的普遍接受的標(biāo)準(zhǔn)。
隨著FreeBSD、NetBSD和OpenBSD等開源項目的出現(xiàn),BSD分支的歷史發(fā)展告一段落。BSD的最終版本于1995年推出。Unix的最終版本是1989年發(fā)布的Unix 10版本,是由Bell Laps開發(fā)的。
盡管作為Unix的官方版本和BSD很久以前就停止了開發(fā),但是目前許多操作系統(tǒng)(從閉源到開源)都是基于這兩個分支開發(fā)的。
比較著名和成功的商業(yè)版本可能是蘋果的MacOS。目前iOS、watchOS和tvOS系統(tǒng)以及其他蘋果操作系統(tǒng)都基于BSD平臺。MacOS也是少數(shù)幾個被認(rèn)為是類UNIX的操作系統(tǒng)之一。
在Unix的發(fā)展過程中,1983年發(fā)生了一件重要的事情,這是后來發(fā)生劇變的前提。
1983年9月,Richard Stallman宣布引入GNU計劃(GNU代表的是GNU,不是Unix)。
GNU項目的目標(biāo)是創(chuàng)建一個自由的、類unix的操作系統(tǒng),在這個系統(tǒng)中,人們?nèi)藗兛梢宰杂傻貜?fù)制,開發(fā),修改和分發(fā)軟件,并且不受限制。
請記住,Unix和Unix的派生版本最初是封閉源的,并擁有版權(quán)。
1985年,理查德(Richard)建立了自由軟件基金會(FSF),這是一個非營利性組織,旨在促進軟件開發(fā)的自由。
GNU項目創(chuàng)建了許多重要的產(chǎn)品,如GNU Compiler Collection (gcc)、GNU Debugger、GNU Emacs text editor (Emacs)、GNU build automator (make)等,還有今天使用最廣泛的:GNU通用公共許可證(GPL)。
GNU項目取得了許多偉大的成就,創(chuàng)造了許多與Unix相似的工具。然而,GNU仍然缺少一個重要的組成部分:內(nèi)核(用于處理與硬件設(shè)備(CPU、RAM、設(shè)備等)的控制和通信的部分)。
Linux
1991年8月25日,一位名叫Linus Torvalds的芬蘭學(xué)生介紹了一種個人產(chǎn)品,后來成為Linux內(nèi)核。
Linus的項目很快受到了許多個人和組織的關(guān)注。
Linux內(nèi)核和GNU軟件的結(jié)合創(chuàng)造了第一個完全免費的操作系統(tǒng)。它的名字是GNU/Linux。
注意:
Linux本身只是一個內(nèi)核,它不是一個完整的操作系統(tǒng)。電腦上使用的操作系統(tǒng)叫做GNU / Linux,人們簡單地稱它為Linux。
Linux操作系統(tǒng)不使用或共享Unix或BSD代碼的任何部分。它由Linus和GNU Project全新構(gòu)建,成為Unix的克隆版本。這就是為什么Linux和當(dāng)前的Unix后代操作系統(tǒng)(例如MacOS)有很多共同點的原因。
普遍認(rèn)為,無論是在MacOS上還是Linux上運行像ls、cat、grep這樣的命令,其本質(zhì)是相同的。但它們其實是兩種不同的工具。在Ubuntu上運行g(shù)rep——help或man grepon可以得到GNU版本的介紹,在Mac上可以得到BSD版本的介紹。當(dāng)然,大多數(shù)GNU和BSD (Unix)工具對于每個選項都是相同的,但是也有例外。
您可以在Mac上安裝GNU版本,而不是默認(rèn)版本,這就可以像Linux一樣使用相同的命令。
Linux只是內(nèi)核部分,GNU提供了在該內(nèi)核上運行的必要工具。但是,我們可以自由決定內(nèi)核配置。
一些組織和公司通過將Linux內(nèi)核與實用程序或程序包管理器相結(jié)合來創(chuàng)建完整的操作系統(tǒng)發(fā)行版,這些稱為Linux發(fā)行版。
今天,有無數(shù)的Linux發(fā)行版,其中許多都是非常熟悉和流行的。一些最常用的發(fā)行版包括:Ubuntu, Debian, CentOS, Fedora, Redhat, Linux Mint等。
發(fā)行版可以構(gòu)建在另一個發(fā)行版之上。事實上,我上面提到的發(fā)行版彼此之間有許多密切的關(guān)系。最古老的兩個發(fā)行版(現(xiàn)在仍然在使用)是Slackware和Debian。它們創(chuàng)建于1993年。
Debian的后代分支也可能是比較大的發(fā)行版。除了Debian本身之外,這個分支的主要代表還有Ubuntu(構(gòu)建在Debian之上)、Linux Mint(構(gòu)建在Ubuntu之上)和Kali Linux。
另一個著名的發(fā)行版是Redhat,主要發(fā)行版是Red Hat Enterprise Linux (RHEL),這是一個針對Redhat的企業(yè)客戶的發(fā)行版。除了提供RHEL作為付費發(fā)行版之外,Redhat還向社區(qū)提供另一個免費發(fā)行版,即Fedora。
實際上,通常首先對Fedora版本進行測試以獲取反饋和錯誤修復(fù),然后在穩(wěn)定的Fedora版本上構(gòu)建RHEL。此外,Redhat還為RHEL的幾乎所有組件提供了免費的源代碼,并且社區(qū)可以構(gòu)建發(fā)行版(類似于 RHEL)。CentOS是一個社區(qū)版本(不受Redhat支持),完全免費,是一個與RHEL類似的企業(yè)級質(zhì)量的發(fā)行版。
學(xué)習(xí)和熟悉Linux,在我個人看來Ubuntu(或Debian)和CentOS將是你應(yīng)該熟悉的組合。
還有其他完全基于Linux內(nèi)核的操作系統(tǒng)。其中最突出的就是Android。Android可能是使用Linux內(nèi)核的比較流行的操作系統(tǒng)。
Linux內(nèi)核版本
您可以在項目主頁上的https://www.kernel.org/上查看Linux內(nèi)核版本的列表。
要檢查正在使用的發(fā)行版上的內(nèi)核版本,可以使用uname -r命令。
使用uname -a命令將打印出整個系統(tǒng)信息,uname -o將打印出操作系統(tǒng)名稱。您將得到的結(jié)果是:操作系統(tǒng)名稱是GNU / Linux,而不僅僅是Linux。
類Unix
MacOS是少數(shù)通過Single UNIX Specification(SUS)認(rèn)證的操作系統(tǒng)之一,并且被認(rèn)為是類Unix的操作系統(tǒng)。
當(dāng)前,UNIX商標(biāo)版權(quán)歸Open Group所有(請注意,UNIX商標(biāo)名稱中的字母均大寫,而對于操作系統(tǒng),我們可以寫成Unix或UNIX)。
“類Unix(Unix-like”)”用于表示具有SUS認(rèn)證的操作系統(tǒng),并且可以使用UNIX品牌。
問題是:按照上述定義,Linux是“類Unix”操作系統(tǒng)嗎?答案是否定的?,F(xiàn)在Linux發(fā)行版不允許使用UNIX商標(biāo)。
除了將“Unix-like”解釋為SUS的一個組成部分之外,還有人建議應(yīng)該在更廣泛的意義上使用“Unix-like”這個詞。具體來說,它可分為三類:
Genetic UNIX:僅與Bell Labs Unix版本的代碼庫直接相關(guān)的操作系統(tǒng)。
Trademark UNIX:操作系統(tǒng)符合SUS要求,可以使用UNIX商標(biāo)。
Functional UNIX:“類似于Unix”的操作系統(tǒng),Linux可以歸為此類。
-
Linux
+關(guān)注
關(guān)注
87文章
11304瀏覽量
209524 -
UNIX
+關(guān)注
關(guān)注
0文章
296瀏覽量
41491 -
GNU
+關(guān)注
關(guān)注
0文章
143瀏覽量
17494
發(fā)布評論請先 登錄
相關(guān)推薦
評論