目前所在位置 目前所在位置
計算機概論實務 計算機概論實務

 

  • 輔助人腦的好工具

所謂的電腦就是一種計算機,而計算機其實是:『接受使用者輸入指令與資料, 經由中央處理器的數學與邏輯單元運算處理後,以產生或儲存成有用的資訊』。


計算機的功能

 

  • 電腦硬體的五大單元

我們會知道其實電腦是由幾個單元所組成的,包括輸入單元、 輸出單元、CPU內部的控制單元、

算數邏輯單元與主記憶體五大部分。

 

 

 

  • 運作流程

如果不是很瞭解電腦的運作流程,假設電腦是一個人體,那麼每個元件對應到那個地方呢?

可以這樣思考:

 

 

  • CPU=腦袋瓜子:每個人會作的事情都不一樣(微指令集的差異), 但主要都是透過腦袋瓜子來進行判斷與控制身體各部分的活動;
     
  • 主記憶體=腦袋中的記錄區塊:在實際活動過程中,我們的腦袋瓜子能夠將外界的互動暫時記錄起來, 提供CPU來進行判斷;
     
  • 硬碟=腦袋中的記憶區塊:將重要的資料記錄起來,以便未來將這些重要的經驗再次的使用;
     
  • 主機板=神經系統:好像人類的神經一樣,將所有重要的元件連接起來,包括手腳的活動都是腦袋瓜子發佈命令後, 透過神經(主機板)傳導給手腳來進行活動啊!
     
  • 各項周邊設備=人體與外界溝通的手、腳、皮膚、眼睛等:就好像手腳一般,是人體與外界互動的重要關鍵!
     
  • 顯示卡=腦袋中的影像:將來自眼睛的刺激轉成影響後在腦袋中呈現,所以顯示卡所產生的資料來源也是CPU控制的。 
     
  • 電源供應器 (Power)=心臟:所有的元件要能運作得要有足夠的電力供給才行!這電力供給就好像心臟一樣,如果心臟不夠力, 那麼全身也就無法動彈的!心臟不穩定呢?那你的身體當然可能斷斷續續的~不穩定!

 

  • DRAM與SRAM

除了主記憶體之外,事實上整部個人電腦當中還有許許多多的記憶體存在喔!最為我們所知的就是CPU內的第二層快取記憶體。

我們現在知道CPU的資料都是由主記憶體提供,但主記憶體的資料畢竟得經由北橋送到CPU內。

 

 

  • 硬碟的物理組成

 

大家應該都看過硬碟吧!硬碟依據桌上型與筆記型電腦而有分為3.5吋及2.5吋的大小。

我們以3.5吋的桌上型電腦使用硬碟來說明。

在硬碟盒裡面其實是由許許多多的圓形磁碟盤、機械手臂、 磁碟讀取頭與主軸馬達所組成的,整個內部如同下圖所示:

 

 

  • 磁碟盤上的資料

既然資料都是寫入磁碟盤上頭,那麼磁碟盤上頭的資料又是如何寫入的呢? 其實磁碟盤上頭的資料有點像下面的圖示所示:

 

 

  • 傳輸介面

由於傳輸速度的需求提升,目前硬碟與主機系統的聯繫主要有幾種傳輸介面規格:

 

 

 

  • 連接周邊設備的介面

 

主機板與各項輸出/輸入設備的連結主要都是在主機機殼的後方,主要有:

  • PS/2介面:這是常見的鍵盤與滑鼠的介面,不過漸漸有被USB介面取代的趨勢;
  • USB介面:目前相當流行的一個介面,支援隨插即用。 主流的USB版本為USB 2.0,這個規格的速度可達480Mbps,相對之下的USB 1.1僅達12Mbps差異很大,購買周邊設備要注意啊! 不然copy一些資料到USB硬碟時,會吐血....
  • 聲音輸出、輸入與麥克風:這個是一些圓形的插孔, 而必須你的主機板上面有內建音效晶片時,才會有這三個東西;
  • RJ-45網路頭:如果有內建網路晶片的話,那麼就會有這種接頭出現。 這種接頭有點類似電話接頭,不過內部有八蕊線喔!接上網路線後在這個接頭上會有燈號亮起才對!
  • 其他過時介面:包括早期的用來連結滑鼠的九針序列埠(com1),以及連結印表機的25針並列埠(LPT1)等等。

