硬件和軟件


最近在寫shell腳本,晚上在回家的路上,突然想起該怎麼把linux和硬件聯繫到一起呢?請看幾個對話

R師傅:

其實對我碼農來講,唯一可以看到的硬件連接就是USB了,因爲鍵盤是碼農寫軟件和Linux系統交互的平臺,幾乎也是唯一通道,原來硬件工程師就是做鍵盤值識別的啊?

Y師傅:

你沒有拆過電腦吧?你的電腦上電是一個非常複雜的過程,說了你也不懂。最簡單的,開機後一段時間,你的屏幕亮了,有聲音了,Linux系統也進來了,這裏面有無數的管腳配置,信號傳遞。。。

你們軟件不懂I/O的控制、信號和協議?那它怎麼實現功能呢?

R師傅?

比如一個shell的echo顯示,我關心的是:輸入是什麼,輸出又是什麼,這裏面可能有字符串命令匹配,循環,計算等等,還真沒有關注過怎麼輸入,怎麼輸出。

那麼電腦上很多軟件和遊戲,可以做很多事情,其實都是調用一套硬件設施,顯示?觸摸屏?聲音?鍵盤交互?鼠標交互?你們硬件功能好像很單一

Y師傅:

嗯,那就對了,底層直接控制IO口,我說怎麼老有Linux移植這一說,因爲我們打造更加簡單便宜的電腦。

例如,手機跑很多程序的時候,通過home鍵來回切換,其實是內存分配,cpu分配,硬件交互所有權分配的過程

點擊屏幕時候,對於硬件來說輸出就是座標,但是同一個座標值進入到不同 的程序代碼裏面去,結果就是不同的。

這是因爲鍵值通過cpu傳遞給了不同的app接口,軟件做的好複雜啊,不過功能再複雜,對我來說輸出還是一堆number,只是顯示出來的圖像,客戶會理解。

截屏功能,兩個鍵一起按下,我就告訴軟件一個信號,然後它把當時的顯示設置保存,其實就是圖片。

網線,無線,其實都是獲取一串高低電平信號,信號來了軟件處理完,纔去驅動的硬件。以前一直覺得軟件很虛難以看透,現在看應該是實現不同的展示,那麼cpu頻率足夠高,內存足夠大,軟件豈不是無敵了?

R師傅:

對啊!

Y師傅:

哈哈,硬件速度是不斷髮展的,但是短期也是有限的!

發佈了31 篇原創文章 · 獲贊 1 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章