目錄
操作系統的重要性
爲什麼要有操作系統嘞?—— 因爲要處理計算機系統的各種複雜性。
計算機系統十分之複雜,如果讓類似於我這樣的小嘍嘍們直接面對複雜的硬件,估計也不會有什麼網癮少年了。這個時候,就需要操作系統來大顯身手了。
The Operating System as an Extended Machine, turns ugly hardware into beautiful abstractions.
操作系統作給硬件做了一件美麗的外衣,使得編程和使用更加方便和安全。
操作系統的位置
在應用程序和“裸”的硬件之間。
操作系統的定義與作用
目前操作系統沒有一個普遍接受的定義。
Silerschatz and Gavin——“An OS is Similar to a government”
從位置上看,它對於上面的應用程序來講,是一個擴展機,應用程序就認爲操作系統就是一個理想的機器,要什麼給什麼; 而它對於下面的硬件來講,是各種資源的管理者,負責分配、協調、解決衝突、避免錯誤、解決問題。
操作系統的組成
- Process Management 進程管理
- Main-Memory Management 主存管理
- Secondary-Storage Management 輔存管理
- File Management 文件管理
- I/O System management I/O系統管理
- User Interfaces 用戶交互(CLI 命令行 / GUI 圖形界面 / batch)
- Networking 網絡處理
- Protection System 保護系統
操作系統提供的服務
- User interface CLI/GUI/batch
- Program execution 程序執行
- I/O operations I/O 操作
- File system manipulation 文件系統操作
- Communications 通信(進程間交換信息)
- Error detection & recovery 異常檢測與恢復
- Resource allocation 資源分配
- Accounting 記賬(跟蹤記錄用戶對資源的使用)
- Protection 保護(確保所有對系統資源的訪問均在控制中)
如何使用操作系統提供的服務——系統調用、API
Transitions from user mode to kernel mode: System Calls, Interrupts, Other exceptions
Computer Startup 計算機啓動
開機或重新啓動時加載引導程序(bootstrap program)
——通常存儲在ROM或EPROM中,稱爲固件(firmware)
——初始化系統的所有方面
——加載操作系統內核(kernel)並開始執行
“The one program running at all times on the computer” is the kernel.
操作系統的設計目標
- (向上)用戶:方便使用,易於學習,可靠,安全,快
- (向下)系統:便於設計、實現、維護,靈活,可靠,無誤差,高效
操作系統的特性
- concurrency 併發性
- sharing 共享性
- virtualization 虛擬性
- asynchronism 異步性
操作系統的歷史與進化
操作系統的發展是由硬件的發展推動的
No OS->Simple Batch Systems->Batch System->Multiprogramming systems->Time sharing system->Modern System