浙江11选5走:006 | linux發展歷史-02

浙江11选5任3遗漏 www.ehxis.com 本文為《跟馬哥學linux》系列文章的第五篇,上一篇文章為《 linux發展歷史-01》。

假設說一個程序需要運行首先這個程序文件必須從磁盤給他裝載到內存上,這是第一步,而程序是又指令假數據組成,這就意味著指令和數據都在內存中,比如指令做加法運算加誰,加第一個內存單元的數字和第三個內存單元中的數字,加完以后放哪去等等,背后會涉及到一系列復雜的問題,因此不管怎么講要知道指令和數據全都在內存中存放,假如說前三個格子方的是指令,后三個格子方的是數據。cpu首先要加載第一個指令在這個指令當中會告訴cpu運算的數據在什么位置。

所以這個時候cpu會找到對應的內存單元當中把數據取出來,假如說算的是第四個和第八個數字做加法運算,于是第一個我們先取出指令,第二個取出指令所關聯到的數據,于是把數據取出直接做加法運算,因此在此說明指令和數據都在內存中,都得先從內存中取出來才可以,

而內存就是指編制的存儲單元。雨點晦澀對嗎,我不知道朋友們能不能聽的懂大體上這么理解就可以,真是聽不懂就當故事聽了,回過頭來再看,但對我們而言這確實是基礎知識。繼續往后描述當數據取出來cpu開始把這些數據運算,運算完會有一個結果事實上在此之前還有一個步驟指令運行完以后還有第個指令還有第三個指令,沒準還要進一步加工所以能夠讓cpu知道運行完第一條指令后緊接著運行第二條指令在什么地方,cpu內部就有了寄存器,寄存器叫做register,他主要保存的是就像最長的就是指令之指針寄存器。我們稱之為PC,這個PC指的是什么呢比如當我們加在完指令后。每一個程序指令運行大體上是有算法+數據結構組成也就意味著一個程序的多條指令是有關系的,

這種語言對于一個過程式編程語言來講,他內部的邏輯無非只有三種,今天我們先來了解一下。第一種是順序執行,挨著執行,先執行第一條,再執行第二條,第三條,這叫順序執行,第二種稱為循環執行,也就意味著,我們將代碼像拉貨似的進行來回運算N編,叫做循環執行,第三種叫做選擇執行選擇執行就是我們的代碼可能有10條但是分成兩類,比如說再你面前有兩次機會左輪手槍中3個槽有子彈,3個槽沒子彈,現在給你一個機會讓你選擇一個抓鬮,輪盤賭。類似于這種形式的所以選擇執行大體上就是有一種位真是我們就執行為真的代碼否則就執行另外一種代碼,分成兩種情況,當然有時也會分為N中情況這種球成為選擇執行只執行代碼中的一部分。

接著,cpu執行完第一條指令后為了不耽誤時間需要知道第二條指令在什么地方因此寄存器就保存了下一條指令保存在哪個位置,哪一個存儲單元中放著,所以叫指令指針寄存器。我們在做加法運算時首先要取出被加數接著再取加數,兩者只能是依次進行,而不能同時進行,所以第一個數取完以后要先暫存下來再去取第二個然后才能做運算而暫存下來的數一樣也用到了數值寄存器等等,內存跟cpu比起來非常慢迄今為止內存的工作頻率在1888,160……比起cpu主頻來講像3G赫茲要慢的多的多,也就是說cpu說一句話,的空轉兩圈內存才可能接收到指令所以cpu比內存要快的多。

