計算機概論實務
所謂的電腦就是一種計算機,而計算機其實是:『接受使用者輸入指令與資料, 經由中央處理器的數學與邏輯單元運算處理後,以產生或儲存成有用的資訊』。
計算機的功能
我們會知道其實電腦是由幾個單元所組成的,包括輸入單元、 輸出單元、CPU內部的控制單元、 算數邏輯單元與主記憶體五大部分。
如果不是很瞭解電腦的運作流程,假設電腦是一個人體,那麼每個元件對應到那個地方呢? 可以這樣思考:
除了主記憶體之外,事實上整部個人電腦當中還有許許多多的記憶體存在喔!最為我們所知的就是CPU內的第二層快取記憶體。 我們現在知道CPU的資料都是由主記憶體提供,但主記憶體的資料畢竟得經由北橋送到CPU內。
大家應該都看過硬碟吧!硬碟依據桌上型與筆記型電腦而有分為3.5吋及2.5吋的大小。 我們以3.5吋的桌上型電腦使用硬碟來說明。 在硬碟盒裡面其實是由許許多多的圓形磁碟盤、機械手臂、 磁碟讀取頭與主軸馬達所組成的,整個內部如同下圖所示:
既然資料都是寫入磁碟盤上頭,那麼磁碟盤上頭的資料又是如何寫入的呢? 其實磁碟盤上頭的資料有點像下面的圖示所示:
由於傳輸速度的需求提升,目前硬碟與主機系統的聯繫主要有幾種傳輸介面規格:
主機板與各項輸出/輸入設備的連結主要都是在主機機殼的後方,主要有:
我們以技嘉主機板的連結介面來看的話,主要有這些:
我們前面談到電腦只認識0與1而已,而且電腦最重要的運算與邏輯判斷是在CPU內部, 而CPU其實是具有微指令集的。因此,我們需要CPU幫忙工作時,就得要參考微指令集的內容, 然後撰寫讓CPU讀的懂得指令碼給CPU執行,這樣就能夠讓CPU運作了。 不過這樣的流程有幾個很麻煩的地方,包括:
那怎麼解決啊?為了解決這個問題,電腦科學家設計出一種讓人類看的懂得程式語言, 然後創造一種『編譯器』來將這些人類能夠寫的程式語言轉譯成為機器能看懂得機器碼, 如此一來我們修改與撰寫程式就變的容易多了!目前常見的編譯器有C, C++, Java, Fortran等等。 機器語言與高階程式語言的差別如下所示:
既然我的硬體都是由核心管理,那麼如果我想要開發軟體的話,自然就得要去參考這個核心的相關功能! 唔!如此一來不是從原本的參考硬體函數變成參考核心功能,還是很麻煩啊!有沒有更簡單的方法啊! 為了解決這個問題,作業系統通常會提供一整組的開發介面給工程師來開發軟體! 工程師只要遵守該開發介面那就很容易開發軟體了!舉例來說,我們學習C程式語言只要參考C程式語言的函式即可, 不需要再去考量其他核心的相關功能,因為核心的系統呼叫介面會主動的將C程式語言的相關語法轉成核心可以瞭解的任務函數, 那核心自然就能夠順利運作該程式了! 如果我們將整個電腦系統的相關軟/硬體繪製成圖的話,他的關係有點像這樣:
老實說,驅動程式可以說是作業系統裡面相當重要的一環了!不過,硬體可是持續在進步當中的! 包括主機板、顯示卡、硬碟等等。 那麼比較晚推出的較新的硬體,例如顯示卡,我們的作業系統當然就不認識囉! 那作業系統該如何驅動這塊新的顯示卡?為了克服這個問題,作業系統通常會提供一個開發介面給硬體開發商, 讓他們可以根據這個介面設計可以驅動他們硬體的『驅動程式』,如此一來,只要使用者安裝驅動程式後, 自然就可以在他們的作業系統上面驅動這塊顯示卡了。
資料來源:http://linux.vbird.org/linux_basic/0105computers.php#computer
|