Operating System Tutorial

作業系統教程

作業系統 (OS) 是一組管理計算機硬體資源併為計算機程式提供常用服務的軟體。當您開始使用計算機系統時,作業系統 (OS) 充當您和計算機硬體之間的介面。作業系統實際上是一種低階**軟體**,歸類為**系統軟體**,支援計算機的基本功能,例如記憶體管理、任務排程和控制外圍裝置等。

本簡單易懂的教程將帶您逐步學習作業系統的概念。

什麼是作業系統?

作業系統 (OS) 是計算機使用者和計算機硬體之間的介面。作業系統是一種軟體,它執行所有基本任務,例如檔案管理、記憶體管理、程序管理、處理輸入和輸出以及控制外圍裝置(如磁碟驅動器和印表機)。

通常,**計算機系統**由以下元件組成:

  • **計算機使用者**是使用整個計算機系統的使用者。
  • **應用軟體**是使用者直接用來執行不同活動。這些軟體簡單易用,例如瀏覽器、Word、Excel、各種編輯器、遊戲等。這些通常是用高階語言編寫的,例如 Python、Java 和 C++。
  • **系統軟體**性質更復雜,更接近計算機硬體。這些軟體通常是用低階語言(如組合語言)編寫的,包括**作業系統**(Microsoft Windows、macOS 和 Linux)、編譯器和彙編器等。
  • **計算機硬體**包括顯示器、鍵盤、CPU、磁碟、記憶體等。

現在讓我們用簡單的詞來說明:

如果我們認為計算機硬體是計算機系統的身體,那麼我們可以說作業系統是它的靈魂,讓它活起來,即執行起來。如果沒有安裝作業系統,我們就無法使用計算機系統。

作業系統 - 示例

市場上有很多作業系統,包括付費和免費(開源)的。以下是幾個最流行的作業系統的示例:

  • **Windows:**這是最流行的商業作業系統之一,由微軟開發和銷售。它在市場上有不同的版本,例如 Windows 8、Windows 10 等,大多數是付費的。
  • **Linux:**這是一個基於 Unix 的、最受歡迎的作業系統,於 1991 年 9 月 17 日由 Linus Torvalds 首次釋出。如今,它有 30 多個變體,例如 Fedora、OpenSUSE、CentOS、Ubuntu 等。大多數是免費的,儘管您可以透過支付少量許可費來獲得其企業版。
  • **macOS:**這同樣是一種 Unix 作業系統,自 2001 年以來由 Apple Inc. 開發和銷售。
  • **iOS:**這是一個由 Apple Inc. 專為其移動裝置(如 iPhone 和 iPad 等)建立和開發的移動作業系統。
  • **Android:**這是一個基於修改後的 Linux 核心和其他開源軟體的移動作業系統,主要設計用於觸控式螢幕移動裝置,例如智慧手機和平板電腦。

其他一些舊但流行的作業系統包括 Solaris、VMS、OS/400、AIX、z/OS 等。

作業系統 - 功能

簡而言之,以下是作業系統的一些重要功能,我們將在接下來的章節中詳細介紹:

  • 程序管理
  • I/O 裝置管理
  • 檔案管理
  • 網路管理
  • 主記憶體管理
  • 輔助儲存管理
  • 安全管理
  • 命令直譯器系統
  • 控制系統性能
  • 作業會計
  • 錯誤檢測和糾正
  • 協調其他軟體和使用者
  • 許多其他重要任務

作業系統 - 歷史

作業系統多年來一直在發展。在 20 世紀 50 年代,計算機只能一次執行一個程式,就像計算器一樣,但在接下來的幾十年裡,計算機開始包含越來越多的軟體程式(有時稱為庫),這些程式構成了當今作業系統的基礎。

第一個作業系統由通用汽車公司於 1956 年建立,用於執行一臺 IBM 大型機,其名稱為 IBM 704。IBM 是第一家開發作業系統並在其計算機中分發作業系統的計算機制造商(20 世紀 60 年代)。

