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

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

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

Unix/Linux 操作系統(tǒng)入門科普

40°研究院 ? 來源:40°研究院 ? 作者:40°研究院 ? 2023-05-17 18:02 ? 次閱讀

轉(zhuǎn)載自鮮棗課堂

今天這篇文章,我們來聊聊 操作系統(tǒng)Operating System 。

說到操作系統(tǒng),大家都不會陌生。我們天天都在接觸操作系統(tǒng)——用臺式機或筆記本電腦,使用的是windows和macOS系統(tǒng);用手機、平板電腦,則是android(安卓)和iOS系統(tǒng)。

如果是從事信息通信行業(yè),還經(jīng)常會和ubuntu、CentOS、Fedora這樣的Linux系統(tǒng)打交道。

其實,操作系統(tǒng)的種類極多,遠遠不止我們知道的這些。

從使用場景來看,操作系統(tǒng)大致可以分為桌面操作系統(tǒng)、服務(wù)器操作系統(tǒng)、移動終端操作系統(tǒng)、嵌入式操作系統(tǒng)、物聯(lián)網(wǎng)操作系統(tǒng)、云操作系統(tǒng)等類別。

如下表所示:

圖片

那么,操作系統(tǒng)究竟是什么?

從本質(zhì)來看,操作系統(tǒng)其實就是一套軟件。

它屬于底層軟件,可以說是一個大管家,專門負責把所有的硬件和上層軟件(中間件、數(shù)據(jù)庫、應(yīng)用程序等)管理和連通起來,并進行資源調(diào)配,完成用戶下達的任務(wù)。

圖片

操作系統(tǒng)包攬了很多底層的復(fù)雜工作,大大簡化了應(yīng)用軟件的開發(fā)難度。

比如說,我開發(fā)一個視頻播放器,就不需要寫那些底層硬件代碼。

操作系統(tǒng)還有一個重要作用,就是方便用戶使用。

用戶有了操作系統(tǒng),就能更好地管理計算機,進行人機交互(下達命令,查詢結(jié)果和狀態(tài))。

新手學習操作系統(tǒng),最麻煩的是認名字和認類別。接下來,小棗君就從時間線的角度,對所有的操作系統(tǒng)關(guān)系進行一下梳理。

操作系統(tǒng)的誕生

操作系統(tǒng)這個東西,并不是計算機誕生時就有的。

1946年2月,在美國的賓夕法尼亞大學誕生了世界上第一臺電子計算機,它的名稱叫 ENIAC (埃尼阿克)。

ENIAC是由大量的電子管(真空管)組成,體積極為龐大,占地170平方米,重達30噸,耗電174千瓦。在算力上,它可以實現(xiàn)每秒5000次的加法運算。

圖片

這種早期的計算機,既沒有顯示器,也沒有鍵盤,更沒有鼠標,全部都是 人工操作

在使用時,專職操作員將運算信息記錄在穿孔卡帶上。系統(tǒng)啟動后,讀取卡帶信息,然后進行運算,最后輸出結(jié)果。

圖片

穿孔卡帶

計算機的速度快,人的速度慢。所以,計算機經(jīng)常處于等待狀態(tài),等待操作員的輸入。

這嚴重耽誤了計算效率,浪費時間,也浪費錢(電費)。于是,到了20世紀50年代,開始出現(xiàn)了 批處理系統(tǒng) (batch processing)。

批處理系統(tǒng)中,操作員把用戶提交的作業(yè)進行分類,把一批作業(yè)編成一個“作業(yè)執(zhí)行序列”。每一批作業(yè),都由專門編制的監(jiān)督程序(monitor)自動依次處理。

這個“監(jiān)督程序”,就是操作系統(tǒng)的雛形。它標志著操作系統(tǒng)的誕生(1955年)。

最早使用批處理系統(tǒng)的,是第二代通用計算機,代表產(chǎn)品是IBM的1401和7094等。

圖片

批處理雖然提升了效率,但仍存在缺陷。

例如,當作業(yè)進行I/O(輸入/輸出)操作時,主機會等待操作完成,造成自身空閑。再例如,計算機只能同時運行一個批處理任務(wù),效率還是太低。

到了60年代,集成電路技術(shù)高速發(fā)展,我們有了更快的處理器、更大的內(nèi)存、更豐富的I/O設(shè)備。同時,通道和中斷技術(shù)出現(xiàn),開始允許系統(tǒng)執(zhí)行“掛起”操作。

于是,就有了 “多道程序系統(tǒng)” 。

簡單來說,計算機系統(tǒng)從串行變成了并行,可以同時運行多個任務(wù)(多個程序放入內(nèi)存,交替在CPU中運行,共享硬軟件資源)。

