歡迎來到硬件與軟件的世界!
你好!今天我們要深入探討電腦科學的核心。你有沒有想過電腦或手機內部究竟發生了什麼?為什麼有些應用程式執行得比較快?而你觸控的螢幕和你執行的程式之間又有什麼區別?
在這章節中,我們將探索電腦系統 (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) 使用像 LDA 或 ADD 這樣的簡短助記符。
翻譯程式 (Translators)
因為 CPU 只能理解機器碼,所以我們需要翻譯程式:
• 組譯器 (Assembler): 將組合語言轉換為機器碼。
• 編譯器 (Compiler): 一次性將整個高階程式翻譯成可執行檔案。執行速度快,但除錯較困難。
• 直譯器 (Interpreter): 逐行翻譯高階程式碼。這對初學者來說非常棒,因為它會在錯誤發生的那一行立刻停止執行!
最終快速複習表
• 硬件: 實體零件。
• 軟件: 程式與指令。
• CPU: 負責提取、解碼和執行指令。
• RAM: 快速、揮發性的工作記憶體。
• 輔助儲存裝置: 非揮發性、長期儲存裝置。
• 翻譯程式: 將高階程式碼轉換為機器碼,以便 CPU 執行。
你一定沒問題的!硬件和軟件的內容看似很多,只要記住這些類比,你一定能表現出色!