亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

005 | linux發(fā)展歷史-01

本文為《跟馬哥學(xué)Linux》系列文章的第五篇,上一篇文章為《Linux云計(jì)算架構(gòu)師課程介紹》。

前面的內(nèi)容當(dāng)中呢,我們給大家簡(jiǎn)單介紹了一下我們的課程體系,并且也描述了在IT領(lǐng)域當(dāng)中的我們的常見(jiàn)的技術(shù)方面的工作崗位,會(huì)集中在兩個(gè)的的領(lǐng)域的那個(gè)位置,然后做了一些說(shuō)明。那接下來(lái)我們會(huì)繼續(xù)相關(guān)的話題。不過(guò),這次我們要描述的是簡(jiǎn)單來(lái)講是計(jì)算機(jī)與操作系統(tǒng),給大家做一下簡(jiǎn)單的描述。各位都知道其實(shí)計(jì)算機(jī)誕生也很久了,在上個(gè)世紀(jì)的四十年代其實(shí)是三四十年代,電子計(jì)算機(jī)還是真空管的或者說(shuō)是電子管的計(jì)算機(jī)已經(jīng)出現(xiàn)了。而真正在ENIARC出現(xiàn)的時(shí)候,大概是上個(gè)世紀(jì)的四十年代,應(yīng)該是誕生在美國(guó)賓夕法尼亞大學(xué),而且那個(gè)時(shí)候整個(gè)計(jì)算機(jī)的體系結(jié)構(gòu)就已經(jīng)凈化到了,我以前說(shuō)過(guò)五大基本部件組成,在此之前我們就講到過(guò)這五大基本部件,不知道大家號(hào)有沒(méi)有印象,我們說(shuō)過(guò)計(jì)算機(jī)的五大基本部件及所謂的放諾依曼體系。五個(gè)部件分別是,CPU,其實(shí)CPU里面包含了兩個(gè)部件集成,第一個(gè)部件是運(yùn)算器。他只要是做算術(shù)運(yùn)算和邏輯運(yùn)算等各種各樣的運(yùn)算的,所以把它稱之為運(yùn)算器。那第二個(gè)就是控制器,比如我們控制的總線的使用權(quán)限。我們等會(huì)改大家做一下簡(jiǎn)要的描述,比如說(shuō)沒(méi)他還需要完成尋址控制對(duì)內(nèi)存當(dāng)中的訪問(wèn)權(quán)限是做讀訪問(wèn)還是寫訪問(wèn),等等,這一切都是由CPU來(lái)完成的。另外,cpu內(nèi)部其實(shí)還有大大小小眾多的寄存器,其實(shí)就是內(nèi)部的存儲(chǔ)器,我們稱為寄存器,額外還有緩存,很多同學(xué)都聽說(shuō)過(guò),這兩個(gè)都是用來(lái)實(shí)現(xiàn)存儲(chǔ)數(shù)據(jù)的。緩存又分為了一級(jí)緩存,二級(jí)緩存,三級(jí)緩存等等,而最核心的部件無(wú)非是運(yùn)算器和控制器。

接著第三個(gè)部件值得是存儲(chǔ)器。這個(gè)寄存器和緩存僅僅是為了加速,為了提升cpu的性能而提供的輔助性工具,比如寄存器是用來(lái)所鎖存數(shù)據(jù)的,而緩存只是用來(lái)緩存數(shù)據(jù)的所以它并不是核心部件,而是一些加速部件。存儲(chǔ)器也就是我們通常在口語(yǔ)中的內(nèi)存,它被稱為RAM,也被稱為叫隨機(jī)訪問(wèn)存儲(chǔ)器(Random Access Mem)。所以把它稱之為RAM,而存儲(chǔ)器和cpu結(jié)合起來(lái)組成了計(jì)算機(jī)做核心的部件,而整個(gè)計(jì)算機(jī)也是圍繞著這三大部件,運(yùn)算器,控制器和存儲(chǔ)器就能夠展開的并完成所有操作。

