91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內不再提示

Linux的源頭 從一個故事說起

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

掃碼添加小助手

加入工程師交流群

一、Multics計劃

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

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

二、Unix的誕生

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

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

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

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

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

三、Minix及Linux的誕生

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

當別人說Linux的版本時,一般來說有兩個版本,一個是內核的版本,一個是發(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 查看了內核的版本,是4.6.0的版本,而 more /etc/issue就是 查看發(fā)行版的版本,表示了我安裝的是Ubuntu的16.04.2的發(fā)行版。

內核更新的信息可以到官網查看:https://www.kernel.org/

六、Linux的哲學思想

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

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

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

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

七、總結

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于WT2606A3-42N語音芯片的兒童打印機AI驅屏與語音交互技術方案解析

    "按下、出張紙"的東西嗎,能有多大花樣?別急,等你看完今天的故事,或許會重新認識這個小家伙。從一常見的場景
    的頭像 發(fā)表于 02-27 17:08 ?556次閱讀
    基于WT2606A3-42N語音芯片的兒童打印機AI驅屏與語音交互技術方案解析

    如何從源頭管控PCBA的清潔度與可靠性?

    在電子制造業(yè),我們常常執(zhí)著于設計、元器件和焊接工藝,卻容易忽視另一個隱形的“問題”——離子污染。這些肉眼不可見的殘留物,如同潛伏在電路板上的慢性毒藥,悄然侵蝕著產品,影響長期可靠性,導致漏電、腐蝕
    的頭像 發(fā)表于 01-10 10:44 ?183次閱讀
    如何從<b class='flag-5'>源頭</b>管控PCBA的清潔度與可靠性?

    電力電子EMC整改:從源頭到系統(tǒng)的全鏈路優(yōu)化策略方案

    南柯電子|電力電子EMC整改:從源頭到系統(tǒng)的全鏈路優(yōu)化策略方案
    的頭像 發(fā)表于 01-06 09:59 ?262次閱讀

    請問如何從一函數(shù)內部判斷本函數(shù)是否是成員函數(shù)還是非成員函數(shù)?

    如何從一函數(shù)內部判斷本函數(shù)是否是成員函數(shù)還是非成員函數(shù)?
    發(fā)表于 01-06 06:30

    代碼里的青春——我與RT-Thread的故事

    從發(fā)出RT-Thread20周年故事征集令的第天起,我們已陸續(xù)收到了數(shù)十位開發(fā)者的投稿。有人凌晨三點在調試線程棧,有人在社區(qū)收獲友情,有人靠RTT拿下比賽順利上岸……今天我們選出幾篇極具代表性
    的頭像 發(fā)表于 12-12 20:11 ?1101次閱讀
    代碼里的青春——我與RT-Thread的<b class='flag-5'>故事</b>

    分享Linux音頻開發(fā)實用站:ALSA項目官網使用指南

    經常和Linux音頻打交道的朋友,大概率聽過ALSA(Advanced Linux Sound Architecture),它是Linux系統(tǒng)里負責音頻和MIDI功能的基礎架構,日常用的很多音頻相關
    的頭像 發(fā)表于 12-10 07:03 ?473次閱讀
    分享<b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>Linux</b>音頻開發(fā)實用站:ALSA項目官網使用指南

    Linux 下交叉編譯實戰(zhàn):跑起來你的第一個 STM32 程序

    跑起來你的第一個STM32程序。、準備工作在開始之前,需要準備:1、Linux開發(fā)環(huán)境Ubuntu、Debian或其他主流發(fā)行版都可以。2、ARMGCC交叉編譯工具
    的頭像 發(fā)表于 11-24 19:04 ?828次閱讀
    <b class='flag-5'>Linux</b> 下交叉編譯實戰(zhàn):跑起來你的第<b class='flag-5'>一個</b> STM32 程序

    現(xiàn)場解決EMC電磁輻射干擾:降輻射,查路徑,鎖源頭

    南柯電子|現(xiàn)場解決EMC電磁輻射干擾:降輻射,查路徑,鎖源頭
    的頭像 發(fā)表于 09-16 09:59 ?882次閱讀

    文掌握Linux命令

    作為名運維工程師,熟練掌握Linux命令是基本功中的基本功。無論是日常工作中的系統(tǒng)維護,還是面試時的技術考核,Linux命令都是繞不開的核心技能。本文將從實戰(zhàn)角度出發(fā),系統(tǒng)梳理運維工程師必須掌握的
    的頭像 發(fā)表于 07-22 15:23 ?634次閱讀

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

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

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

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

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

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

    從芯片市場經理說起

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

    Linux主要的性能有哪些?

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

    攝像機EMC電磁兼容性測試整改:源頭消除電磁干擾

    深圳南柯電子|攝像機EMC電磁兼容性測試整改:源頭消除電磁干擾
    的頭像 發(fā)表于 03-27 10:04 ?1095次閱讀