程序教程基礎_電腦是個啥玩意

世界上最早的計算機

起源

在小時候叼毛我給家人逼着去背當時自己不明白的口訣,什麼 一上一,二上二,三上五除二……(有興趣的朋友自己去google裏百度 算盤 606口訣). 現在想想當時背的是一套多麼高深又簡單的數學模型和算法. 這個模型和算法經歷了2600多年的歷練和優化。而且現在還在用.(自己去小城市的一些店鋪裏看看是不是還有很多的掌櫃也可能是老闆用的是這個神器).所以歷史在一次向我們證明,經得起人們折騰的東西纔是好玩意。我個人相信這東西還會繼續延續下去。因爲這東西了維護成本幾乎忽略不計的,二期可用性非常強,對使用者的要求不高。不需要太多太多的專業知識,最重要的就是這神器遇強則強遇弱則弱(其實我們老祖宗給我們留下的很多寶貝這樣的)。不像大家見到的電子計算器這些電子產品,有壽命還有維護成本。所以這是多麼難得的可貴的而且偉大的神器.讓我們來看看這個神器的真正面目:

   

別問我爲什麼用兩張圖片,我只想告訴您.在這2600多年中不管是平民百姓還是商業大咖.都在用這個神器.順便告訴大家一個大祕密.這件神器讓各位過上幸福的生活和不可磨滅的貢獻.因爲我國的原子彈就是靠幾屋子人用算盤的算出來的.當然在中國古代非常多的著名的建築在動工前的計算也離不開這神器。


國際巨人----IBM的崛起之初

上面講了我國最早的計算機現在我們來看看在機械革命後外國人發明的計算機,說到計算機我不得不說到IBM的創始人赫爾曼·霍爾瑞斯教授,他於1888年發明自動製表機——首個使用打孔卡技術的數據處理機器。自動製表機用於1890年以及後續的美國人口普查,並獲得巨大成功(發現沒有,不單是在國內是政府的錢好掙,國外也是,看看IBM和oracle的崛起就知道了)

 

看看是不是和我們的算盤非常像呀.加上機械的概念讓人家一下就覺得高大上.其實就是盜版了我們的算盤.第一張圖片就是把我們的算盤立起來.這是把算珠換成了紙(外國人也懶.本來是非常簡單通用的東西就硬生生的搞成了複雜不通用的東西,可能是人家沒有背上面的口決吧)


然後我們在看看第一臺所謂的電子數字試計算機

 

圖片看看就可以了,我只會告訴你,現在你用的手機比他要強NNN倍.但是這臺電腦最早用的輸入設備就是打孔機,就是在紙片上打孔(想想和你在算盤上撥盤珠是一個道理.沒有什麼高深的,而且打孔非常非常簡單.比在算盤上撥盤珠要簡單好多倍這就是我上說上面這些廢話的原因了).

Debug的由來

順便說一下debug的由來.就是當年有一女神 葛麗絲·霍波(Grace Hopper),辛辛苦苦把打好孔的一疊紙張塞入 馬克2號(Harvard Mark II)中去,然後嘴上說:天靈靈,地靈靈,這臺電腦聽我令.給老孃運行起來. 結果估計這妞平時欺負多了這臺電腦.電腦就是不聽話.這樣一下這女神就不幹了. 捲起袖子就馬上就成了女漢子,就開始拆電腦了. 拆開繼電器後,發現有隻飛蛾被夾扁在觸點中間,從而“卡”住了機器的運行。於是,霍波女神詼諧的把程序故障統稱爲“臭蟲(BUG)”,把排除程序故障叫DEBUG,後來這個就非常優良的延續下來了,成了計算機領域的專業行話。


計算機的發展

其實任何事務的發展都是向兩個方向發展的,通用性(說白了就是平民化大家都可以用的),專用的(說白了就是定製的貴的 土豪用的).計算機也是,如PC就是個人電腦的英文縮寫.就是通用的, 還就是巨型機,服務器這些就是專用的.具體我就不多介紹了.因爲介紹了也沒有用,能接觸到的不用我介紹,不能接觸到的我介紹也沒有用.但是這些計算機有一個同用的特點那就是他們都遵循了 馮·諾依曼結構

馮·諾依曼結構

什麼是馮·諾依曼結構呢?先我們在回到我們剛剛的算盤上來.看看你要算個數你會在算盤上去撥動一個算珠. 對就是這個算珠.別小看這個玩意.這個東西可以充分的體現我們老祖宗的智慧.爲什麼呢.我們來分析一下.如你要算一個數.如 123456*56789 正常情況下你會首先聽到或者看到 123456 這個數 你可以記到本子上 然後看到 乘號 在記到本子上 在看到56789 在記到本子上這樣子的話你的本上就如下

然後在通過您那聰明的 大腦來高速的算出來結果通過筆寫到本子上或者通過嘴說出來 .