不過(guò)除了他們之外我們說(shuō)過(guò)還有另外兩個(gè)部件,而這兩個(gè)部件僅僅是讓計(jì)算機(jī)能夠按需,按人類自身的需求完成數(shù)據(jù)加工的組件,第一個(gè)我們稱為Input設(shè)備,另一個(gè)是Output設(shè)備,所以稱為輸入輸出設(shè)備,輸入輸出就跟我們之前舉例子說(shuō)過(guò)的,想那個(gè)洗衣機(jī)一樣的道理。我們?yōu)榱四茏屜匆聶C(jī)洗衣服,他必須給我們一個(gè)接口能夠讓我們把衣服塞進(jìn)去所以這叫輸入設(shè)備,同樣的衣服寫完了我們還必須要把他取回來(lái),所以這就叫輸出設(shè)備,計(jì)算機(jī)對(duì)這個(gè)輸入輸出通常只是Input向計(jì)算機(jī)下指令,告訴他需要做什么,叫下指令。以及并提供需要加工的數(shù)據(jù)等相關(guān)的操作的,而output呢,通常就是將對(duì)方計(jì)算結(jié)果輸出,所以就是輸出數(shù)據(jù)加工后的結(jié)果。大體上就是這個(gè)樣子完成這幾個(gè)操作,所以我們說(shuō)CPU和存儲(chǔ)器才是最核心的部件。

但是各位又有一個(gè)問(wèn)題了,我們計(jì)算機(jī)是如何能夠從存儲(chǔ)器中取得數(shù)據(jù)呢?簡(jiǎn)單的講,其實(shí)在馮諾依曼體系中,也定義了另外一個(gè)概念,叫做程序,是由指令加數(shù)據(jù)組成我們此前也提到過(guò)很多次,指令就是指計(jì)算機(jī)需要操作的命令,比如我們做加法做減法等這種叫做指令,當(dāng)然我們從內(nèi)存的某個(gè)位置取得數(shù)據(jù)也叫做指令,但是數(shù)據(jù)本身則是被加工的內(nèi)容,另外,程序還可以分為另外兩種方式,后面我們講到shell變成是可能更容易理解。程序也是由所謂叫算法加數(shù)據(jù)結(jié)構(gòu)組成,什么叫算法能?同樣的道理,我們從下載的位置走到天安門廣場(chǎng)肯定有N多條路徑可以到達(dá),所以我們要計(jì)算出,哪一種方式對(duì)我們是代價(jià)最低的。我們就走這條路徑。那問(wèn)題是我們要現(xiàn)在走到廣場(chǎng),我們算出來(lái)說(shuō)乘坐直升機(jī)是最快的,而且代價(jià)呀不是很高是能接受的,問(wèn)題是我們能夠完成打飛的將你運(yùn)過(guò)去,這個(gè)飛的應(yīng)該具有這樣的組成格式呢?最起碼要運(yùn)載一個(gè)人,如果要是一個(gè)簡(jiǎn)單的無(wú)人機(jī)的話,壓根是承載不了一個(gè)人,很顯然這種操作我們是無(wú)法執(zhí)行的。所以,數(shù)據(jù)就夠則是用于表明這種指令這種算法本身,他們要完成數(shù)據(jù)加工,我們?nèi)绾螌?shù)據(jù)放置到可放置數(shù)據(jù)的位置,以及按照哪種格式進(jìn)行組織,人們發(fā)現(xiàn)無(wú)人機(jī)也能將人運(yùn)過(guò)去比如將人切成沒(méi)一公斤一塊能運(yùn)過(guò)去,這也是一種數(shù)據(jù)結(jié)構(gòu),所以說(shuō),不同的算法通常而言需要對(duì)應(yīng)不同的數(shù)據(jù)結(jié)構(gòu)。不同的算法對(duì)于不同的數(shù)據(jù)結(jié)構(gòu)來(lái)說(shuō)是有很密切的關(guān)系的有些數(shù)據(jù)結(jié)構(gòu)用A算法效率較好,有些數(shù)據(jù)結(jié)構(gòu)用B算法效率較好,就像剛剛給大家描述的那樣。所以說(shuō)程序是由指令加數(shù)據(jù)組成,指令怎么跑,對(duì)于計(jì)算機(jī)來(lái)講cpu就是跑程序的或者說(shuō)是跑指令的。

