一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

Linux的源頭 從一個故事說起

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 作者:黃工的嵌入式技術(shù) ? 2020-01-13 16:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、Multics計劃

上個世紀(jì)六十年代,那個計算機還沒有很普及,只有少數(shù)人才能使用,而且當(dāng)時的計算機系統(tǒng)都是批處理的,就是把一批任務(wù)一次性提交給計算機,然后就等待結(jié)果。并且中途不能和計算機交互。往往準(zhǔn)備作業(yè)都需要花費很長時間,并且這個時候別人也不能用,導(dǎo)致了計算機資源的浪費。

為了改變這種情況,在1965年前后,貝爾實驗室(Bell)、麻省理工學(xué)院(MIT)以及通用電氣(GE)聯(lián)合起來準(zhǔn)備研發(fā)一個分時多任務(wù)處理系統(tǒng),簡單來說就是實現(xiàn)多人同時使用計算機的夢想,并把計算機取名為Multics(多路信息計算系統(tǒng)),但是由于項目太復(fù)雜,加上其他原因?qū)е铝隧椖窟M展緩慢,1969年貝爾實驗室覺得這個項目可能不會成功,于是就退出不玩了。

二、Unix的誕生

Bell退出Multics計劃之后,Bell實驗室的那批科學(xué)家就沒有什么事做了,其中一個叫做Ken Thompson的人在研發(fā)Multics的時候,寫了一個叫做太空大戰(zhàn)(Space Travel)的游戲,大概就是一個很簡單的打飛機的游戲,但是這個游戲運行在Multics上。當(dāng)Bell退出了Multics后,Thompson就沒有了Multics的使用環(huán)境了,為了能夠繼續(xù)游戲,于是他花了一個月的時間寫了一個小型的操作系統(tǒng),用于運行Space Travel,當(dāng)完成之后,Thompson懷著激動的心情把身邊同事叫過來,讓他們來玩他的游戲,大家玩過之后紛紛表示對他的游戲不感興趣,但是對他的系統(tǒng)很感興趣。

因為MULTICS是“Multiplexed informtion and Computing Service”的縮寫(多路信息計算系統(tǒng)),于是他們命名這個系統(tǒng)為:“UNiplexed Information and Computing Service”,縮寫為“UNICS”(每路信息計算系統(tǒng),與Multics相反)。后來大家取其諧音,就稱其為“UNIX”了。

這個時候已經(jīng)是1970年了,于是就將1970年定為Unix元年,因此計算機上的時間就是從這一年開始計算的。

后來Unix這個小操作系統(tǒng)就在Bell實驗室內(nèi)部流行開,并經(jīng)過不斷地改良最終在1974年7月Unix發(fā)展到第5個版本,Bell實驗室公開了Unix,結(jié)果引起了學(xué)術(shù)界的廣泛興趣并對其源碼索取。所以,Unix第五個版本就以“僅用于教育目的”的協(xié)議,提供給各大學(xué)作為教學(xué)之用,成為當(dāng)時操作系統(tǒng)課程的范例教材。各大學(xué)公司開始通過Unix源碼對Unix進行了各種各樣的改進和拓展。1978年學(xué)術(shù)界的老大伯克利大學(xué),推出了一份以第六版為基礎(chǔ),加上一些改進和新功能而成的Unix。并命名為BSD(Berkeley Software Distribution伯克利分發(fā)版),開創(chuàng)了Unix的另一分支:BSD系列。

于是乎Unix就有了兩個分支,一個就是BSD系列的分支,一個就是Bell本身發(fā)放的分支,當(dāng)時因為Bell屬于AT&T,AT&T受到了美國《謝爾曼反托拉斯法》的影響,不能銷售除了電話機電報機等之外的商品,后來AT&T分解,Bell可以賣Unix了,Unix走向了商業(yè)化,如果想繼續(xù)使用就需要購買授權(quán),一份授權(quán)4萬美元。

三、Minix及Linux的誕生

