歡迎來到硬件與軟件的世界!

你好!今天我們要深入探討電腦科學的核心。你有沒有想過電腦或手機內部究竟發生了什麼?為什麼有些應用程式執行得比較快?而你觸控的螢幕和你執行的程式之間又有什麼區別?

在這章節中,我們將探索電腦系統 (Computer Systems)。試著把電腦想像成一個人:硬件 (Hardware) 是肉體,而軟件 (Software) 則是指導身體行動的思維與人格。讀完這些筆記後,你就會明白它們是如何協作來創造這些科技奇蹟的!

3.4.1 定義硬件與軟件

首先,讓我們釐清定義。這兩個術語是所有系統的基礎。

硬件是電腦的實體部分。如果你踢得到、摸得到或拿得起來,它就是硬件! 例子:你的滑鼠、螢幕、內部的電路板,甚至是你的鍵盤。

軟件是一組指令或程式,用來告訴硬件該做什麼。你無法觸摸軟件,因為它是以數據形式存在的。 例子:Minecraft、TikTok、Windows 11 或你的網頁瀏覽器。

兩者關係:硬件和軟件有著「共生」關係。沒有軟件,硬件毫無用處(只是一個發光的金屬盒);而沒有硬件來運作,軟件也無法發揮任何作用。

快速複習:劇場類比

想像一個劇院。建築物、座位和舞台是硬件。正在上演的劇目和演員遵循的劇本則是軟件。要呈現一場演出,兩者缺一不可!

3.4.3 軟件分類

並非所有軟件都一樣,我們主要將其分為兩類:

1. 系統軟件 (System Software): 這是電腦的「管家」。它的工作是運作硬件,並為其他應用程式提供執行平台。
例子:像 Windows、macOS 或 Android 這類的作業系統 (Operating System, OS)

2. 應用軟件 (Application Software): 這些是幫助你執行特定任務的「工作人員」。
例子:用於寫報告的文書處理器、用於搜尋的網頁瀏覽器,以及用來娛樂的遊戲。

作業系統 (OS)

作業系統是最重要的系統軟件。它負責處理所有「繁雜的工作」,讓你不需要親自操心。它管理:
處理器 (Processors): 決定 CPU 處理哪一項任務。
記憶體 (Memory): 追蹤數據在 RAM 中的儲存位置。
輸入/輸出裝置 (I/O Devices): 與你的打印機、鍵盤和螢幕溝通。
應用程式 (Applications): 確保應用程式正確啟動與結束。
保安 (Security): 管理密碼和使用者帳戶。

重點總結:系統軟件管理電腦;應用軟件則為使用者執行任務。

3.4.5 系統架構:電腦的「大腦」

大多數電腦都遵循馮·紐曼架構 (Von Neumann Architecture)。這是一個華麗的說法,意指電腦將程式指令和數據儲存在同一個記憶體中。

中央處理單元 (CPU)

CPU 就是電腦的大腦,它包含幾個關鍵部分:
算術邏輯單元 (ALU): 處理所有數學計算(加減法)和邏輯運算(比較數字)。
控制單元 (CU): 像是「交通警察」,負責指揮數據流向。
時鐘 (Clock): 發送脈衝訊號,讓所有組件保持同步。
總線 (Bus): 一組用來在組件之間傳送數據的電線。
暫存器 (Register): 位於 CPU 內部、速度極快的微小儲存空間。

提取-執行循環 (Fetch-Execute Cycle)

CPU 實際上是如何運作的呢?它遵循一個永不停歇的循環:
1. 提取 (Fetch): CPU 從主記憶體中獲取下一個指令。
2. 解碼 (Decode): 控制單元判斷該指令的實際含義。
3. 執行 (Execute): CPU 執行該指令(例如將兩個數字相加)。

什麼決定了 CPU 的速度?

如果你的電腦有時覺得變慢了,別擔心!效能通常取決於:
時鐘速度 (Clock Speed): CPU 每秒能完成的循環次數(單位為赫茲 Hertz)。
核心數 (Cores): 核心越多,代表 CPU 可以同時處理越多事情。
快取大小 (Cache Size): CPU 內部一小塊非常快速的記憶體,用於儲存經常使用的數據。

記憶小撇步:廚房類比

CPU: 主廚(負責工作)。
快取 (Cache): 主廚的口袋(空間極小但隨手可得)。
RAM: 工作檯面(工作空間,但做完事情後會被清理)。
輔助儲存裝置 (Secondary Storage): 櫥櫃(容量極大,但要拿東西需要花時間)。

記憶體與儲存裝置

RAM (隨機存取記憶體): 這是主記憶體。它是揮發性 (Volatile) 的,意思是當電源關閉時,裡面的所有東西都會被刪除!它儲存當前正在使用的程式。

ROM (唯讀記憶體): 這是非揮發性 (Non-Volatile) 的(即使沒有電源也能保留數據)。它儲存電腦的「開機」啟動指令。

輔助儲存裝置: 由於 RAM 是揮發性的,我們需要輔助儲存裝置來長期保存檔案。
磁性儲存:(硬碟)便宜、容量大,但速度較慢且容易損壞。
固態硬碟 (SSD): 非常快,沒有移動部件,但價格較高。
光學儲存:(CD/DVD)便宜且便攜,但容量小且速度慢。

常見誤區: 許多學生認為「記憶體」和「儲存裝置」是一樣的。請記住:記憶體 (RAM) 是用來處理當下的事;儲存裝置是用來存放明天還要用的東西。

3.4.2 布林邏輯 (Boolean Logic)

電腦只懂 1 和 0(真與假)。我們使用邏輯閘 (Logic Gates) 來處理這些訊號。

NOT 閘: 反轉輸入值。輸入 1,輸出 0。
AND 閘: 只有當兩個**輸入都為 1 時,輸出才為 1。
OR 閘: 只要其中一個**輸入為 1,輸出就為 1。
XOR 閘: 只有當兩個輸入不同**時,輸出才為 1。

布林表達式

在考試中,你可能會看到以下符號:
• A . B 代表 A AND B
• A + B 代表 A OR B
\(\overline{A}\)(上橫線)代表 NOT A
• A \(\oplus\) B 代表 A XOR B

3.4.4 程式語言與翻譯程式

人類不喜歡寫 1 和 0,所以我們使用不同層級的語言。

高階語言:(如 Python 或 C#)人類容易閱讀和編寫。它們具有「可移植性」,意味著它們可以在不同類型的 CPU 上執行。

低階語言:(機器碼和組合語言)這些語言更接近 CPU 能理解的內容。機器碼 (Machine Code) 只是二進位(1 和 0)。組合語言 (Assembly Language) 使用像 LDAADD 這樣的簡短助記符。

翻譯程式 (Translators)

因為 CPU 能理解機器碼,所以我們需要翻譯程式:
組譯器 (Assembler): 將組合語言轉換為機器碼。
編譯器 (Compiler): 一次性將整個高階程式翻譯成可執行檔案。執行速度快,但除錯較困難。
直譯器 (Interpreter): 逐行翻譯高階程式碼。這對初學者來說非常棒,因為它會在錯誤發生的那一行立刻停止執行!

最終快速複習表

硬件: 實體零件。
軟件: 程式與指令。
CPU: 負責提取、解碼和執行指令。
RAM: 快速、揮發性的工作記憶體。
輔助儲存裝置: 非揮發性、長期儲存裝置。
翻譯程式: 將高階程式碼轉換為機器碼,以便 CPU 執行。

你一定沒問題的!硬件和軟件的內容看似很多,只要記住這些類比,你一定能表現出色!