關於作業系統演變的一些事實:

  • 斯坦福研究所於 20 世紀 60 年代後期開發了聯機系統 (NLS),這是第一個類似於我們今天使用的桌面作業系統的作業系統。
  • 微軟於 1981 年收購了 QDOS(快速簡易作業系統),並將其命名為 Microsoft 作業系統 (MS-DOS)。截至 1994 年,微軟已停止支援 MS-DOS。
  • Unix 是 20 世紀 60 年代中期由麻省理工學院、AT&T 貝爾實驗室和通用電氣共同開發的。最初它被稱為 MULTICS,代表多路複用作業系統和計算系統。
  • FreeBSD 也是一個流行的 UNIX 派生版本,起源於伯克利的 BSD 專案。所有現代 Macintosh 計算機都執行 FreeBSD 的修改版本 (OS X)。
  • Windows 95 是一個面向消費者的基於圖形使用者介面的作業系統,構建在 MS-DOS 之上。它於 1995 年 8 月 24 日由微軟作為其 Windows 9x 作業系統系列的一部分發布。
  • Solaris 是一個專有的 Unix 作業系統,最初由 Sun Microsystems 於 1991 年開發。在 2010 年 Sun 被 Oracle 收購後,它被更名為 Oracle Solaris。

為什麼要學習作業系統

如果您渴望成為一名優秀的計算機程式設計師,那麼強烈建議您深入瞭解作業系統的內部工作原理。這使您有機會了解資料如何在磁碟中儲存,CPU 如何建立和排程不同的程序執行,以及如何與不同的 I/O 裝置和埠互動。

有各種低階概念可以幫助程式設計師設計和開發可擴充套件的軟體。底線是,如果不瞭解作業系統的概念,就不能認為某人是優秀的計算機**應用軟體**開發者,甚至無法想象有人在不深入瞭解作業系統的基礎上成為**系統軟體**開發者。

如果您是應屆畢業生,並且正在申請 Google、Microsoft、Amazon、IBM 等標準公司的職位,那麼您很可能會被問到與作業系統概念相關的問題。

目標讀者

本教程專為計算機科學專業人員和學生準備,特別是為 BCA、MCA、B.Tech、M.Tech 工程學學生準備,以幫助他們理解一般的作業系統從基礎到高階的概念。作業系統是每個教授計算機科學的大學的核心概念之一,並且這個科目在考試中佔有很大的權重。

先決條件

在您開始使用本教程學習作業系統之前,我們假設您已經瞭解計算機基礎知識,例如什麼是計算機硬體、CPU、主記憶體、輔助記憶體、裝置、檔案等。如果您還不瞭解這些概念,那麼將很難理解與作業系統相關的各種概念,因此強烈建議您在嘗試學習作業系統之前先學習我們的計算機基礎教程

關於作業系統的常見問題

關於作業系統有一些非常常見的問題 (FAQ),本節嘗試簡要地回答它們。

作業系統就像計算機的管理者。它是一個軟體程式,充當使用者和計算機硬體之間的中間體,管理計算機的資源並提供執行應用程式的平臺。作業系統控制諸如管理記憶體、處理輸入和輸出裝置(如鍵盤和印表機)、為 CPU 排程任務以及提供與計算機互動的使用者介面等任務。

開發的第一個作業系統被稱為“GM-NAA I/O”,代表“通用汽車北美汽車運營輸入/輸出”。它是由通用汽車公司在 20 世紀 50 年代初期為其 IBM 701 大型機建立的。GM-NAA I/O 的設計目的是為了管理輸入和輸出操作,例如從穿孔卡片讀取資料並將結果寫入印表機,以滿足通用汽車的計算需求。

最新的個人電腦和筆記型電腦作業系統:

  • Microsoft Windows 11 − 由微軟開發,Windows 11是Windows作業系統的最新版本。它提供了改進的使用者介面、新的生產力功能以及效能和安全性的提升。

  • macOS Monterey − 由蘋果公司開發,macOS Monterey是Mac電腦的最新macOS作業系統版本。它引入了新的功能,如通用控制、專注模式,以及對Safari和FaceTime的增強。

  • Ubuntu 22.04 LTS − 由Canonical開發,Ubuntu 22.04 LTS(長期支援版)是基於Linux的電腦的最新Ubuntu作業系統版本。它提供了更新的軟體包、改進的效能和穩定性。

學習作業系統所需的時間取決於多種因素,例如你之前的知識儲備、你想要達到的理解深度以及你投入學習的時間。學習作業系統的基礎知識,例如理解其功能、元件和基本概念,可能需要幾周到幾個月的時間。