在Unix昂貴的授權(quán)費用下,很多大學(xué)不得不停止對其研究,老師導(dǎo)致上課也不知道講什么了。在1987年荷蘭有個大學(xué)教授安德魯寫了一個Minix,類似于Unix,專用于教學(xué)。當(dāng)Minix流傳開來之后,世界各地的黑客們紛紛開始使用并改進,希望把改進的東西合并到Minix中,但是安德魯覺得他的系統(tǒng)是用于教學(xué)的,不能破壞純凈性,于是拒絕了。

在1991年9y月17日,Linus Torvalds(林納斯.托瓦茲)在互聯(lián)網(wǎng)上公布了自己寫的Linux,可能是表達對安德魯?shù)牟粷M吧(為什么不接受大家的好意呢?你讓大家的滿腔熱情往哪放呢?),于是Linus發(fā)布了一個帖子,大概就是說:我寫了一個操作系統(tǒng)的內(nèi)核,但是還不夠完善,你們以任何姿勢使用不收費,也可以幫助我一起修改。帖子發(fā)出后引起了強烈的反響。在大家的努力下,于1994年Linux的1.0版本正式發(fā)布。

為什么會引起這么強烈的反應(yīng)呢?這就要從了另一個人說起,那就是Richard Stallman(自由軟件之父)。Stallman是一個非常“激進”的人,因為Unix商業(yè)化的影響,他認(rèn)為軟件是全人類的智慧結(jié)晶,不應(yīng)該為某一家公司服務(wù)。在八十年代,他發(fā)起了自由軟件運動,吹起了共產(chǎn)主義的號角(發(fā)起了GNU運動),并發(fā)布了軟件界的共產(chǎn)主義宣言(GPL協(xié)議),并且這一運動得到了很多人的認(rèn)同。

所謂***自由軟件自由就是指:自由使用、自由學(xué)習(xí)和修改、自由分發(fā)、自由創(chuàng)建衍生版。

GNU的定義是一個遞歸縮寫,就是GNU IS NOT UNIX。就是說Unix是流氓,我不是。有意思的是,GNU運動是上個世紀(jì)八十年代開始的,而那個時候Linux還沒有誕生呢 ,所以Stallman寶寶心里苦啊,就在大家逐漸失去信心的時候,1991年Linus Torvalds帶著他的Linux閃亮登場了,給GNU運動畫了一個完美的句號。

Linux為什么會引起如此強烈的反響呢?因為Unix有版權(quán),愛好編程的狂熱分子在研究Unix的時候很容易吃上官司 ,而Linux是遵循GPL協(xié)議的,可以免費使用,讓黑客們盡情的施展(這里的黑客指那些技術(shù)大牛,不是指那些利用計算機干壞事的人)。于是Linux提供內(nèi)核(kernel),GNU提供外圍軟件,就這樣GNU/Linux誕生了。

從Unix到Linux的發(fā)展關(guān)系:

所以,看到這里你就會了解到Unix是1970年出現(xiàn)的,Linux是1991年發(fā)布的,但Linux是不同于Unix的操作系統(tǒng)。

四、操作系統(tǒng)的基本概念

上面主要介紹了Linux以及Unix的一些歷史故事,下面則介紹操作系統(tǒng)方面的知識。在進入正題之前,我們先簡單了解一下操作系統(tǒng)。

我們都知道,CPU是由運算器和控制器組成的,程序在運行的時候就是調(diào)用CPU的指令進行一些運算操作,例如加減乘除。CPU能夠調(diào)用的指令集合,就是指令集。但是不幸的是CPU的生產(chǎn)廠家不止一家,例如Intel、AMD等。即便是同一家廠商生產(chǎn)CPU,不同平臺之間的指令集也不一樣。那么程序員在編寫程序的時候會遇到一個尷尬的局面,就是當(dāng)你在某一個平臺編碼的時候,如果想將程序移到另外一個平臺上,就需要重新編碼,重新編碼還不是最可怕的,可怕的是你得學(xué)習(xí)對應(yīng)的新平臺的指令集。

