硬件是怎么讓軟件工作的?
在悟空問答上的348個問題,只寫接地氣的科技內容,歡迎關注。
復雜的講不來,說點通俗的。先來問一下,你覺得你是怎么讓你控制你的身體運動的呢?
比如說你的手觸摸到碗,被燙了一下,然后你立即將手縮了回來。從這個流程來看,是不是得先有一個外界的輸入,也就是觸摸的碗是很熱的;然后皮膚將這個“熱”翻譯成感覺信號傳遞給大腦?大腦再做出相匹配的反應,然后輸出給手部的肌肉;肌肉接收到這個信號,做出相對應的反應,把你的手縮回來。那么我們其實說硬件就是手、大腦這些東西對吧?那么軟件是什么呢?是不是其實就是這一系列神經傳遞的東西啊?
實際上,從結果來看,是硬件控制硬件做出的反應,就像你伸手摸碗,最后縮回手臂,便面上改變的只是你的硬件狀態;而所謂的軟件,只不過是你身體內部神經之間的傳遞,你是摸不見看不著,但是卻真真實實感覺它們好像存在一樣。其實手機電腦也是一樣的。
我們用戶就是碗,鍵盤和鼠標就是人手,處理器+閃存就是大腦,存儲著預先設置好的各種指令供大腦調配,屏幕、音響、攝像頭、喇叭這些東西就是最終要做出反應的硬件。都知道處理器計算速度越快,電腦運行起來就越快,這就像是腦子聰明的人和腦子笨的人同時做100道乘法,腦子聰明的人肯定能更快算完(不就是從記憶中匹配出相對應的乘法口訣表)。電腦處理器也是一樣,同時涌入1W條需要處理的指令,每條需要匹配到相對應的指令最終輸出給預定的硬件,運算差的處理器需要的時間就越長,用戶感覺電腦運行起來比較慢。
電腦的輸入,是鍵盤和鼠標,每一個按鍵,都代表著一個特殊的信號,你敲打鍵盤,內部的邏輯是給到一個相應的信號,這個信號屬于高級語言,計算機并不能直接讀懂,因此中間就需要編譯器轉化為硬件能夠讀懂的匯編語言,也就是硬件的指令,這種指令其實已經被提前設置好(所謂的下載軟件是下載什么東西呢?其實就是這樣的一套預先設置好的指令集),也就是輸入什么指令,計算機就會從數據庫中匹配相應的指令輸出(這就是為什么大腦給你傳遞的信息是松手,你絕對不會握緊,因為這種指令是提前設定好的,松手的指令是松手,握緊的指令是握緊)。
所以說,我們平時所看見的所謂顯示屏上顯示的“系統”和“軟件”,其實本身只是硬件的不同形態而已,就像你此時看見這篇問答的時候,你看見的黑色字體,不過是屏幕像素點調整到了不同亮度組合而成的罷了,哪兒有什么所謂的軟件。軟件只不過是源源不斷在計算機內部傳遞的電信號,告訴硬件應該以什么樣的方式來展現給用戶,屏幕的幾百萬個像素點該怎么亮,喇叭應該怎么震動而已。一切的一切,都只是硬件的不同形態。