然而,熟練掌握作業系統,包括理解程序管理、記憶體管理、檔案系統和網路等高階主題,可能需要持續學習和練習幾個月甚至一年以上的時間。

作業系統的概念隨著時間的推移不斷發展,許多個人和組織都做出了貢獻。早期的作業系統示例之一是GM-NAA I/O,它是由通用汽車公司在20世紀50年代為其IBM 701大型機開發的。

然而,我們今天所知的現代作業系統概念開始形成於20世紀60年代,當時開發了諸如CTSS(相容分時系統)和MULTICS(多路資訊和計算服務)之類的系統。這些系統為後來的作業系統(如AT&T貝爾實驗室在20世紀70年代開發的Unix)奠定了基礎,Unix極大地影響了隨後的作業系統,包括Linux和macOS。

作業系統的四種主要型別是:

  • 單使用者單任務作業系統 − 這些作業系統一次只允許一個使用者在一個計算機上工作,並且一次只能處理一個任務或程式。例如早期版本的MS-DOS。

  • 單使用者多工作業系統 − 這些作業系統允許一個使用者同時執行多個程式或任務。作業系統在任務之間快速切換,給人以同時執行多個程式的錯覺。例如現代版本的Windows、macOS和Linux。

  • 多使用者作業系統 − 這些作業系統允許多個使用者同時在同一臺計算機上工作。每個使用者都可以擁有自己的使用者帳戶並獨立執行自己的程式。例如基於UNIX的系統(如Linux和macOS),以及Windows伺服器版本。

  • 即時作業系統 (RTOS) − 這些作業系統旨在即時處理資料並響應事件,並對完成任務有嚴格的截止時間限制。它們用於時間至關重要的應用中,例如控制工業機械、汽車系統和航空航天應用。例如QNX和VxWorks。

作業系統的安全性取決於各種因素,包括其設計、實現以及為保護其免受漏洞和威脅而採取的措施。雖然沒有作業系統可以被認為完全不受安全風險的影響,但有些作業系統以其強大的安全功能和實踐而聞名。

例如,蘋果公司開發的macOS通常因其強大的安全架構、定期安全更新以及內建的安全功能(如Gatekeeper和FileVault)而受到好評。同樣,一些Linux發行版,如Ubuntu和Fedora,也因其安全措施而備受推崇,包括及時的安全補丁和對開源安全實踐的重視。

作業系統中的死鎖是指兩個或多個程序因為每個程序都在等待另一個程序釋放其所需的資源而無法繼續執行的情況。這就像交通堵塞,汽車互相堵塞而無法前進。在死鎖情況下,任何程序都無法取得進展,導致系統停滯。當程序在等待其他程序的同時持有資源時,可能會發生死鎖,從而產生迴圈依賴關係,阻止任何程序的執行。

作業系統中的後臺列印(Simultaneous Peripheral Operations On-line,SPOOLING)是一種用於更有效地管理輸入/輸出 (I/O) 操作的技術。它的工作原理是將來自輸入裝置(如鍵盤)或輸出裝置(如印表機)的資料臨時儲存在一個緩衝區中,允許計算機在資料傳輸到裝置或從裝置傳輸資料的同時繼續處理其他任務。這有助於防止CPU因等待速度慢的裝置完成其操作而空閒等待,從而提高整體系統效能。

例如,當您列印文件時,作業系統可能會將資料後臺列印到列印後臺程式,該程式會對列印作業進行排隊,並在後臺將其傳送到印表機,允許您繼續處理其他任務,而無需等待列印過程完成。

作業系統中的虛擬記憶體是一種技術,它允許計算機結合使用其物理記憶體 (RAM) 和輔助儲存器(如硬碟驅動器或SSD)來模擬比實際擁有的記憶體更多的記憶體。它的工作原理是將資料在物理記憶體和輔助儲存器之間臨時傳輸,允許計算機執行需要比物理可用記憶體更多的記憶體的程式。當物理記憶體已滿時,作業系統會將較少使用的記憶體移動到輔助儲存器,為其他任務釋放物理記憶體空間。此過程對使用者是透明的,並透過允許更多程式同時執行而不會耗盡記憶體來提高系統性能。

廣告