我們以技嘉主機板的連結介面來看的話,主要有這些:

 

 

 

  • 機器程式與編譯程式

 

我們前面談到電腦只認識0與1而已,而且電腦最重要的運算與邏輯判斷是在CPU內部, 而CPU其實是具有微指令集的。因此,我們需要CPU幫忙工作時,就得要參考微指令集的內容, 然後撰寫讓CPU讀的懂得指令碼給CPU執行,這樣就能夠讓CPU運作了。

不過這樣的流程有幾個很麻煩的地方,包括:

  • 需要瞭解機器語言:機器只認識0與1,因此你必須要學習直接寫給機器看的語言! 這個地方相當的難呢!
     
  • 需要瞭解所有硬體的相關功能函數:因為你的程式必須要寫給機器看, 當然你就得要參考機器本身的功能,然後針對該功能去撰寫程式碼。例如,你要讓DVD影片能夠放映, 那就得要參考DVD光碟機的硬體資訊才行。萬一你的系統有比較冷門的硬體,光是參考技術手冊可能會昏倒~
     
  • 程式不具有可攜性:每個CPU都有獨特的微指令集,同樣的,每個硬體都有其功能函數。 因此,你為A電腦寫的程式,理論上是沒有辦法在B電腦上面運作的!而且程式碼的修改非常困難! 因為是機器碼,並不是人類看的懂得程式語言啊!
     
  • 程式具有專一性:因為這樣的程式必須要針對硬體功能函數來撰寫, 如果已經開發了一支瀏覽器程式,想要再開發檔案管理程式時,還是得從頭再參考硬體的功能函數來繼續撰寫, 每天都在和『硬體』挑戰!可能需要天天喝蠻牛了!@_@

那怎麼解決啊?為了解決這個問題,電腦科學家設計出一種讓人類看的懂得程式語言, 然後創造一種『編譯器』來將這些人類能夠寫的程式語言轉譯成為機器能看懂得機器碼, 如此一來我們修改與撰寫程式就變的容易多了!目前常見的編譯器有C, C++, Java, Fortran等等。 機器語言與高階程式語言的差別如下所示:

 

 

 

  • 系統呼叫(System Call)

 

既然我的硬體都是由核心管理,那麼如果我想要開發軟體的話,自然就得要去參考這個核心的相關功能! 唔!如此一來不是從原本的參考硬體函數變成參考核心功能,還是很麻煩啊!有沒有更簡單的方法啊!

為了解決這個問題,作業系統通常會提供一整組的開發介面給工程師來開發軟體! 工程師只要遵守該開發介面那就很容易開發軟體了!舉例來說,我們學習C程式語言只要參考C程式語言的函式即可, 不需要再去考量其他核心的相關功能,因為核心的系統呼叫介面會主動的將C程式語言的相關語法轉成核心可以瞭解的任務函數, 那核心自然就能夠順利運作該程式了!

如果我們將整個電腦系統的相關軟/硬體繪製成圖的話,他的關係有點像這樣:

 

 

  • 作業系統與驅動程式

老實說,驅動程式可以說是作業系統裡面相當重要的一環了!不過,硬體可是持續在進步當中的! 包括主機板、顯示卡、硬碟等等。

那麼比較晚推出的較新的硬體,例如顯示卡,我們的作業系統當然就不認識囉! 那作業系統該如何驅動這塊新的顯示卡?為了克服這個問題,作業系統通常會提供一個開發介面給硬體開發商, 讓他們可以根據這個介面設計可以驅動他們硬體的『驅動程式』,如此一來,只要使用者安裝驅動程式後, 自然就可以在他們的作業系統上面驅動這塊顯示卡了。

 

 

                                           資料來源:http://linux.vbird.org/linux_basic/0105computers.php#computer