為了兩者之間不會耽誤太長時間,在cpu內部就引入了各種各樣的緩存,其實cpu的緩存越大就以為這他內部的提取的數的命中率越高,命中率越高就意味著性能越好,同樣的主屏下cpu的緩存越大就越貴,因為cpu緩存的工作機制與內存的工作機制不一樣造價比內存要高,另一方面,cpu的面積時有限的盡可能的越做越小所以cpu中的緩存非常小,而且,比如我們cpu的緩存從512增長到1兆價格就要翻一倍所以千萬不要小瞧緩存,對于互聯網時代,緩存為王。這是加速當中非常重要的解決方式,在計算機中有一個特性,這種思維邏輯就是,任何兩個層次之間在速度上或在邏輯上,只要是不暇接就加中間層比如cpu快內存慢怎么辦?加中間層就是緩存層,還有語言是一樣的道理,人說的機器聽不懂,怎么辦?加中間層,用編譯器來實現通常都是這么著來解決問題的所以任何包括人類社會領域也是一樣的任何兩個層次之間不能快速流暢銜接的話我們只需要加一個中間層來解決問題。加一個中間層會在一定程度上影響性能,但是提升的效果要比提升的效果號很多,比如果和老外交流,對方說英語。我們說漢語,為了交流我們得學會英語這個可能得需要一兩年的功夫但是找一個翻譯只需要幾分鐘就可以搞定。這個就時我們計算機內部的簡單工作法則。而硬件本身時沒有任何指令和任何程序所以說程序員寫的軟件非常關鍵,計算機自己被制造出來后他內部并沒有帶程序所以程序員需要寫好程序把指令和數據輸入給計算機讓計算機能夠運行,并且講運行后的結果反饋給我們所以就需要輸入輸出設備,這種輸入和輸出通常被稱為I/O設備,

比如像磁盤他即能輸入又能輸出,在計算機的角度來想,即能夠從磁盤中讀出來數據,我們把數據加工以后還可以存到磁盤中去,所以他既是輸入又是輸出,鍵盤可以輸入還能輸出嗎,他不能接受給我們做回饋,不過現在有一些增強現實的一些設備時可以的,比如現在用的手柄,玩游戲時可以有震動回饋,他也可以輸出要看你的設備是否支持輸出機制,有些鍵盤可能有震動,比如說玩游戲是有問題了走在一個非常不光滑的路面上時鍵底下可能有震動,通常交互式設備,娛樂設備通常時有輸出的,但是我們鍵盤是不可以的,另外一個像我們的鼠標也是個輸入設備,不能做輸出的。

