歡迎來到系統軟件的世界!

你有沒有想過,為什麼儲存一張相片時,不需要親自告訴電腦要切換哪些細小的電子開關?或者,人類語言編寫的遊戲,是如何在只懂 1 和 0 的處理器上執行的?這就是系統軟件 (System Software) 的魔法!

在本章中,我們將探索那些確保電腦流暢運行的「幕後功臣」。如果一開始覺得有點生澀,別擔心,我們會將這些概念拆解成簡單易懂的知識點,並配合大量的日常例子。

5.1 作業系統 (OS)

作業系統 (Operating System) 是最重要的系統軟件。可以把它想像成一家繁忙酒店的經理。賓客(用戶)想要完成事情,員工(硬件)執行工作,而經理則確保每個人都有房間,且不會因為爭搶同一部電梯而吵架!

為什麼我們需要作業系統?

沒有作業系統,電腦只是一堆金屬和塑膠。你必須為每一個動作(例如移動滑鼠或儲存檔案)編寫複雜的代碼。作業系統在用戶與硬件之間提供了介面 (interface),使電腦變得易於使用。

核心管理任務

為了讓這家「酒店」順利運作,作業系統執行五項主要任務:

1. 記憶體管理 (Memory Management):作業系統決定哪些程式可以進入 RAM(隨機存取記憶體)以及它們放置的位置。它確保一個程式不會意外覆蓋另一個程式的數據。
2. 檔案管理 (File Management):這就像一個巨大的檔案櫃。作業系統追蹤數據在硬碟上的儲存位置、管理資料夾結構,並處理檔案的開啟、刪除和重新命名。
3. 安全管理 (Security Management):作業系統保護系統安全。這包括管理用戶帳戶 (user accounts)密碼 (passwords),確保只有獲授權的人員才能存取特定檔案。
4. 硬件 (I/O) 管理 (Hardware Management):作業系統使用「驅動程式 (drivers)」與周邊設備 (peripherals)(如打印機、鍵盤和螢幕)溝通。它確保硬件能執行軟件發出的指令。
5. 處理程序管理 (Process Management):電腦經常同時處理多項任務。作業系統會將「CPU 時間」分配給不同的任務(處理程序),確保它們都有機會執行,且系統不會崩潰。

快速回顧:作業系統管理記憶體、檔案、安全、硬件處理程序。(記憶口訣:My Fat Snake Hates People!)

公用程式軟件 (Utility Software)

如果說作業系統是經理,那麼公用程式軟件就是維修團隊。這些小型程式旨在幫助分析、配置或維護電腦。

常見的公用程式包括:
- 磁碟格式化工具 (Disk Formatter):準備儲存裝置(如 USB 手指)以儲存檔案。
- 病毒檢查程式 (Virus Checker):掃描系統中的惡意軟件以保障安全。
- 磁碟重組軟件 (Defragmentation Software):重新排列硬碟上的檔案,使其儲存在整齊、連續的區塊中,從而加快電腦速度。
- 磁碟修復工具 (Disk Repair):掃描並修復硬碟上的問題。
- 檔案壓縮軟件 (File Compression):縮小檔案大小以節省空間(例如 .zip 檔案)。
- 備份軟件 (Back-up Software):建立重要數據的副本,以防原始檔案遺失。

程式庫 (Program Libraries)

軟件開發人員不喜歡「重新發明輪子」。如果他們需要一個常見功能(如「另存新檔」視窗),他們會使用程式庫 (Program Libraries)。這些是預先編寫好的代碼集合,其他程式可以直接呼叫使用。
一種常見的類型是 DLL (動態連結程式庫 - Dynamic Link Library)。這些檔案可供多個程式共用。
- 好處: 節省空間,因為多個程式可以共用磁碟上的同一個檔案。
- 好處: 如果程式庫更新了,所有使用它的程式都會自動獲得改進!

重點總結:作業系統是管理電腦的「大老闆」,公用程式保持系統健康,而程式庫則為程式設計師提供現成的工具。

5.2 語言翻譯程式 (Language Translators)

電腦說的是機器碼 (Machine Code)(二進制)。人類說的是高階語言 (High-Level Languages)(如 Python、Java 或 C++)。我們需要一個翻譯程式將我們的指令轉化為電腦能理解的語言。

三種翻譯程式類型

1. 組譯器 (Assembler):將組合語言 (Assembly Language)(低階代碼如 ADDMOV)翻譯成機器碼。它非常依賴於所使用的處理器類型。
2. 編譯器 (Compiler):將整個高階程式一次性翻譯成獨立的機器碼檔案(如 .exe)。
3. 直譯器 (Interpreter)逐行翻譯並執行高階程式。它不會建立獨立的檔案;而是在讀取代碼時直接執行。

編譯器 vs. 直譯器:哪個更好?

如果這聽起來很複雜,別擔心!只需把編譯器想像成一本翻譯好的書,而直譯器則是一位現場即時傳譯員。

編譯器的優點:
- 最終程式執行速度非常快。
- 執行完成後的程式時,不需要安裝翻譯軟件。
- 原始碼得到保密(用戶只能看到機器碼)。
編譯器的缺點:如果出現錯誤,你必須修正並重新編譯整個項目。

直譯器的優點:
- 對初學者非常友好!它會在錯誤發生時立刻停止,方便進行除錯 (debug)
- 只要有直譯器,程式碼可以在不同類型的電腦上執行。
直譯器的缺點:運行速度較慢,因為它是一邊翻譯一邊執行,且必須安裝直譯器才能運行代碼。

你知道嗎?(Java 的例子)

有些語言(如 Java)屬於「混合型」。它們會被部分編譯成稱為位元組碼 (Bytecode) 的中間代碼,然後由「Java 虛擬機 (JVM)」進行直譯。這使得代碼既能保持速度,又能在幾乎任何裝置上運作!

整合開發環境 (IDE)

IDE (Integrated Development Environment) 是一套特殊的軟件包,為程式設計師提供所需的一切工具。這就像是木匠擁有的一個設備齊全的工作室。

IDE 的主要功能:
- 編碼工具:包括上下文提示 (context-sensitive prompts)(輸入時建議代碼)和程式碼格式化 (prettyprint)(為代碼著色,使其易於閱讀)。
- 初步錯誤偵測動態語法檢查 (dynamic syntax checks) 會在你打字時,即時標示代碼中的拼字或語法錯誤!
- 呈現方式:具備展開和摺疊 (expanding and collapsing) 代碼區塊的功能,保持螢幕整潔。
- 除錯工具
- 單步執行 (Single Stepping):一次只運行一行代碼。
- 中斷點 (Breakpoints):在特定行暫停程式,以便檢查當前狀況。
- 變數報告 (Variables Report):在程式運行時,顯示一個視窗來監測所有變數的當前值。

重點總結:翻譯程式將人類可讀的代碼轉化為電腦可讀的二進制。IDE 通過提供實用的工具和錯誤檢查功能,讓編寫代碼的工作變得輕鬆得多。

避免常見錯誤

- 錯誤:以為編譯器和直譯器的功能相同。修正:記住,編譯器是一次過完成整件事,而直譯器則是逐行進行
- 錯誤:混淆系統軟件與應用軟件。修正:系統軟件(OS、公用程式)用於運行電腦;應用軟件(Word、Chrome、遊戲)則讓用戶執行特定任務。
- 錯誤:認為 DLL 是一個獨立的程式。修正:DLL 是一個程式庫,當其他程式需要特定功能協助時,會呼叫它。

恭喜你!你已經掌握了 AS Level 電腦科學中系統軟件的核心內容。多複習這些術語,很快你就能運用自如了!