多道程序系統(tǒng)大幅提升了計算機的工作效率。再后來,系統(tǒng)又支持了多個用戶同時使用。于是,就變成了“多用戶+多任務(wù)”的系統(tǒng),稱為 “分時系統(tǒng)” 。

“分時”和我們通信領(lǐng)域的“時分復(fù)用”有點像,就是把處理機的運行時間分成很短的時間片,按時間片輪流分配給各個作業(yè)使用。

再后來,技術(shù)又繼續(xù)演進。終于,我們有了時效性更強的 “實時操作系統(tǒng)” 。這種系統(tǒng),就非常接近于現(xiàn)代操作系統(tǒng)的概念了。

圖片

UNIX的誕生

1964年,美國電話電報公司(AT&T)、通用電器公司(GE)及麻省理工學院(MIT)合作,提出了一個超級分時操作系統(tǒng)的開發(fā)計劃。

這個計劃,被命名為Multics OS。Multics是“MULTiplexed Information and Coputing System(多路信息與計算系統(tǒng))”的意思。

當時,他們打算借助這個系統(tǒng),打造一臺能夠連接1000臺終端、滿足300人同時在線的計算機。

這個計劃持續(xù)了五年,并沒有達到既定目標。于是,1969年,隸屬AT&T公司的貝爾實驗室(Bell Labs)宣布退出。

貝爾實驗室退出之后,相關(guān)的項目組成員就閑了下來。其中就有一個人,名字叫做 肯·湯普森 (Ken Thompson)。

圖片

肯·湯普森此前在Multics上開發(fā)了一款名叫"星際旅行(Space Travel)" 的游戲。退出Multics項目后,肯·湯普森就沒辦法繼續(xù)玩這個游戲了。

于是,他突發(fā)奇想,打算在一臺空閑的PDP-7(DEC公司生產(chǎn)的一種小型計算機,性能很低)上,開發(fā)一個簡單操作系統(tǒng),運行這個游戲。

1969年8月,肯·湯普森趁著妻子回家探親,用了1個月的時間,使用匯編語言,寫出了一個簡版的Multics系統(tǒng)(包括一組內(nèi)核程序,一些內(nèi)核工具程序,以及一個小的文件系統(tǒng))。

實驗室的同事們,將這個系統(tǒng)戲稱為Unics。Uni作為前綴,是“單一、一個”的意思。Unics,對應(yīng)Multics,是“單路信息與計算系統(tǒng)”的意思。

后來,大家又取其諧音,直接稱其為 “Unix” 。

圖片

一邊工作一邊下棋的肯·湯普森

基于匯編語言編寫的Unics,硬件通用性差,沒法移植到其它機器上運行。因此,肯·湯普森嘗試使用BCPL、PASCAL語言進行重寫。但是,效果并不理想。

這時,他的同事 丹尼斯.里奇 (Dennis Ritchie)站了出來。

圖片

丹尼斯.里奇在BCPL語言(也就是B語言)的基礎(chǔ)上,開發(fā)了一套新的語言,也就是后來如日中天的 C語言 (按字母表順序,B之后就是C)。

不久后,丹尼斯.里奇用C語言重寫Unics成功。就這樣,Unix操作系統(tǒng)正式誕生了。

圖片

正在操作DEC PDP-11計算機的 肯·湯普森(坐者)和丹尼斯.里奇(站者)

1973年,丹尼斯·里奇和肯·湯普森正式發(fā)表論文,宣布了Unix的存在。消息引起很大反響,很多人都期望學習和研究Unix。

貝爾實驗室(AT&T)推出了Unix之后,因為受美國政府反壟斷制裁的原因,并不能對它進行銷售。所以,他們只能將Unix無償提供給所有人學習。

又過了一段時間,AT&T發(fā)布了Unix系統(tǒng)第5版,并授權(quán)給教育機構(gòu)使用。1975年,他們第一次以2萬美元的價格,授權(quán)企業(yè)使用Unix第6版。

這期間,很多企業(yè)和機構(gòu)開始打Unix的主意。

1977年,伯克利大學的研究生比爾·喬伊(Bill Joy),將Unix程序整理到磁帶上,推出了BSD版本。BSD,就是Berkeley Software Distribution(伯克利軟件發(fā)行版)。

1978年,SCO(一家服務(wù)器系統(tǒng)軟件供應(yīng)商)包裝發(fā)行了商用版的Unix。

目前公認的最完美版本,是1979年發(fā)行的System V7。這個版本也被Unix玩家們稱為“最后一個真正的UNIX”。

