0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux的發(fā)展歷史和Linux與Unix有怎么樣的關(guān)系

Wildesbeast ? 來源:21IC ? 作者:21IC ? 2020-06-27 09:00 ? 次閱讀

這篇文章將介紹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è)備(CPURAM、設(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可以歸為此類。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11304

    瀏覽量

    209524
  • UNIX
    +關(guān)注

    關(guān)注

    0

    文章

    296

    瀏覽量

    41491
  • GNU
    GNU
    +關(guān)注

    關(guān)注

    0

    文章

    143

    瀏覽量

    17494
收藏 人收藏

    評論

    相關(guān)推薦

    Linux從零到精通:最簡單的Shell腳本入門教程

    case語句 shell變量數(shù)組 shell腳本前言 |為什么學(xué)習(xí)shell編程 Shell腳本語言是實現(xiàn)Linux/UNIX系統(tǒng)
    的頭像 發(fā)表于 12-05 09:56 ?442次閱讀
    <b class='flag-5'>Linux</b>從零到精通:最簡單的Shell腳本入門教程

    RTOS與Linux到底什么區(qū)別

    很多做嵌入式開發(fā)的小伙伴都存在這樣的疑惑:RTOS與Linux到底什么區(qū)別?
    的頭像 發(fā)表于 10-29 09:53 ?447次閱讀

    Linux應(yīng)用編程的基本概念

    Linux應(yīng)用編程涉及到在Linux環(huán)境下開發(fā)和運行應(yīng)用程序的一系列概念。以下是一些涵蓋Linux應(yīng)用編程的基本概念。
    的頭像 發(fā)表于 10-24 17:19 ?233次閱讀

    Linux開發(fā)怎么學(xué)?

    Linux開發(fā)怎么學(xué)? 學(xué)習(xí) Linux 是一個循序漸進、持續(xù)不斷的過程。我們可以從以下幾個方面開始 1.了解 Linux歷史發(fā)展
    發(fā)表于 10-10 14:34

    嵌入式linux開發(fā)的基本步驟哪些?

    之前,首先需要選擇合適的硬件平臺。硬件選擇需要考慮以下幾個方面: 1.1 處理器 嵌入式Linux開發(fā)需要一個處理器,常見的處理器ARM、MIPS、PowerPC等。選擇處理器時,需要考慮處理器的性能、功耗、成本等因素。 1.2 存儲器 嵌入式系統(tǒng)需要存儲器來存儲操
    的頭像 發(fā)表于 09-02 09:11 ?496次閱讀

    Linux設(shè)備驅(qū)動程序分類哪些

    Linux設(shè)備驅(qū)動程序是操作系統(tǒng)與硬件設(shè)備之間的橋梁,負(fù)責(zé)實現(xiàn)硬件設(shè)備與操作系統(tǒng)之間的通信和控制。Linux設(shè)備驅(qū)動程序的分類繁多,可以根據(jù)不同的標(biāo)準(zhǔn)進行分類。 按硬件類型分類 Linux設(shè)備
    的頭像 發(fā)表于 08-30 15:11 ?567次閱讀

    Linux操作系統(tǒng)份額創(chuàng)歷史新高,逼近4.5%里程碑

    在最新的全球操作系統(tǒng)市場份額報告中,市調(diào)機構(gòu)StatCounter于8月27日發(fā)布了令人矚目的數(shù)據(jù):2024年7月,Linux系統(tǒng)實現(xiàn)了歷史性的飛躍,其市場份額首次逼近4.5%的關(guān)口,達(dá)到了4.44%的新高。這一成就標(biāo)志著Linux
    的頭像 發(fā)表于 08-27 17:05 ?868次閱讀

    RTOS與Linux什么區(qū)別

    RTOS(Real-Time Operating System,實時操作系統(tǒng))與Linux是兩種在不同應(yīng)用場景下發(fā)揮重要作用的操作系統(tǒng),它們在設(shè)計理念、功能特性、應(yīng)用場景以及性能表現(xiàn)等方面存在顯著差異。以下是對RTOS與Linux區(qū)別的詳細(xì)分析。
    的頭像 發(fā)表于 08-20 16:05 ?3583次閱讀

    Linux內(nèi)核測試技術(shù)

    Linux 內(nèi)核是Linux操作系統(tǒng)的核心部分,負(fù)責(zé)管理硬件資源和提供系統(tǒng)調(diào)用接口。隨著 Linux 內(nèi)核的不斷發(fā)展和更新,其復(fù)雜性和代碼規(guī)模也在不斷增加。因此,確保內(nèi)核的穩(wěn)定性和可靠
    的頭像 發(fā)表于 08-13 13:42 ?493次閱讀
    <b class='flag-5'>Linux</b>內(nèi)核測試技術(shù)

    freebsd和linux哪個好用

    操作系統(tǒng)歷史和起源: FreeBSD和Linux都是基于UNIX的操作系統(tǒng)。FreeBSD起源于加州大學(xué)伯克利分校的BSD項目,而Linux則是由Linus Torvalds在1991
    的頭像 發(fā)表于 08-08 10:29 ?642次閱讀

    QNX與Linux基礎(chǔ)差異對比

    對于QNX系統(tǒng)和Linux系統(tǒng)的內(nèi)核差異,我們拋開宏內(nèi)核、微內(nèi)核之類的爭議不談。單純從開發(fā)應(yīng)用的角度而言,QNX和Linux系統(tǒng)的差異到底多大,在開發(fā)的時候需要注意哪些細(xì)節(jié)問題?
    發(fā)表于 04-17 10:52 ?762次閱讀

    Linux的用途及優(yōu)勢在哪里?

    Linux是一套免費使用和自由傳播的類Unix操作系統(tǒng),是一個多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。它能運行主要的UNIX工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。它支持32位和64位硬件。
    發(fā)表于 03-07 11:10 ?1493次閱讀
    <b class='flag-5'>Linux</b>的用途及優(yōu)勢在哪里?

    linux和windows的區(qū)別 linux系統(tǒng)一般用來干嘛

    Linux的設(shè)計理念 Linux是一個開源操作系統(tǒng),其設(shè)計理念是自由、共享和開放。Linux系統(tǒng)遵循類Unix的設(shè)計原則,注重系統(tǒng)的穩(wěn)定性、靈活性和安全性。它采用模塊化的設(shè)計結(jié)構(gòu),用
    的頭像 發(fā)表于 02-05 14:06 ?972次閱讀

    C++在Linux內(nèi)核開發(fā)中從爭議到成熟

    Linux 內(nèi)核郵件列表中一篇已有六年歷史的老帖近日再次引發(fā)激烈討論 —— 主題是建議將 Linux 內(nèi)核的開發(fā)語言從 C 轉(zhuǎn)換為更現(xiàn)代的 C++。
    的頭像 發(fā)表于 01-31 14:11 ?633次閱讀
    C++在<b class='flag-5'>Linux</b>內(nèi)核開發(fā)中從爭議到成熟

    Linux內(nèi)核中信號詳解

    信號和多線程程序 4 與信號相關(guān)的數(shù)據(jù)結(jié)構(gòu) 4.2.1 x86/Linux2.6.11的定義 4.2.2 x86-64/Linux2.6.11的定義 4.2.3 x86-64/linux
    的頭像 發(fā)表于 01-13 09:40 ?1387次閱讀
    <b class='flag-5'>Linux</b>內(nèi)核中信號詳解