而cpu又有運(yùn)算器和控制器組成,我么你將兩者給劃分開,給大家描述一下。假如說(shuō)做左側(cè)是運(yùn)算器,右側(cè)是控制器,

然后底下再加上存儲(chǔ)器里面有數(shù)據(jù)告訴cpu做加法運(yùn)算,

于是,cpu上一定有一個(gè)指令是在cpu芯片設(shè)計(jì)時(shí)其內(nèi)生在硬件邏輯上要支持加法運(yùn)算,不支持則無(wú)法運(yùn)算,所以這個(gè)就是cpu自己支持的指令,而cpu能夠做加法減法乘法除法運(yùn)算等,那么所有的指令結(jié)合起來(lái),對(duì)cpu而言就叫做指令集,即所有能夠執(zhí)行的指令的集合。指令集大體上有分為兩類,一類叫做不同指令,一類叫做特權(quán)指令,普通指令就是算一算一加一等于幾,他的操作幾乎時(shí)對(duì)其他人時(shí)沒(méi)有影響的,但是如果告訴你把內(nèi)存清空,大家應(yīng)該明白,所有的數(shù)據(jù)都在內(nèi)存中,如果把內(nèi)存清空就意味著也把其他人的數(shù)據(jù)清空,這個(gè)時(shí)候有可能危及到其他人的。

比如說(shuō),來(lái)一顆原子彈往東京扔過(guò)去,這實(shí)際上是影響到別人的,何種操作時(shí)不被允許的,但是要是在西伯利亞那個(gè)萬(wàn)里無(wú)人區(qū)扔一顆問(wèn)題不大,是可以做核試驗(yàn)的,所以希望各位理解指令集操作的概念。好的,同樣的道理,對(duì)于這的存儲(chǔ)運(yùn)算器來(lái)講他是有各種各樣的指令的,控制器也有各種各樣的指令,不過(guò)運(yùn)算器通常只是做運(yùn)算,而控制器這是控制這幾個(gè)部件來(lái)協(xié)調(diào)也包括尋址操作。來(lái)個(gè)大家簡(jiǎn)單描述一下存儲(chǔ)器跟他們彼此之間時(shí)如何結(jié)合的。

比如要做加法運(yùn)算,問(wèn)題是幾加幾,誰(shuí)加誰(shuí),數(shù)據(jù)時(shí)在什么地方存放的呢,指令是cpu自己支持的,那我們要算的數(shù)據(jù)在什么地方,加工點(diǎn)對(duì)象在什么地方一般來(lái)講這就需要到存儲(chǔ)器來(lái)存儲(chǔ)數(shù)據(jù)了,而我們看到的就是那個(gè)內(nèi)存設(shè)備,而再其內(nèi)部是劃分成各個(gè)存儲(chǔ)單元的,每一個(gè)單元加入叫做一個(gè)存儲(chǔ)細(xì)胞,每一個(gè)sell的大小是固定的,而在歷史上各種各樣說(shuō)不清道不明的原因,每一個(gè)sell的大小是8位,

自此之前的預(yù)科學(xué)前班當(dāng)中各位知道,我們的計(jì)算機(jī)是按位以二進(jìn)制的方式來(lái)存儲(chǔ)的,8位指的就是8位二進(jìn)制,最高只能存8個(gè)二進(jìn)制數(shù)字就是0,1當(dāng)中的任何一種變化形式。每8位組成一個(gè)sell一個(gè)存儲(chǔ)單元,這每一個(gè)sell所提供的存儲(chǔ)單元通常稱為一個(gè)字節(jié)叫做一個(gè)Byte。把他分為大B和小b的概念,小b通常是bit是位,而大B指的是Byte這個(gè)Byte指的是8位二進(jìn)制,這每一個(gè)存儲(chǔ)單元都是由8位二進(jìn)制組成注意我們對(duì)內(nèi)存而言最小的存儲(chǔ)單位就是字節(jié)不能再小了,哪怕是存儲(chǔ)一位數(shù)據(jù)也是占用一個(gè)字節(jié),另外7位只不過(guò)是空的,對(duì)你來(lái)講沒(méi)有用,所以大家一定要是知道最小尋出單元指的是什么。就像你買東西一樣,對(duì)方說(shuō)按斤起買,少了不賣這其實(shí)就是最小存儲(chǔ)單位。

