歡迎來到系統基礎(System Fundamentals)!(單元 1)

哈囉各位未來的電腦科學家!在本章「系統基礎」中,我們將為整個課程奠定基礎。如果這個名稱聽起來有點抽象,別擔心。我們只是要探討什麼是「系統」、它由哪些部分組成、這些部分如何互動,以及為什麼在深入研究硬件、網絡或編程之前,理解這些概念是至關重要的。

你可以把這一章想像成拆解一台複雜的機器——比如你的手機或自動駕駛汽車——並找出其中涉及的所有角色和關係。讓我們開始吧!


1. 定義系統及其核心組成部分

在電腦科學中,「系統(system)」這個詞被頻繁使用。但它到底是什麼意思呢?

什麼是系統?

系統是一組互動或相互依賴的組件,它們共同協作以實現一個共同的目標。

類比: 想像一支足球隊。每個球員(組件)都有特定的角色(後衛、前鋒、守門員),但他們都必須互動並相互依賴,才能達成共同目標:贏得比賽。如果其中一個組件失效(例如守門員生病了),整個系統都會受到影響。

三大支柱:硬件、軟件和數據

任何資訊科技(IT)系統,無論多麼簡單或複雜,都依賴三個基本組成部分:

  • 硬件(Hardware): 你可以觸摸到的物理組件(例如 CPU、屏幕、鍵盤、滑鼠、網絡線)。
  • 軟件(Software): 非物理的指令集和程式,用於指示硬件執行任務(例如作業系統、Google Chrome、Photoshop)。
  • 數據(Data): 系統處理的原始事實和數字(例如學生編號、照片檔案、溫度讀數)。

關鍵點: 這三個支柱缺一不可。沒有軟件指令,硬件就無用武之地;而沒有數據,軟件也無法運作。


2. 系統邊界與子系統

在處理複雜系統時,我們需要一種將其拆解成較小、易於管理的部分的方法。這就是邊界(boundaries)和子系統(subsystems)的作用所在。

子系統:拆解複雜性

子系統是更大系統的一部分。大型資訊科技專案通常會被拆解成較小、定義明確的子系統,以簡化開發流程。

例子: 一個大學註冊系統可能包含以下子系統:

  • 學生紀錄子系統(處理個人資料)。
  • 課程選修子系統(處理時間表和名額)。
  • 賬單與財務子系統(處理學費繳納)。
邊界

系統邊界(system boundary)定義了系統的界限——它說明了哪些組件在系統內部,哪些在系統外部(屬於環境(environment)的一部分)。

理解邊界至關重要,因為系統只能控制其邊界內的元素。邊界外的一切(例如用戶、外部伺服器或電力供應)都被視為環境的一部分,並作為輸入或輸出的來源。

互動與反饋

系統通常遵循一個循環:

  1. 輸入(Input): 從環境中獲取數據(例如你輸入密碼)。
  2. 處理(Processing): 根據指令操作數據(例如作業系統檢查密碼是否正確)。
  3. 輸出(Output): 將處理後的資訊傳回環境(例如屏幕顯示「登入成功」)。
  4. 儲存(Storage): 保存數據以供日後使用。

系統通常包含反饋(feedback),即輸出或儲存的數據被用來修改未來的輸入或處理過程。例子: 恆溫器測量室溫(輸出),如果溫度過低,它會調整鍋爐(輸入)。

快速回顧:系統結構

我們將大型系統劃分為子系統。我們定義邊界以區分內部和外部(環境)。標準流程是輸入 → 處理 → 輸出,通常涉及反饋


3. 軟件基礎:系統軟件與應用軟件

軟件通常根據其用途進行分類。你必須知道兩個主要類型:系統軟件(System Software)應用軟件(Application Software)

a) 系統軟件

系統軟件旨在操作電腦硬件,並為應用軟件的運行提供平台。它管理資源並確保電腦高效運行。

最重要的系統軟件是作業系統(Operating System, OS)(例如 Windows、macOS、Linux、iOS)。

作業系統的主要功能:
  • 用戶介面管理: 提供圖形用戶介面(GUI)或命令列,讓你與機器進行互動。
  • 記憶體管理: 決定程式和數據在 RAM 中的儲存位置,並確保程式之間不會互相干擾。
  • 周邊設備管理: 使用稱為設備驅動程式(device drivers)的特殊軟件,處理 CPU 與輸入/輸出設備(如打印機或相機)之間的通訊。
  • 安全與存取控制: 處理登入、密碼和用戶權限。

工具軟件(Utility Software)也是系統軟件的一部分。這包括執行維護任務的程式,如磁碟重組工具、檔案壓縮工具(例如 WinZip)和防毒軟件。

b) 應用軟件

應用軟件(Application Software)(或稱「應用程式/Apps」)旨在為用戶執行特定任務。這些軟件若沒有底層的系統軟件(作業系統)是無法運行的。

例子: 文書處理軟件、試算表、網頁瀏覽器、電子遊戲、電子郵件客戶端和音樂播放器。