1980年,美國國防高級研究計劃局(DARPA)準備制定TCP/IP協(xié)議,選擇了與BSD合作。這大大刺激了Unix的發(fā)展和普及。

后來,丹尼斯·里奇和肯·湯普森被譽為Unix之父和C語言之父。1983年,他們二人都獲得了圖靈獎。

圖片

在System V7推出之后,AT&T發(fā)布新的使用條款,將Unix源代碼私有化。Unix開始走向了商業(yè)閉源之路。

很多公司,都推出了自己的Unix系統(tǒng)分支。比較有名的,是Sun公司的Solaris、IBM公司的AIX、惠普公司的HP-UX,以及由BSD版本發(fā)展起來的FreeBSD。

Solaris這個系統(tǒng),小棗君非常熟悉。當年我就是通過Solaris學會的Unix。它的穩(wěn)定性極高,主要用在SUN公司的服務(wù)器(V240/V440等)上,CPU都是完全不一樣的,叫做SPARC。

FreeBSD的應(yīng)用范圍就廣多了。它在BSD許可協(xié)議下發(fā)布,由來自世界各地的志愿者開發(fā)和維護,允許任何人隨意使用和發(fā)行(在保留版權(quán)和許可協(xié)議信息的前提下)。

蘋果公司的OS X,就是基于FreeBSD的。

詳細的Unix閉源分支我就不多說了,發(fā)一張圖,大家可以參考:

圖片

** Linux的誕生**

Unix開始收費和商業(yè)閉源之后,引起了一個大叔的不滿。這個大叔,名叫 理查德·馬修·斯托曼 (Richard Matthew Stallman)。

圖片

理查德·馬修·斯托曼

1984年,他發(fā)起了自由軟件體系GNU(GNU is not unix),模仿Unix的界面和使用方式,重新開發(fā)一個開源的版本。他還組織成立了FSF(Free Software Foundation,自由軟件基金會),起草了GPL(GeneralPublicLicense,通用公共許可證)。

圖片

GNU著名的牛頭logo

斯托曼的做法,具有劃時代的意義。他開創(chuàng)了開源軟件的黃金時代。

所有GPL協(xié)議下的自由軟件,都必須遵循“Copyleft(非版權(quán))"原則——

即:自由軟件,允許用戶自由拷貝、修改和銷售。但是,對其源代碼的任何修改,都必須向所有用戶公開。

到上世紀90年代初,GNU項目已經(jīng)開發(fā)出許多高質(zhì)量的免費軟件,其中包括有名的emacs編輯系統(tǒng)、bash shell程序、gcc系列編譯程序、gdb調(diào)試程序等等。

這些都為后來Linux的誕生創(chuàng)造了條件。

Unix源代碼私有化之后,在大學中不再允許使用Unix源代碼。

1987年,荷蘭阿姆斯特丹自由大學計算機系的 安德魯· 塔能鮑姆教授(Andrew S. Tanenbaum,也譯為譚寧邦),為了能在課堂上教授操作系統(tǒng)課程,決定在不使用任何AT&T源代碼的前提下,自行開發(fā)與Unix兼容的操作系統(tǒng)。

圖片

安德魯·塔能鮑姆

他將這個系統(tǒng)稱為 MINIX ,也就是mini-UNIX(小型UNIX)的意思。

MINIX的主要工作平臺,是IBM PC及其兼容機。這款PC搭載了英特爾公司的16位處理器——Intel 8080。

開發(fā)出MINIX之后,塔能鮑姆教授并沒有對它進行大規(guī)模推廣。而且,他認為這個系統(tǒng)只是用于教育目的,所以也沒有進行深入開發(fā)。

他甚至還不允許別人加入代碼(估計是怕侵權(quán)Unix),這就更加限制了MINIX的發(fā)展和普及。

1991年,正在芬蘭赫爾辛基大學求學的 林納斯·托瓦茲 (Linus Torvalds),對Unix產(chǎn)生濃厚興趣,嘗試借助MINIX完成一些日常工作。

MINIX的功能太弱,無法滿足林納斯的需求。于是,他利用GNU的bash當做開發(fā)環(huán)境,gcc當做編譯工具,成功編寫出了擁有10000行代碼的 Linux內(nèi)核(Linux kernel) 。

此時的林納斯,只有21歲!

圖片

林納斯·托瓦茲

林納斯的Linux內(nèi)核基于POSIX(Portable Operating System Interface for Computing Systems,可移植操作系統(tǒng)接口)標準,能夠與絕大多數(shù)Unix操作系統(tǒng)兼容。

他在發(fā)布時,選擇了遵循GPL協(xié)議和GNU宗旨,所以,正式發(fā)布時,命名為“GNU/linux”。