一般而言,我們稱直接在硬件層面上進行編程是硬件規(guī)格層的編程(hardware spaceifiacation),例如調(diào)用CPU提供的指令等。你需要知道的是,不同硬件提供的API是個不相同的。如果程序員要編程還得精通硬件那得多難,所以我們需要一個通用軟件來提供統(tǒng)一接口,以屏蔽硬件的差異化。這個通用軟件就是操作系統(tǒng)。

操作系統(tǒng)將底層硬件提供的接口進行封裝,程序員直接調(diào)用由操作系統(tǒng)提供的接口,也稱為系統(tǒng)調(diào)用。

但是系統(tǒng)封裝的接口會很多嗎?顯然不會很多,因為如果操作系統(tǒng)提過

幾萬個接口,程序員還不累的學(xué)出血。一般而言,系統(tǒng)提供的接口都是短小精悍,我們需要像搭積木一樣,將其組裝起來提供更為豐富的功能,并且將組裝好的代碼做成庫,供別人使用。這樣一來,就是庫調(diào)用。在Windows上庫一般都是dll(Dynamic Link Library),而在Linux或者Unix上我們一般稱之為so(shared object),就是共享的代碼,大家都可以調(diào)用。

現(xiàn)在我們知道了,操作系統(tǒng)的一個重要功能就是將硬件提供的功能進行封裝,我們調(diào)用操作系統(tǒng)提供的接口就是系統(tǒng)調(diào)用(system call)。然后將系統(tǒng)提供的接口組合后形成更豐富的庫。當(dāng)然操作系統(tǒng)還有其他的功能,例如CPU的時間分片、安全保證等。

五、Linux的發(fā)行版本

我們知道Linux或者Unix是一個操作系統(tǒng),1991年的Linus Torvalds公布的是Linux的內(nèi)核(kernel)。但是要注意的是,公布的是源碼,并不是編譯好的直接可安裝的操作系統(tǒng),我們?nèi)绾伟惭b一個操作系統(tǒng)呢?很簡單啊,就是先下載一份源碼,然后進行編譯安裝,但是編譯的時候程序需要運行在操作系統(tǒng)上啊,操作系統(tǒng)呢?還沒有編譯呢。于是就陷入了一個死循環(huán)中,就是我們要安裝操作系統(tǒng),就需要編譯,編譯的時候需要操作系統(tǒng),這樣就是雞生蛋,蛋生雞。

這里就需要引入交叉編譯了,具體做法:假設(shè)我們要在電腦上安裝Linux,我們把A的硬盤拆下來,放到已經(jīng)安裝了操作系統(tǒng)的電腦B上,然后編譯,將編譯好的操作系統(tǒng)放到硬盤上,再把硬盤裝回去,開機啟動,這就是交叉編譯安裝系統(tǒng)。

這得有多難啊,入門難度實在太高了,所以我們迫切需要一種簡單的方式來安裝。于是就出現(xiàn)了這么一種公司,他們將已經(jīng)公開好的Kernel(內(nèi)核)再加上一些開源的周邊軟件收集起來編譯成二級制文件放到網(wǎng)上供別人使用,其中Red Hat(紅帽)就是其中著名的一家。我們知道Linux是遵循GPL協(xié)議的,也就是公開免費的,那么他們怎么盈利呢?既然不能賣軟件,那么就賣服務(wù)唄,比如說,發(fā)現(xiàn)了Linux漏洞,然后Red Hat修復(fù),如果你買了我們的服務(wù),我們就將補丁程序給你,并指導(dǎo)你安裝,所有問題都幫你解決。

世界上總是不缺好事者,RedHat既然可以這么做,為什么就不能有好心人免費做呢?是的,有這樣一個社區(qū),他們把RedHat的源碼拿過來,然后編譯成操作系統(tǒng)放出去,這就是CentOS,就是社區(qū)版的RedHat,所以基本RedHat的補丁包出來一個月之后,CentOS就出現(xiàn)對應(yīng)的補丁包了。這對于Red Hat是好事還是壞事呢?這恐怕只有當(dāng)事人知道了,不過在2014年年初傳來消息,RedHat收編了CentOS的團隊。就像MSDN I TELL YOU 上面都是微軟的正版軟件,可以隨便下載,但是這不也是為微軟做了免費宣傳嗎。