最常用的輸出設備是什么?顯示器了,這是一個輸出設備,而且是一個最為廉價的輸出設備,是人類計算機誕生開始到現在最為廉價的輸出設備了因為早些時候的輸出設備是穿孔紙帶,任何一次輸出都需要弄一條紙帶在上面打孔,有空的地方標識1,沒空的地方標識0這些記錄員再將這個翻譯成二進制在轉換成十進制在根據碼表在轉換成字符,像早期的電報就是通過這種方式來發報的,幾長幾短,幾短幾長,早期的時候莫爾斯碼就是這種方式實現,那么莫爾斯碼中我們按下去馬上迅速抬開標識0,按下去持續元短時間在抬開標識一個1那么按下去很長時間再抬開這表示幾個一。我們要輸入的數據是01110,那是幾個1呢,雙方必須按照同一時序進行工作,要么是同步要么是異步,異步的話要實現定義好比如每一毫秒的時長標識一個1如果按下不松開這就是1000個1.所以時間再數據傳輸過程中是至關重要的沒有時間我們將無從知道是一個1還是一堆1,這就是為什么計算機內部會有頻率,每一個頻率是指在一個時鐘周期內,時間結束了干一件事就干完了是這樣的意思。這就是為什么主頻越高,cpu的性能越好所謂3G赫茲就是指1秒鐘內能做3G赫茲次的操作30多億次運算如果是1g赫茲就只能做10億次運算了。所以一直叫赫茲,赫茲指的是頻率。像現在的顯示器如果我們要用打印機輸出的話。每一張紙打印后就不能用了,我們很難對他清理,但顯示器不是,顯示一屏再一屏好像也沒什么價錢,所以一次購入后能億萬次的使用因此我們說他是最廉價的輸出設備而且是最直觀的輸入設備。早期的輸出設備是一級顯像管現在都是液晶的了不過哪種顯示器再顯示色彩上,色調上更逼真了在有些場景中可能會使用。大家要知道這是一種輸出設備就可以了。而我們的整個計算機也就是由所謂的5大基本部件組成,但是我們買了一臺計算機或者買了一個沒有裝系統的筆記本發現我們什么事也做不成因此我們就需要程序。軟件才是真正幫助我們干活的那么一個東西但是我們的計算機從最初發展到今天帶蓋爺經歷了好幾代了我相信很多同學再上計算機顆的時候老師會講計算機發展經過了四代,有什么電子管時代,晶體管時代,集成電路時代,然后是超大規模集成電路時代,現在不知道事什么時代了,據說中國的某一家組織某一個研究所已經快研究出光子計算機了,量子計算機了,據說全球人民都在搶奪量子計算機這一制高點,像現在的計算機是電子計算機,是基于電子來進行計算的那下一時代有可能是光子的也有可能是量子的對于量子而言,一般來講,一個電子只能標識2個數字,要么是0要么是1但是對于量子而言他是種模糊態他的特性是不確定的有各種各樣的可能性,舉個例子。從這到天安門有多少條路可以走,發現有無數條路可以去,只要不走就是模糊的,但是我們一旦選定了這個狀態就確定了,大體上就是這門一種形式。當你不觀測時特就像一個波,觀測時他就是一個電子。如果根據這種態來實現數據記錄的話,很可能任何一個事態再觀察之前是模糊的他能存儲N種可能性這就是的同樣的位比如10位類存儲數據,10位量子可能比我們現在的全球的所有的電子計算機加起來所能提供的運算能力和存儲能力都要強各國軍方都在研究量子計算機,因為量子計算機的計算能力超強無比,現在的各種加密機制,揭秘機制,防護機制在量子計算機面前不堪一擊我們有理由相信可能20年以后終結者會派回地球了來拯救人類了當年的被稱為skynet的公司變成google了。Google公司實在是太強大了背后研究的東西能夠超乎你的想像,比起國內的某度某巴某訊都不是一個量級的。我們繼續說硬件設備。硬件設備他不能完成具體的操作,要完成某一個任務靠的是軟件程序,這個就需要程序員啦,將來沒準每個人都會寫程序,否則再終結者面前都沒有生存能力,對于學運維的人來講有一個優勢你能找到唯一入口給他q一下終結者就q掉了。沒準20年以后我們生存下來的可能性比較大,所以現在學的是一個活命的技能。對于我們的軟件程序來講程序員需要寫程序,要想讓程序能夠在硬件上運行起來首先他得能夠根據硬件自己的程序邏輯來寫程序。

A公司所生產的cpu芯片,和B公司所生產的因為是商業秘密所以彼此之間是不會共享的。也就意味著Inter公司和AMD公司或者其他公司的cpu他的內部的執行邏輯都不一樣指令也不一樣。因此程序員寫程序就是查看cpu使用說明書,它里面會告訴你,怎么寫程序。而你寫的程序只能在這一類上cpu上運行,換個cpu就不行了因為我們寫的接口就是這樣子的。這是機器語言,說到機器語言可能過于底層。我們至少每一個芯片還有一種叫做微碼編程語言,而微碼編程語言跟你的芯片也是密切相關的用A微碼編的只能用于A類cpu同一家公司生產的cpu,會向后兼容為奔騰寫的酷睿能運行,為酷睿寫的奔騰不能運行,全球生產芯片的廠商是不是非常多,你寫的程序在A主機上能運行,到了B主機上卻運行不了,所以他們不具有通用性,這是第一個面臨的問題第二個問題,即便他們有通用性。我們的全球的cpu廠商一家公司使用同一個規范所研發但仍然會有一個問題,程序員寫程序。我們要完成的功能是只一個但是為了能夠讓這個功能在硬件上運行起來我們得寫很多的代碼才能支撐著這個跑起來,這是底層為了能讓硬件跑程序我們不得不寫的代碼。像驅動硬件,驅動程序就是底層代碼。

相關新聞

聯系我們

400-080-6560

在線咨詢:點擊這里給我發消息

郵件:[email protected]

工作時間:周一至周日,09:00-18:30

QR code