圖片

Linux的吉祥物是企鵝(英文名: Tux)

因為林納斯小時候被企鵝咬過,印象非常深刻

Linux和Unix的關(guān)系

這里,我要特別說明一下,Linux和Unix的關(guān)系。

很多人覺得,Linux就是Unix,這顯然是不對的。由上面的介紹可以看出,Linux是開源自由軟件,而Unix是對源代碼實行知識產(chǎn)權(quán)保護的傳統(tǒng)商業(yè)軟件。兩者是完全不同的東西。

那么,Linux是不是類Unix(Unix-like)系統(tǒng)呢?

嚴格來說,也不行。

Linux只是風格上和Unix很像,但它并不含有Unix的代碼。UNIX的源代碼,為SCO公司所有。UNIX的商標權(quán)和標準認定權(quán),屬于OPENGROUP所有。

真正意義上的類Unix系統(tǒng),必須要通過官方認證(例如蘋果的MacOS)。而Linux并沒有。

Linux的發(fā)行版

大家注意,林納斯1991年開發(fā)的,并不是一個操作系統(tǒng),而是一個內(nèi)核。

后來,全球開發(fā)者(開源社區(qū)、企業(yè)、個人等)對內(nèi)核代碼進行大量的修改和補充,加入GUI(圖形界面)、應(yīng)用等部分,才形成了相應(yīng)的 Linux操作系統(tǒng)發(fā)行版 ,也就是真正的操作系統(tǒng)。

這些發(fā)行版分為社區(qū)版和商業(yè)版。社區(qū)版數(shù)量較多,開發(fā)和維護的主體是開源社區(qū)。商業(yè)版數(shù)量較少,是在社區(qū)版的基礎(chǔ)上進一步優(yōu)化而來。

值得一提的是,發(fā)行版之間也有復(fù)雜的衍生關(guān)系。也就是說,發(fā)行版可以構(gòu)建在另一個發(fā)行版之上。

一些大家可能比較熟悉的發(fā)行版,包括:Ubuntu、Debian、Centos、Fedora、 Redhat Linux、Slackware、Turbolinux、Mandrake、SUSE、紅旗、麒麟等。

圖片

Slackware和Debian是最早期的兩個發(fā)行版,創(chuàng)建于1993年。

wKgaomRkndSAFyeiAAWVkx02uAY222(1).png

Debian的后代分支比較龐大。除了Debian本身之外,這個分支的主要代表還有Ubuntu(構(gòu)建在Debian之上)、LinuxMint(構(gòu)建在Ubuntu之上)、Kali Linux。

圖片

Redhat,也就是大家很熟悉的紅帽系列。它的主要發(fā)行版是Red Hat Enterprise Linux(RHEL),針對企業(yè)客戶。

圖片

CentOS是RHEL源代碼再編譯的產(chǎn)物,修正了不少Bug,穩(wěn)定性更強。

圖片

除了RHEL之外,Redhat還向社區(qū)提供另一個免費發(fā)行版,即Fedora。

圖片

這些發(fā)行版的具體關(guān)系和發(fā)布時間,如下圖所示:

圖片

上面這些操作系統(tǒng),小棗君基本都用過。2005年我剛工作的時候,用的是Debian、RHEL、Solaris。后來,開始用Fedora。再后來,是CentOS。剛開始的使用,很難受,不適應(yīng)。但是一旦用習慣了,就覺得很爽。

2020年底,紅帽公司宣布陸續(xù)停止維護CentOS,后續(xù)將無法獲得官方升級和補丁。雖然比較可惜,但也給國產(chǎn)操作系統(tǒng)帶來了機會,我們以后會講。

** 未完待續(xù)……**

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

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207920
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6545

    瀏覽量

    122750
  • UNIX
    +關(guān)注

    關(guān)注

    0

    文章

    296

    瀏覽量

    41335