如果起初覺得這些很難區分,別擔心: 只需記住系統軟件是用來運行「電腦」的,而應用軟件是用來執行「用戶任務」的。你需要作業系統(系統)才能運行 Microsoft Word(應用)。


4. 數據表示與測量單位

電腦處理的所有資訊都必須使用二進制(binary)(一種基數為 2 的數字系統)來表示。

基礎:位元(Bit)與位元組(Byte)
  • 位元(Bit, b): 最小的數據單位,代表單個二進制數字(0 或 1)。可以把它想像成一個關閉(0)或開啟(1)的電力開關。
  • 位元組(Byte, B): 由 8 個位元組成的集合。這是儲存單個字符(如字母 'A' 或數字 '5')的基本單位。
測量數據大小

由於數據量非常巨大,我們使用標準化的前綴(基於 2 的冪,具體為 1024)來測量容量:

單位縮寫大小(約)
KilobyteKB\(2^{10}\) 位元組 (1,024 位元組)
MegabyteMB\(2^{20}\) 位元組 (約 100 萬位元組)
GigabyteGB\(2^{30}\) 位元組 (約 10 億位元組)
TerabyteTB\(2^{40}\) 位元組 (約 1 萬億位元組)
PetabytePB\(2^{50}\) 位元組 (非常、非常大!)

記憶小貼士: 如果你忘記了單位的順序,請記住這句話:Kids Make Great Tacos(Kilo, Mega, Giga, Tera)。

你知道嗎? 由於電腦科學標準(基數 2,使用 1024)與科學標準(基數 10,使用 1000)之間存在些許差異,組織有時會使用如 Kibibyte (KiB)、Mebibyte (MiB) 等單位來明確表示基數為 2 的系統,儘管 KB、MB 和 GB 在資訊科技領域中仍是通用的縮寫。


5. 系統可靠性、完整性與可用性

系統基礎的一個關鍵方面是評估系統執行工作的效能。我們通常使用三個標準來衡量:可靠性(reliability)、完整性(integrity)和可用性(usability)。

a) 可靠性

可靠性是用來衡量系統在沒有故障的情況下,持續執行其預期功能的程度。一個可靠的系統是值得信賴的。

導致不可靠的原因:

  • 硬件故障: 硬碟損壞或組件過熱。
  • 軟件錯誤(Bugs): 程式碼中的錯誤導致程式崩潰或產生錯誤結果。
  • 人為錯誤: 管理員不小心刪除了關鍵檔案或輸入了錯誤數據。

為了提高可靠性,設計師會使用以下技術:

  • 冗餘(Redundancy): 準備多個備份組件(如兩個硬碟鏡像),以便在其中一個失效時接替工作。
  • 錯誤檢查(Error Checking): 在軟件中實施檢查,以捕捉錯誤的數據輸入。
b) 數據完整性

數據完整性是指數據在整個生命週期中的有效性、準確性和一致性。如果數據在儲存、處理和檢索過程中沒有發生更改,則該數據具有很高的完整性。

如果數據損壞(例如在傳輸過程中)或輸入了不準確的數據,就會導致完整性降低。

c) 可用性

可用性是指系統對於用戶操作的簡便和高效程度。如果系統難以學習、使用起來令人沮喪或設計不良,用戶就會犯錯,從而降低整體系統效能並增加錯誤發生的機率。

良好的可用性通常包括:

  • 清晰、直觀的用戶介面(UI)
  • 設計和導航的一致性。
  • 為有不同需求的用戶提供無障礙功能(accessibility features)(例如大字體、語音指令)。

6. 社會與道德背景(利益相關者)

系統基礎不僅僅關乎技術組件,更關乎「人」!IB 電腦科學課程非常強調系統運作的環境背景。

識別利益相關者

利益相關者(Stakeholder)是指對系統的開發或運作感興趣,或受其影響的任何個人或團體。

識別所有利益相關者至關重要,因為他們的需求和觀點往往會產生衝突。

例子:開發一個新的學校時間表系統。

  • 用戶: 教師、學生(希望簡單、易於訪問個人資料)。
  • 擁有者: 校董會(希望成本效益高、安全性高)。
  • 開發者: 程序員(希望規格明確、程式碼高效)。
  • 監管者: 政府(希望遵守隱私法,如 GDPR)。

未能滿足所有關鍵利益相關者的需求,是資訊科技專案失敗的常見原因!

社會與道德影響

系統設計通常涉及道德選擇。請務必考慮:

  • 隱私: 用戶數據是如何被收集、儲存和保護的?(一個重大的道德和法律問題)。
  • 版權: 軟件或數據是否侵犯了知識產權?
  • 數碼鴻溝(Digital Divide): 該系統是否排斥了某些人群(例如缺乏網絡存取或使用舊設備的人)?
單元 1 關鍵要點

單元 1 強迫你進行整體思考。一個系統是一個由硬件軟件數據定義的互動整體。它的成功不僅取決於其技術效能(可靠性完整性),還取決於它滿足利益相關者需求的能力以及對道德規範的處理。