問(wèn)題是,我們有這么多個(gè)存儲(chǔ)單元格子,我們想訪問(wèn)數(shù)據(jù)時(shí),我們要訪問(wèn)區(qū)計(jì)算第8個(gè)sell和第3個(gè)sell之間兩個(gè)數(shù)字之間的和,問(wèn)題是我們?cè)趺茨軌蛑赖?個(gè)格子在什么地方,第3個(gè)格子在什么地方,對(duì)我們?nèi)硕院苋菀桌斫?,比如說(shuō)對(duì)于北京市來(lái)將他又某個(gè)路,某某單元,某某號(hào),某某棟等等來(lái)進(jìn)行編制的。這每一個(gè)位都可以住人,所以可以理解位人就是一個(gè)數(shù)據(jù)。就是組織在這樣一個(gè)對(duì)應(yīng)的能夠存儲(chǔ)人類的地方的房子,這樣就稱為存儲(chǔ)格子。那么為了每一個(gè)格子能方便的找到,所以我們給他做了編制內(nèi)存也是一樣的道理,相信各位也容易理解。內(nèi)存當(dāng)中的每一個(gè)sell都是有地址的,而對(duì)于計(jì)算機(jī)來(lái)講他們叫電子數(shù)字計(jì)算機(jī),所以他們更容易理解的時(shí)數(shù)字而不是字符串,不像現(xiàn)實(shí)生活中我們叫北京市,比如某某胡同,某某巷。某某街,某某號(hào)之類的,

這兒統(tǒng)統(tǒng)按照數(shù)字進(jìn)行編制,而且數(shù)字編制時(shí)我們必須能夠在一個(gè)平面下編制完成才行,什么叫做一個(gè)平面下,比如對(duì)于一個(gè)北京市而言,北京市一號(hào),北京市二號(hào),北京市三號(hào),問(wèn)題是大家想想我說(shuō)北京市一號(hào),你知道北京市一號(hào)在什么嗎?我們就無(wú)從得知了,所以說(shuō)我們有一個(gè)或者說(shuō)為了讓我們知道有一種特定的邏輯性編碼,從南向北,橫過(guò)去一排,橫過(guò)去的時(shí)候我們就自東向西然后開始編12345678……那這樣子就編譯在了一個(gè)平面下,而天安門可能就是北京市第100號(hào),因?yàn)槿藗儙抛畲笠膊畈贿^(guò)100,所以就給他是北京市100號(hào),我只是舉個(gè)例子這樣說(shuō)明,這種就叫做一個(gè)平面單元。在一個(gè)平面單元下我們能編多少呢,假如說(shuō)我們只有3000號(hào),如果說(shuō)我們北京有了3001號(hào),那號(hào)怎么辦呢,在我們的戶口部上就沒(méi)他了。我們無(wú)法找到他,這就溢出了,但不管怎么講,剛剛我們描述的這種就是平面編制,我們發(fā)現(xiàn),編碼不方便,查找也不方便于是我們可以把他劃分成N層的立體編制方式,比如北京市海淀區(qū),朝陽(yáng)區(qū),像這樣就是一個(gè)立體編制方式了我們從一個(gè)大空間縮小到了若干個(gè)小空間,小空間還可以在此縮小空間。但是內(nèi)存不能,內(nèi)存的便是方式是一個(gè)在平面結(jié)構(gòu)下進(jìn)行編制的,他的編制方式必須能夠容納所有的內(nèi)存空間才可以,而歷史上有說(shuō)不清道不明的原因,cpu有字長(zhǎng)的概念,比如有8位cpu,16位cpu,32位cpu,而現(xiàn)在更多的是64位cpu,你知道這個(gè)位是什么概念?巷32位的cpu指的就是,我簡(jiǎn)單的來(lái)講,就是他的詩(shī)句存取能力一次是32位二進(jìn)制你可以想象成在32位cpu之前有32并排的跟線,每一根線對(duì)于計(jì)算機(jī)來(lái)講無(wú)非就是通電不通電,有電壓無(wú)電壓,所以用來(lái)表示有電壓表示1無(wú)電壓表示0。

