我對計算機的認識
這篇文章並不是我在翻閱大量書籍和資料得出來的學習領悟,而是我根據自己的認知猜測出來的東西。
也是我以後慢慢看書尋找答案的開始。
大學學了計算機基礎還有微機原理等課程,每當講到一些系統啊一些指令集的時候呀,這些概念性的東西就很模糊。
我們都知道第一代計算機出來的時候,一臺機器就有籃球場這麼大吧,全都是電晶體。什麼計算一個數據呀,好很久,這樣的計算機都是用來進行天文學計算的。我可不可以把他想象成文一個高階的算盤。雖然這樣的計算機很龐大,而且很容易看清楚其中的構造,但是他就是因為一些規則,就能簡化運算過程。就算打算盤,就是先學會或者說先規定怎麼怎麼打,計算的結果是什麼是什麼樣子的。
後來電晶體做小了,越來來越小,這樣能運算的的資料更大了,而且更需要規則來規劃他。
仔細想一下,其他的電子元器件,二極體,就是正向高電平導通,低電平不導通。怎麼通過那些硬體的裝置,來有規律的改變和處理這些我們輸出的資訊。怎麼把我們的資訊儲存在硬體中,等等等。
寫到這就涉及了好多東西,腦袋一下子就轉不過來了。
所以就總結一下,硬體能幹什麼,就是通過物質的物理特性都能幹些什麼東西:儲存資料或者規則(為什麼說的規則能,因為資料的某些特徵就是規則的未處理的起點),還有就是對資料的處理(就是不同的輸入起點就能得出不同的結果)。仔細想一下,這個就好像我們寫的程式碼,和對程式碼的處理這兩個部分。
怎麼樣把儲存的資料用在對資料的處理上,簡單的說就是怎麼把這個東西放在鍋中還是微波爐中。
也就是我們輸入10001用他原來的設定得到的是什麼能?我覺得這就是CPU的事情了。
我就回憶起來當時學的CPU原理的時候,說CPU有好幾個結構。為什麼CPU能處理這麼多資料呢,必定是這些規則已經制定好了,可是要制定這麼多規則出來,那CPU不是非常大,所以我就去查了一下,發現原來分塊的,有算術邏輯遠算單元,有暫存器組單元,有什麼什麼之類的,這不就是好像2+3+5+3這樣加起啦CPU會很大,而把它分為幾個模組而且具有特定的功能的話,就會小很多,就想3*3*4這樣。
下面我再去看看他們的這幾個某塊是怎麼連線的。這個百度不到呀,這可能就是CPU最核心的東西了吧,好像衍生出來的那個叫做指令集,指令集就是說我的CPU中的那些怎麼連結的。這樣一個硬體沒有生命的東西就變得能處理和分析資料了。
在把處理速度做快一點,好像就時鐘吧。只要我按照實現規定的10101011110這樣的東西來對CPU進行輸入,
為了讓我們對其能編寫自己的功能,就得程式設計了。就用高階語言去寫程式碼就可以了。
高階語言就好像把,計算機語言包裝了一下,露出了,我們看的懂的東西,然而我們寫的東西並不能直接被計算機識別,就是是為什麼有編譯,開發工具,就是把這些變成機器碼的。
這好像就是我我們學習51時候這樣做的,我們就是就這樣用MCU了,不過我們用MCU輸出的好像還是100101這樣的高低電平,然後再去弄硬體的東西,實現對硬體裝置的使用。
那為什麼為有作業系統呢?那個因該就是把,MCU和什麼儲存器呀什麼外接裝置都考慮進來,編寫的一個機器和程式設計之間的一個界限。這個界限,讓硬體的人和軟體的人分格開來,起到中間翻譯的人,也是優化的人,為什麼說是優化的人呢,因為軟體的說,我要存一些這個一些那個,硬體的人直接一點點的刻在硬碟上嗎?顯然不是,他們都進行了資料的整理。你存在哪,怎麼存,他存在哪,怎麼存,都一定規定好,這樣到時候再用到這樣的資料就很容易呼叫了。
這好像就從一堆硬體的東西轉到了軟體,這也就是我們現在使用的計算機了。方便快捷,不過好像他沒有什麼特別的能力,就是,資料儲存和資料計算。在我們的規定和方法下,能從事適合我們自己的計算結果。
好像寫完了,中途卡了一下,不知道怎麼寫了,不過還是一點點寫完了,應該很亂。
感覺最中心的東西就是,CPU就是處理資料,處理的方法,全是硬體的0和1的狀態來全部表現出來的。
記憶體儲存資料。沒了。
不敢回頭看自己寫來的,因該亂七八糟的。不寫了,真的是看來自己根本不熟的Linux作業系統突然胡想的東西。