1. 操作系統誕生背景
- 1940,1950 年代的電腦,每次只能運行一個程序,程序員在打孔卡紙上寫程序
- 然後拿到一個計算機房間,交給操作員,計算機空閒下來的時候,操作員會把程序放入,然後運行,輸出結果,停機
- 運行一個程序通常需要幾個小時,幾天甚至幾周
- 以前計算機慢的時候,手動放程序的做法可以接受,但是隨着計算機越來越快,放程序的時間比運行程序的時間更長
- 我們需要一種方式,讓計算機自動運作,於是「操作系統」誕生了。
2. 操作系統介紹
- 簡稱 OS,其實也是程序
- 有操作硬件的特殊權限,可以運行和管理其他程序
- 一般是開機第一個啓動的程序。其他所有程序都由操作系統啓動
- 開始於 1950 年代
- 第一個操作系統,加強了程序加載方式(指批處理)。
- 批處理(batch processing):之前只能一次給一個程序,現在可以一次多個。當計算機運行完一個程序,會自動運行下一個程序,這樣就不會浪費時間,找下一個程序的紙卡
- 外部設備:和計算機連着的其他設備。(因此程序員有的時候需要了解設備的硬件細節,一般是閱讀手冊來寫代碼)。現在是「即插即用」,以前是「祈禱能用」
- 爲了程序員寫軟件更容易,操作系統充當軟件和硬件之間的媒介:提供 API 來抽象硬件,叫「設備驅動程序」,程序員可以用標準化機制和輸入輸出硬件交互
3. 1950年代尾聲
- 這個時候,電腦已經非常快,經常是處理器閒着,等着外部慢的機械設備,比如打印機和讀卡器
4. 1950 年代後期,
- Atlas:世界上第一臺超級計算機,由英國曼徹斯特大學開始研發
- 1962 年,出現 Atlas Supervisor
- 不僅可以自動加載程序
- 還可以在單個 CPU 上同時運行幾個程序(通過調度來實現這一點)
- 最終達到:多個程序可以同時運行,在單個 CPU 上共享時間,這種能力被稱爲「多任務處理」multitasking
- 給每個程序分配專屬內容,
- 解決程序切換的時候的數據丟失問題
- 隔離後更好,可以實現「內存保護」,同時可以防止病毒程序
- 虛擬內存
- 程序可以假定內存總是從地址 0 開始
- 內存地址「虛擬化」
- 實際物理位置被操作系統隱藏和抽象了
- 動態內存分配:
- 使程序的內存大小可以靈活增減
- 簡化了一切,爲操作系統同時運行多個程序提供了極大的靈活性
分時操作系統
- 每個用戶只能用一小部分處理器、內存等
- 最有影響力的是 Multics :多任務信息與計算系統,
- 於 1969 年發佈
- 是第一個從設計時就考慮到安全的操作系統
- 複雜度超過當時的平均水準
- 操作系統佔 1MB 內存,這在當時很多,可能是內存的一半
- 被 Unix 的設計者稱爲沒有獲得商業成功是因爲「過度設計」,功能太多
Unix
- 操作系統分爲兩部分
- 1 操作系統的核心功能
- 內核:內存管理、多任務、輸入/輸出處理
- 2 一堆有用的工具
- 1 操作系統的核心功能
- 由於其具有的簡單性,可以在更便宜更多的硬件上運行
- 1970-1980 年代最流行的操作系統之一
Windows
- 風行開始於 90 年代
- 磁盤操作系統(MS-DOS)只有 160KB,一張磁盤就可以容納
- 1981 年發佈,成爲早起家用電腦最受環境的操作系統
- 雖然系統崩潰很討厭但還可以接受,因爲用戶可以重啓
- 1985年,發佈早期 Windows,也會出現藍屏
- 藍屏代表程序崩潰的非常嚴重,把系統也帶崩潰了
- 新版的 Windows 有更好的保護,不會經常崩潰
今日操作系統
- Mac OS, Windows, Linux, iOS, Android
- 雖然一般只有一個用戶,就是正在使用設備的你,但是操作系統依然有「多任務」、「虛擬內存」、「內存保護」,因此可以同時運行多個程序
- 一邊在瀏覽器看視頻,一邊使用修圖軟件,播放音樂等
- 如果沒有操作系統這幾十年的發展,這些都不可能
2022.4.23