因此有32根線沒(méi)跟線只有兩種狀態(tài),就是0或1.,大家可以想象一下,有32根線能表示多少不同的變化呢?在高中的時(shí)候,我們學(xué)過(guò)排列組合的概念。每一根只有兩種變化,一共有32根線組合起來(lái)有多少種變化呢2的32次方種變化,所以這個(gè)cpu最多只能引用2的32次方的不同的位置,對(duì)于32位的cpu來(lái)講他最多只能理解2的32次方的sell大概是40多億個(gè)。

2的10次方是1024。2的10次方做10進(jìn)制換算2的10次方=1024,2的32次方就等于1024乘以1024再乘以1024在再乘4.本來(lái)默認(rèn)一個(gè)最小存儲(chǔ)單元是字節(jié)所以結(jié)果就成了把他做一次向上進(jìn)制所以KB指的是1024個(gè)Bytes所以就相當(dāng)于1024再乘以1024在再乘4.個(gè)KB那再來(lái)一個(gè)1024就是MB了所以將這個(gè)單位換算成一個(gè)1024乘以4個(gè)MB。M和G之間又相差一個(gè)1024所以就成了4個(gè)GB,所以K在計(jì)算機(jī)術(shù)語(yǔ)當(dāng)中表示1024為單位進(jìn)行進(jìn)制的,

而在十進(jìn)制中k是以1000為進(jìn)制的,所以現(xiàn)實(shí)生活當(dāng)中我們買U盤也是這個(gè)道理。生產(chǎn)廠商是以1000為進(jìn)制單位的而計(jì)算機(jī)識(shí)別是以1024為進(jìn)制單位的所以買了一個(gè)32g的U盤一格式化發(fā)現(xiàn)只有29點(diǎn)多G,而是無(wú)良廠商使用了和計(jì)算機(jī)不一樣的進(jìn)制來(lái)描述的。所以32位的cpu最多可以使用4g的內(nèi)存。所以這里的每一個(gè)內(nèi)存單元,都是使用了32位的二進(jìn)制對(duì)32位的主機(jī)來(lái)講進(jìn)行標(biāo)識(shí)的你如第一個(gè)那就是前面是31個(gè)0或者說(shuō)全是0所以用32個(gè)0,標(biāo)識(shí)第一個(gè)存儲(chǔ)單元,01標(biāo)識(shí)后面的單元,10標(biāo)識(shí)后一個(gè)單元……

所以是在同一個(gè)平面下進(jìn)行編制的,因此所有的內(nèi)存包括我們手機(jī)上的那個(gè)內(nèi)存也是基于這種方式來(lái)定義的。因此計(jì)算機(jī)運(yùn)行程序是怎么運(yùn)行的呢。什么叫指令加數(shù)據(jù),對(duì)于計(jì)算機(jī)來(lái)講,他能夠運(yùn)行指令加數(shù)據(jù),我剛剛說(shuō)過(guò),程序是有程序員變寫的程序員寫好的程序應(yīng)該放哪啊,通常是放在外部設(shè)備上的,寫好的程序要做永久存儲(chǔ)會(huì)放在硬盤上因此這個(gè)程序要想能夠運(yùn)行就必須首先裝載到內(nèi)存中因?yàn)閏pu只能跟內(nèi)存打交道不可能跟硬盤直接打交道所以所有內(nèi)存都應(yīng)該先裝入內(nèi)存,硬盤其實(shí)是一個(gè)IO設(shè)備。

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國(guó)內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!