看看你算這個的時候 你用了些什麼呢  通過眼睛去看(或者通過耳朵去聽)題目 (輸入),然後藉助本子去記題目(存儲).在運用您那聰明大腦去算 (運算) 這個題目,最後過筆把結果寫到本子上(輸出).要是你高興的話你可以用嘴大聲的讀出來 (輸出) ,這些步驟都是在你聰明的大腦的指揮下有條不紊的進行的(控制器).當然你要是想惡作劇使壞的你也可以故意寫(說)一個錯誤的結果(控制器),這主要是一個正常人算一個數學題目的基本過程(非常人的那些看一眼就知道結果的牲口我就不討論了)

好在回到前面我們說到的算盤,你要算一個數先是在算盤上把珠子調整到這個數.然後在聽下一個數在去同過你的手指在上面飛舞很快就可以算出結果了(注意這是不用你的大腦算的)

看看這裏可以讓你省下了筆 紙 還有就是你的聰明的大腦也可以少死一點細胞.完全就是算盤上的珠子的功勞.這充分體現我們老祖宗的聰明才智了.把輸入,輸出,運算,存儲完美的結合在一起了,只要你的手來充分的控制他.就可以了.

但是外國人沒有可能沒有用過我們的算盤.所以他們體驗不到我們中國算盤的強大之處.只有通過自己的算數的基本步驟來設計一臺電腦.根據上面我們分析的計算一個數的步驟和要用到的一些東西然後在抽象成了一臺計算機要下面5個基本的組成部分.

主機,顯示器,鍵盤,鼠標,音箱(虛你們小聲點,我的計算機入門老師拿着斧頭正在趕來的路上,因爲我正在誤導人家子弟)開心一下,我來個正經一點的:

一臺計算機包括以下5大部分

輸入設備   如 鍵盤 鼠標 U盤  手機 等

輸出設備   顯示器, 打印機  U盤 手機 等

存儲設備   內存條  硬盤 U盤 光盤 鍵盤 算盤等 後面兩個不是

運算設備   CPU中的一部分由於外國猴子沒有發育完全什麼也照搬人類的大腦所以你懂得

控制設備   CPU 中的另一部分 

根據上面我們算數的過程然後抽象了一下計算機的工作流程如下:

 

輸入輸出設備沒有什麼講的了因爲我們在日常生活過使用電腦的過程中經常接觸過.有些設備你們比我還熟悉.特別是某些人鍵盤上的某些按鍵 譬如說 QWER這些鍵可能磨的字母都看不清了.所就現在我們來講講其他的設備

存儲設備

要是真心想學的朋友可能在認真的聽我在這裏一本正經人胡說八道,在記東西,要是記性和我一樣的兄弟(進入中年,記憶力衰退)可以在拿着本在記着我說的某些廢話.好了現在出來了兩個不同的東西事.一種是記到大腦裏(或者是心裏,具體這兩個有什麼區別自己去體會),還有一種是記到本子上.麻煩大家想想這兩種有什麼區別嗎?

對了,一般正常人(我們只討論正常人,非常正常的牲口我們不討論以後也是)記在大腦裏的有些東西可能過段時間就忘記了,甚至一轉身就忘記了.但是記到本子上的東西,正常情況下會一直在.(當然你的本子丟了,給老鼠咬破了不算),這樣的話計算機的存儲更具我們人類的這些情況可以抽象成內存(不管是你記在心裏還是大腦裏)和外存(你記到本子上的)

內存

上面講到了計算機的內存,只是沒有詳細說到有些事記到心裏和大腦裏的區別,現在我們來講個記到心裏和大腦裏區別.記得曾經一個非常非常好的朋友,在外面辛辛苦苦打了一年的工(我那個朋友高中畢業就出去工作了).結果高高興興回家過年.到我們縣城非常非常晚了.大半夜.想想回家了.非常開心.結果出事了.辛辛苦苦一年掙的錢給縣城的幾個騙子騙了個精光.這件事情他記到了心裏.終生難忘.

下面我在說另一件事,我去找一個朋友借錢,說好的多少錢去找他拿錢,結果到時間了他居然說昨天還記得的,結果今天早上一忙就忘記了.

看看人記在心裏或者大腦裏的也有區別.有的是終身難忘的,有的是過段時間就會忘記了.計算機系統的也是這樣的.所以計算機的內存又可以分爲 只讀存儲(愛過痛過刻苦銘心的),還有就是隨機存儲(愛過累過後的斷片)

ROM

愛過痛過刻苦銘心的,就是終生不會忘記的.就會停電了,你把主板砸了,裏面的信息還在的.這樣的存儲叫只讀存儲.電腦主板上有個叫BIOS的東西就是這個鳥玩意. BIOS 就是最基本的輸入輸出設備的意思,你開機時說 衆神歸位 聽我號令 然後在按一個特殊的鍵就可以進入到這個神祕的地主去.