當(dāng)別人說Linux的版本時,一般來說有兩個版本,一個是內(nèi)核的版本,一個是發(fā)行的版本。例如登錄到終端執(zhí)行命令:

root@localhost:/home/Superman# uname -aLinux localhost.localdomain 4.6.0-040600-generic #201606100558 SMP Fri Jun 10 1015 UTC 2016 x86_64 x86_64 x86_64 GNU/Linuxroot@localhost:/home/Superman# more /etc/issueUbuntu 16.04.2 LTS l

從上面可以看出,uname -a 查看了內(nèi)核的版本,是4.6.0的版本,而 more /etc/issue就是 查看發(fā)行版的版本,表示了我安裝的是Ubuntu的16.04.2的發(fā)行版。

內(nèi)核更新的信息可以到官網(wǎng)查看:https://www.kernel.org/

六、Linux的哲學(xué)思想

A.一切皆文件,把幾乎所有的資源都組織成文件的格式,我們只需要一個文本編輯工具,就可以修改工作的特性了,很方便。

B.組合小程序,完成復(fù)雜任務(wù),例如將系統(tǒng)調(diào)用組合形成庫(在Linux就是so結(jié)尾的文件)。

C.盡量避免和用戶交互,Windows上就是彈框,讓你點確定。在Linux上,如果執(zhí)行一個程序之后沒有任何提示,那就是最后的提示。

D.使用純文本文件保存配置信息,這個在第一點就可以看出來。

七、總結(jié)