收藏 人收藏

    評論

    相關(guān)推薦

    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)口,達到了4.44%的新高。這一成就標志著
    的頭像 發(fā)表于 08-27 17:05 ?368次閱讀

    工業(yè)實時操作系統(tǒng)對比:鴻道Intewell跟rt-linux有啥區(qū)別

    Intewell和RT-Linux是兩種不同的實時操作系統(tǒng)(RTOS),它們具有各自獨特的特點和優(yōu)勢。以下是Intewell操作系統(tǒng)的一些關(guān)鍵特性,以及與RT-Linux的比較:
    的頭像 發(fā)表于 07-03 10:00 ?246次閱讀
    工業(yè)實時<b class='flag-5'>操作系統(tǒng)</b>對比:鴻道Intewell跟rt-<b class='flag-5'>linux</b>有啥區(qū)別

    AURIX3G可以使用Linux操作系統(tǒng)嗎?

    即使在 AURIX3G 中,也可以使用 Linux 操作系統(tǒng)嗎?
    發(fā)表于 05-22 07:12

    服務(wù)器操作系統(tǒng)有幾種?

    、Linux、Unix等等,而人們常常應(yīng)用的大部 分全是Windows和Linux系統(tǒng)軟件。今日,小編就簡單的給大伙兒介紹一下這兩種常見的網(wǎng)絡(luò)服務(wù)器電腦
    發(fā)表于 03-29 16:59

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

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

    Linux操作系統(tǒng)上的射頻測試模式應(yīng)用指南

    電子發(fā)燒友網(wǎng)站提供《Linux操作系統(tǒng)上的射頻測試模式應(yīng)用指南.pdf》資料免費下載
    發(fā)表于 02-19 09:39 ?0次下載
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b>上的射頻測試模式應(yīng)用指南

    Linux操作系統(tǒng)中如何按下PCIe的復(fù)位鍵

    Linux操作系統(tǒng)中,看如何按下PCIe的復(fù)位鍵
    的頭像 發(fā)表于 01-20 09:31 ?1205次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b>中如何按下PCIe的復(fù)位鍵

    linux系統(tǒng)的用途

    Linux是一種自由和開放源代碼的操作系統(tǒng),最初由芬蘭的計算機科學家林納斯·托瓦茲創(chuàng)建。它基于UNIX操作系統(tǒng),并且非常靈活,適用于各種不同類型的應(yīng)用程序和用途。本文將詳細介紹
    的頭像 發(fā)表于 11-23 11:12 ?857次閱讀

    linux系統(tǒng)基礎(chǔ)入門教程

    Linux是一種開源的操作系統(tǒng),它被廣泛應(yīng)用于服務(wù)器、嵌入式系統(tǒng)以及個人電腦上。本篇文章將帶領(lǐng)讀者從入門的角度,詳細介紹Linux
    的頭像 發(fā)表于 11-16 16:45 ?864次閱讀

    LInux 操作系統(tǒng)中斷介紹

    LInux 操作系統(tǒng)中斷 什么是系統(tǒng)中斷 這個沒啥可說的,大家都知道; CPU 在執(zhí)行任務(wù)途中接收到中斷請求,需要保存現(xiàn)場后去處理中斷請求!保存現(xiàn)場稱為中斷處理程序!處理中斷請求也就是喚醒對應(yīng)的任務(wù)
    的頭像 發(fā)表于 11-13 11:36 ?757次閱讀
    <b class='flag-5'>LInux</b> <b class='flag-5'>操作系統(tǒng)</b>中斷介紹

    什么是LInux 操作系統(tǒng)中斷

    LInux 操作系統(tǒng)中斷 什么是系統(tǒng)中斷 這個沒啥可說的,大家都知道; CPU 在執(zhí)行任務(wù)途中接收到中斷請求,需要保存現(xiàn)場后去處理中斷請求!保存現(xiàn)場稱為中斷處理程序!處理中斷請求也就是喚醒對應(yīng)的任務(wù)
    的頭像 發(fā)表于 11-10 11:29 ?487次閱讀
    什么是<b class='flag-5'>LInux</b> <b class='flag-5'>操作系統(tǒng)</b>中斷

    linux屬于什么操作系統(tǒng)

    Linux屬于一種類UNIX操作系統(tǒng)。Linux,全稱GNU/Linux,是一套免費使用和自由傳播的類U
    的頭像 發(fā)表于 11-08 11:01 ?3448次閱讀

    有無操作系統(tǒng)的嵌入式Linux驅(qū)動設(shè)備有何區(qū)別?

    有無操作系統(tǒng)的嵌入式Linux驅(qū)動設(shè)備有何區(qū)別? 嵌入式系統(tǒng)是指集成電子設(shè)備上的計算機系統(tǒng),通常用于控制、監(jiān)測、操作或處理某些物理或機械過程
    的頭像 發(fā)表于 10-29 17:29 ?602次閱讀

    開源操作系統(tǒng)大全

    開源操作系統(tǒng)即公開源代碼的操作系統(tǒng)軟件,它遵循開源協(xié)議使用、編譯和發(fā)布。自由和開放源代碼軟件中最著名的是 Linux ,它是一種類 Unix操作
    發(fā)表于 10-27 15:13

    請問AVR是否可以使用Linux操作系統(tǒng)

    AVR是否可以使用Linux操作系統(tǒng)?
    發(fā)表于 10-24 06:13