RAM

重要有些事你可能當時記的過段時間就忘記了。在計算機裏抽象成了隨機存儲。隨機存儲也就是內存裏的東西可以讀取,也可以寫入。但是在計算機斷電后里面的所有的信息都會丟失。和你記在大腦裏的事情過段時間忘得一乾二淨差多是一個意思。

好了現在讓我們來看看內存長的是個什麼樣子,至少讓我們認識認識他吧。不然以後看到不認識就不要說聽過我的課。   


內存和變量的關係

現在我們把內存來看成是一個你做筆記的本字的話。那麼你把你的本子在做了點點提高效率的事情就是加上目錄。那麼以後你要在本字裏找一點你需要的找的信息就不需要從第一頁開始找了。只有從前面的目錄(索引)去找了。如你要用的數據在第5頁那麼你就直接翻開第5頁就找到相關的數據了。但是現實中你在電腦上要處裏的數據可能一頁放不完,要放好幾頁,甚至是幾十上百頁那麼你能完全非常清楚的記的那個數據在那一頁嗎?要是一般的普通正常人可能很少有這樣的能力。那麼腫麼辦呢?對就是給這內存區域取名。也就是變量名。你去設置變量的值就是把這個變量內存區域的值設置的相應的數據,你獲取這個變量的值也就是讀取這塊內存區域的數據(值)。

函數(方法)和變量名爲什麼不能以數字和特殊字符開頭

在很多的語言當中函數的名稱或者方法名稱和變量名稱不能以特殊字符或數字開頭,知道爲什麼嗎?好吧。其實不爲啥。就是因爲這做這些編譯器的人非常非常懶。不想去實現這個功能。因爲要實現這個功能工作量非常大。爲什麼呢。因爲前面的課程當中我們講了計算機是非常非常笨的一種機器。如下面幾個符號

1+2   3f   5*5   6&2   4(7f*0)*a *4  !1  =6

在計算機裏電腦是非常難判斷那個是算術表達試,那個是無意義的字符,所以那些程序編譯器或者解釋器的開發大牛們就遵循了一個通用的標準,以特殊字符或者數字開頭的都以算術表達試的方式去處理。所以就函數的名稱或者方法名稱和變量名稱不能以特殊字符或數字開頭,你要是想知道更多的話推薦去看《編譯原理》。

外存

上面說上課能有些兄弟會拿筆記到本子上。本子就是外存設備。當然你要是用鉛筆寫。那麼就算本子寫滿了你也可以用橡皮擦擦掉再繼續寫。這樣的就是你可以讀去以前寫的筆記,也可以擦除以前的部分筆記在繼續寫。而且在你的大腦忘記了或者斷片後還可以拿這個筆記本來看看。就是說外存斷電后里面的信息(數據)是不會丟失的。常用的外存有 硬盤 u盤等,

硬盤

硬盤的尺寸有3.5(臺式機用的)的和2.5(筆記本用的,當然臺式機或者小主機都可以用的)更多硬盤資料請看這片文章http://caipiao365.vip/article/15(個人電腦數據的安全防護之------<硬盤的日常保養)< p="">

現大來兩張硬盤的玉照給大家瞧瞧 機械硬盤(3.5,2.5的),和固態(SSD)硬盤。

         

上次一個朋友給我發了上面這張圖片。問我說他的硬盤是300G這右下腳的550是什麼意思,我告訴他是兩個250再加兩個 250*0.1的意思。當然是開玩笑的了。這不是550是SSD


運算器

我們在來談談一下我們人類來做數學運算的過程。因爲世界上所有的事情都有非常多簡單的事情組成的。數學運算也是這樣。各種數學運算最終都會抽絲剝繭變成加法和減法。因爲加減是其他運算的基礎。不管是算衛星的運行軌跡還是導彈的運行軌跡。最終都要用到基礎的加減法。好了廢話不多說了,如我說要你算一下 (5*6)+12等於多少你會馬上告訴我答案。但是你算的太快了。我們放慢速度來分析一下,先你聽到5你就會在你大腦裏暫時記一下5 在聽到乘6 你會把剛剛在大腦裏記的5提出來乘以6 並且算出 等於30, 再暫時記住他  在聽到加12 你就又在你的大腦裏把剛剛的30提出來 並且算出加12等於多少 再暫時存在你的大腦裏。好了,沿用我前面一慣的做法我們來抽象一下我們的過程。

一個運算器要包含的小部件有 

  寄存器 用來暫時存運算數據的地方 可細分爲:狀態寄存器、通用寄存器

運算單元 基本功能爲加、減、乘、除四則運算,與、或、非、異或等邏輯操作,以及移位、求補等操作

