iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 28
1
自我挑戰組

30天學python系列 第 28

[Day28] Linux 作業系統 - 發展史和概述

接下來是 100 天當中的第四部分 Linux 作業系統。剩下的幾天會做這階段的筆記。

作業系統發展史

作業系統是控制和管理整個計算機硬體和軟體資源、實現資源分配和任務調配、為系統用戶以及其他軟體提供接口和環境的程序的集合。

沒有操作系統

在沒有作業系統的年代,人們先把程序紙帶或卡片裝上計算機,啟動輸入機把程序送入計算機,通過控制台開關啟動程序運行。當程序執行完畢,打印機輸出計算的結果,卸下並取走紙帶。第二個用戶上機,重複同樣的步驟。在整個過程中用戶獨占機器,CPU 等待手工操作,資源利用率極低。

批處理系統

啟動計算機上的一個監督程序,在監督程序的控制下,計算機能夠自動的、成批的處理一個或多個用戶的作業。完成一批作業後,監督程度又從輸入機讀取作業存入磁帶機。按照上面的步驟重複處理任務。監督程序不停處理各個作業,使作業的自動轉接,減少作業的建立和手工操作的時間,提高計算機資源的利用。批處理系統可以分為單道批處理系統、多道批處理系統、聯機批處理系統、脫機批處理系統。

分時系統和即時系統

分時系統將處理器的運行時間分成很短的時間片,按時間片輪流把處理機分配給各個計算機作業使用。若某個作業在分配的時間片內不能完成計算,則該作業暫時中斷,把處理機讓給另一個作業使用,等待下一輪調度時再繼續運行。計算機速度很快,作業運行輪轉很快。每個用戶可以通過自己的終端向系統發出各種操作控制命令,在充分的人機交互情況下,完成作業的運行。為了解決分時系統不能及時響應用戶指令的情況,出現能夠在嚴格的時間範圍內完成事件處理,即時響應隨機外部事件的即時系統。
即時系統最大的特色就是即時性,如果有一個任務需要執行,即時系統會在短時間內執行該任務,不會有較長的延時。這種特性保證了各個任務的即時執行。

通用作業系統

  1. 1960s:IBM 的 System/360系 列的機器有統一的作業系統 OS/360。
  2. 1965 年:AT&T 的貝爾實驗室加入 GE 和 MIT 的合作計劃開始開發 MULTICS。
  3. 1969 年:MULTICS 項目失敗,Ken Tompson 為了玩 'Space Travel' 遊戲用編譯語言在當時已經被淘汰的 PDP-7 上開發了 Unics。
  4. 1970 年 ~ 1971 年:Ken Tompson 和 Dennis Ritchie 用 B 語言在 PDP-11 上重寫了 Unics,並在 Brian Kernighan 的建議下將其更名為 Unix。
  5. 1972 年 ~ 1973 年:Dennis Ritchie 發明了 C 語言來取代可移植性較差的 B 語言,並開啟了用 C 語言重寫 Unix 的工作。
  6. 1974 年:Unix 推出了里程碑意義的第 5 版,幾乎完全用 C 語言來實現。
  7. 1979 年:從 Unix 第 7 版開始,AT&T 發布新的使用條款,將 Unix 私有化。
  8. 1987 年:Andrew S. Tanenbaum 教授為了能在課堂上為學生講解作業系統運作的細節,決定在不使用任何 AT&T 的源代碼前提下,自行開發與 Unix 兼容的作業系統以避免版權上的爭議,該系統被命名為 Minix。
  9. 1991年:Linus Torvalds 就讀於芬蘭赫爾辛基大學期間,嘗試在 Minix 上做一些開發工作,但因為 Minix 只是作為教學用途的作業系統,功能並不強大,為了方便在學校的新聞組和郵件系統中讀寫和下載文件,Linus 編寫了磁盤驅動程序和文件系統,這些東西形成了 Linux 系統內核的雛形。

Linux 概述

Linux 是一個通用作業系統。作業系統要負責任務調度、內存分配、處理外圍設備 I/O 等操作。作業系統通常由內核運行其他程序,管理磁盤、打印機等硬體設備的核心程序和系統程序設備驅動、底層庫、shell、服務程序等兩部分組成。
Linux 內核是芬蘭人 Linus Torvalds 開發的,於 1991 年 9 月發布。而 Linux 作業系統作為 Internet 時代的產物,它是由全世界許多開發者共同合作開發的,是一個自由的作業系統。

Linux 系統優點

  1. 通用操作系統,不跟特定的硬體綁定。
  2. 用 C 語言編寫,可移植性強,有內核編程介面。
  3. 支持多用戶和多任務,支持安全的分層文件系統。
  4. 大量的實用程序,完善的網絡功能以及強大的支持文檔。
  5. 可靠的安全性和良好的穩定性,對開發者更友好。

Linux系統發行版本

  1. Redhat
  2. Ubuntu
  3. CentOS
  4. Fedora
  5. Debian
  6. openSUSE

上一篇
[Day27] Web 前端概述 - Element 和 Bootstrap 的使用
下一篇
[Day29] Linux 作業系統 - 基礎命令
系列文
30天學python30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言