這篇文章就是對Linux的發(fā)展歷史進行淺談,希望Linux可以為你帶來快樂。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    連載|業(yè)余無線電史話():漫長的故事

    180米波段用莫爾斯電碼(CW)發(fā)射信號。資料來源:火花博物館。漫長的故事)如同任何科學(xué)故事
    的頭像 發(fā)表于 06-29 07:07 ?384次閱讀
    連載|業(yè)余無線電史話(<b class='flag-5'>一</b>):<b class='flag-5'>一</b><b class='flag-5'>個</b>漫長的<b class='flag-5'>故事</b>

    怎么結(jié)合嵌入式,Linux,和FPGA三方向達到均衡發(fā)展?

    在嵌入式領(lǐng)域,不少人都懷揣著讓嵌入式、Linux 和 FPGA 三方向?qū)崿F(xiàn)均衡發(fā)展的夢想,然而實踐中卻面臨諸多挑戰(zhàn)。就像備受矚目的全棧工程師稚暉君,他從大學(xué)玩單片機起步,憑借將智能算法融入嵌入式而
    的頭像 發(fā)表于 06-25 10:08 ?321次閱讀
    怎么結(jié)合嵌入式,<b class='flag-5'>Linux</b>,和FPGA三<b class='flag-5'>個</b>方向達到<b class='flag-5'>一</b><b class='flag-5'>個</b>均衡發(fā)展?

    電路圖中尋找電壓源頭的疑惑

    在電路圖中準(zhǔn)備找下SUSON這電壓的源頭,搜索后出現(xiàn)了兩令人疑惑的結(jié)果,如圖 上面是圖1 上面是圖2 當(dāng)然最后的答案是圖二,這里就有
    發(fā)表于 06-18 10:04

    從芯片市場經(jīng)理說起

    轉(zhuǎn)載自《鐘林談芯》 從創(chuàng)業(yè)第天開始,我就同時扮演芯片產(chǎn)品經(jīng)理、項目經(jīng)理、市場經(jīng)理、銷售經(jīng)理,集四角色于身。 在這四角色中,讓人難以理解和容易混淆的角色當(dāng)屬市場經(jīng)理。為了讓大家正
    的頭像 發(fā)表于 06-05 16:27 ?137次閱讀

    Linux主要的性能有哪些?

    ? 什么是Linux? ? Linux套自由傳播的類Unix操作系統(tǒng),是基于posix和unix的多用戶、多任務(wù)、支持多線程和多cp
    的頭像 發(fā)表于 04-30 18:09 ?243次閱讀
    <b class='flag-5'>Linux</b>主要的性能有哪些?

    Linux系統(tǒng)中最重要的三命令

    Linux三劍客是Linux系統(tǒng)中最重要的三命令,它們以其強大的功能和廣泛的應(yīng)用場景而聞名。這三工具的組合使用幾乎可以完美應(yīng)對Shell中的數(shù)據(jù)分析場景,因此被統(tǒng)稱為
    的頭像 發(fā)表于 03-03 10:37 ?437次閱讀

    線束EMC電磁兼容性測試整改:源頭到末端全面優(yōu)化

    深圳南柯電子|線束EMC電磁兼容性測試整改:源頭到末端全面優(yōu)化
    的頭像 發(fā)表于 02-10 14:47 ?460次閱讀
    線束EMC電磁兼容性測試整改:<b class='flag-5'>源頭</b>到末端全面優(yōu)化

    ADS1256從一通道到另一個通道的切換時間是多少?

    各位工程師,你們好。我想問ADS1256從一通道到另一個通道的切換時間是多少?急,謝謝
    發(fā)表于 01-06 08:08

    ADS5404可以使用LVDS或LVPECL的時鐘源頭嗎?

    ADS5404的時鐘電平要求為如下: 這么高的標(biāo)稱值該使用什么電平的時鐘芯片提供呢?LVDS和LVPECL的擺幅都應(yīng)該達不到吧? 為什么手冊后面又說可以使用LVDS或LVPECL的時鐘源頭呢?推薦什么電平呢?
    發(fā)表于 12-13 07:42

    ZX-D37 BLE主從一體藍牙模塊技術(shù)手冊

    電子發(fā)燒友網(wǎng)站提供《ZX-D37 BLE主從一體藍牙模塊技術(shù)手冊.pdf》資料免費下載
    發(fā)表于 10-23 10:36 ?1次下載

    富芮坤主從一體多鏈接通信協(xié)議解析

    在先前我們已經(jīng)介紹了富芮坤主從一體多鏈接的概念,現(xiàn)在,我們將深入解析其技術(shù)文檔,為大家提供更詳盡的說明。
    的頭像 發(fā)表于 10-22 10:34 ?790次閱讀
    富芮坤主<b class='flag-5'>從一</b>體多鏈接通信協(xié)議解析

    我記錄的九逃亡故事

    的愛情故事在百公里行走和馬拉松的時候,也找到了勝利大逃亡的感覺。關(guān)于行走的回憶:磨房百公里、從湖南到湖北奪路求生:馬拉松跑者的自白天涯跑路——人生就是場馬拉松
    的頭像 發(fā)表于 10-21 14:17 ?855次閱讀

    中大百年和100故事 | 科技老兵戴輝

    大在香港,張愛玲在港大讀過書,所以寫入小說中)陳香梅——嶺南大學(xué)到飛虎隊到中美民間大使梁羽生在嶺南大學(xué)的歲月? (他在家鄉(xiāng)認(rèn)識了嶺大避難的老師,隨后起到了廣州)我記錄的九逃亡故事? ?(里面有不少
    的頭像 發(fā)表于 10-21 14:17 ?1202次閱讀

    智慧路燈燈桿整體解決方案 智慧路燈燈桿源頭工廠

    智慧路燈燈桿整體解決方案 智慧路燈燈桿源頭工廠
    的頭像 發(fā)表于 10-10 09:13 ?664次閱讀
    智慧路燈燈桿整體解決方案 智慧路燈燈桿<b class='flag-5'>源頭</b>工廠

    ZX-D36 BLE主從一體藍牙模塊技術(shù)手冊

    ZX-D36是款5.2 ble的主從一體的模塊,超低功耗,支持模塊之間數(shù)據(jù)互傳
    發(fā)表于 09-27 11:30 ?35次下載