爲了方便理解我們來一張圖片來看看計算機是如何傻乎乎的做運算的(爲了簡單我們來一個邏輯運算吧,而且在程序中也非常用)

先來介紹一下邏輯運算有要有 非、 與、或這三個組成,聽字面上的意思大家就知道了。非 就是相反的意思。如:非零值那就是就這個值不是零

與 就是 A和B兩個都要存在

或 就是兩個只要一個存在就可以了

先來幾個例子如: 我要找你借錢, 

要是你不想借 你可能會說沒門 就是非操作。

要是你答應了還要問你愛人,你和愛人都答應了 那就是與操作

要是你或者你愛人兩個當中一個人答應了那就是 或操作


爲了揭開CPU裏面的運算器的神祕面紗我們來看看邏輯運算器的簡單電路圖片

 

當然要是你想了解更多的話請學習:《電子技術》,《數電模電》,《微機電路》這些基礎課程了。先要知道二極管PN結是什麼鳥玩意,NPN和PNP等等(電子是一門物理和化學結合的課程,看看多學些(或者瞭解)非本專業的知識是多麼的重要。)(又一個非的使用哦,我們生活當中到處在使用邏輯運算)


控制器

控制器這個東西就更好的解釋了,他就是一臺計算機的總司令,有他去管理什麼時候去讀取數據,什麼時候去做運算,做什麼運算。等等



CPU


閒話之電腦升級

運算器和控制中通常都是做到一塊芯片裏我們叫CPU。早期的CPU是焊死的主板上的(當然現在也有些電腦如工程機,或者是小主機 也是焊死在主板上的)後來由於硬件的更新速度快就沒有焊死了,爲了方便你升級,所以主板上的各種接口非常多。(順便也說一上以前大家去配電腦不要相信那些JS說的用什麼什麼東西。以後升級方便。因爲一臺電腦用了兩三年或者更長時間後你如果想升級的話還不如換一臺新的。爲什麼呢,你想要升級內存發現不是接口不一樣的就是速度不一樣。安裝上了可能會把電腦搞藍屏。還不如不升級。你想升級顯卡以前是VGA的接口,結果一升級是發現是DP的接口然道你還要去換顯示器。所以一般說要升級的硬件的時候我個人建議大家去配一臺新的電腦還省事)。

  

好了現在我來說說CPU,先看看前面的圖片,有針腳是不是呀。放心那是以前的CPU,現在的新CPU沒有針腳了。爲什麼呢?這就要從很久很久以前說起了。話說一個哥們晚上加班很晚而且當時還給工頭T了一頓(不要問我爲什麼用T,因爲是搞挨踢的),下班後想想自己多麼的苦逼呀,天天沒日沒夜的加班。越想越覺得自己好苦。然後就去喝悶酒。喝的醉熏熏的回家,回到給他老婆問這問那。講政治課,結果那哥們的小脾氣,一言不合就*****。後來據說他老婆的孃家來人了。恰巧他在修電腦,把主板 cup等都拆下來了。然後他老婆的孃家人和他非常愉快的講了很多的人生大道理,不過爲了讓他加深理解和印象讓他跪在地上雙手楸着耳朵聽完的。然後他老婆爲了讓他在長點記性就把他身邊剛剛拆的那塊CPU放到了他膝蓋下。我那可憐的哥們最後一把鼻涕一把淚向全球男人狗保護協會請求幫助。結果全球男人狗保護協會很快就接到並且處理也他的事情。就有了第二張圖片和的CPU。  

其實正真的原因是針腳的CPU在安裝和拆的時候容易造成針腳傾斜彎曲和斷掉。從而造成整個CPU的報廢。

上面的故事純屬虛構,如有雷同實屬巧合


單片機

上面我給大家看了CPU的圖片 內存的圖片 還有硬盤的圖片。所以說PC就是一個多片機。說這裏的時候,聰明的您就想到了要是我把這些東西集成到一塊或者兩塊型芯裏那就是不是叫單片機呢?對了,聰明的您一猜就準。

單片機(Microcontrollers)是一種集成電路芯片,是採用超大規模集成電路技術把具有數據處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調製電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊硅片上構成的一個小而完善的微型計算機系統。單片機也是電腦。和我們的生活息息相關。如你家的電冰箱,洗衣機,路由器,你天天用的手機。等等非常多。好多單片機裏的系統和裏面的應用是C寫的。但是還有好多的單片機裏的軟件可以支持用python來做。比如說你手機( 你可以搜 在應用市場上搜 python),你家的路由器,你可以刷成dd-wrt或者 open-wrt.就可以支持python了。看看單片機也沒有非常複雜。因爲單片機本來就比PC要簡單的多。

注意:本文屬於原創。首發於自己的博客: http://caipiao365.vip/article/24 

歡迎轉載,轉載請保留上面的鏈接謝謝合作。版權保留。

更多詳情見下圖:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章