作業系統學習筆記3 | 作業系統簡史
讀史使人明智。通過作業系統的歷史,了解作業系統是怎麼編出來的,為什麼要有那些模組,哪些東西才是核心。
參考資料:
- 課程:哈工大作業系統(本部分對應 L6 && L7)
- 實驗:作業系統原理與實踐_Linux – 藍橋雲課 (lanqiao.cn)
- 筆記:作業系統學習導引 · 語雀 (yuque.com)
1. 多進程發展漫步
由於裸機使用十分不便,作業系統自電腦誕生就開始出現了。
-
1955年~1965年,上古神機 IBM7094 與批處理作業系統 IBSYS
- 一個接一個的執行Job,一旦某個Job執行結束或者執行出錯,就去執行下一個Job;
- 這時配置的批作業系統更像一個監控程式,用於順序切換任務,並將出錯資訊輸出到磁帶;
-
1965年~1980年,出現作業系統 OS/360(360表示全方位服務),電腦進入多個行業
-
很多故事都是從這個作業系統發展的
-
多任務的需求催生了 多道程式 multiprogramming 的誕生
-
OS/360 的設計中開始出現多進程結構和進程管理的相似概念
多進程結構是作業系統最核心的影像。
-
-
1965年~1980年,MULTICS(來自MIT),電腦進入多個行業,每台電腦的使用人數增加
- 引入 分時系統timesharing 的概念
- 給電腦的每個用戶一定的時間來執行,定期進行切換,這樣每個人的任務都是一段段向前推進的,不會出現擱置太久情況
- 分時 主要用於server,而 PC 中也有這樣的思想
-
1980年~1990年,UNIX,小型化電腦開始出現,越來越多的個人可以使用電腦
- UNIX是一個簡化的MULTICS,核心概念差不多,但更靈活和成功
-
1990年~2000年,Linux,個人電腦開始普及,很多人可以用電腦並接觸Unix
2. 總結
從 IBSYS -> OS\360 -> MULTICS -> Unix -> Linux,核心其實是多進程管理的思想。
- 核心思想、技術:
- 馮·諾依曼思想:用戶通過執行程式來使用電腦;
- 進程管理:要讓多個程式合理推進
- 多進程、多用戶推進任務需考慮記憶體復用
- 軟體實現:
- 對於作業系統,真正實現它很重要
- 需要合作、需要群體協作。
- 學習重點:
- 掌握作業系統的多進程圖譜並實現
3. 文件系統發展漫步
歷史總是多線條的,下面從另一條再看歷史。
-
PC與DOS
-
PC的推廣更是推動了電腦及作業系統的發展,1975年 Digital Research 為 Altair 8800 開發了作業系統 CP/M
-
CP/M 為用戶提供了命令,能夠執行命令對應的程式,並且給用戶通過命令行操作文件的可能。
-
1980年,CP/M 的基礎上開發 QDOS
這裡 QDOS 意指 Quick and Dirty OS,還不是 Disk Operation System
如果QDOS繼續發展,可能沒有Bill Gates的故事。
-
-
從QDOS到MS-DOS
-
1975年,BASIC語言解釋器,後續磁碟文件管理系統 FAT
-
而編程環境和文件管理,都是用戶實在關心的
-
QDOS 成功在把 FAT 和 BASIC解釋器 包含進來
-
改名MS-DOS 和 IBM PC 一起出售
Disk OS.
微軟的第一個作業系統即MS-DOS。
-
-
從 MS-DOS 到 Windows
- 電腦開始商業化,通過文件、成熟的開發環境、圖形介面使用電腦更加方便。
-
Mac OS && iOS
- 思路與 Windows 相似,更關注人機交互的介面、文件、媒體。
4. 再總結
從CP/M -> QDOS -> MS-DOS -> Windows 以及 Unix -> System -> Mac OS -> iOS:
-
核心思想、技術:
-
仍然以多進程管理為基本結構
-
加入了圖形介面、編程環境和文件管理等內容,更重視用戶的體驗
-
-
軟體實現:
- 如何通過文件存儲程式碼、執行程式碼、操作螢幕
- 如何讓文件和操作變成圖標,點擊或者觸碰?
-
學習重點:
- 掌握、實現作業系統的多進程圖譜
- 掌握、實現作業系統的文件操作視圖
-
多進程(CPU與記憶體)與文件(IO、磁碟、文件)是本課程剩餘內容的兩大主題
5. 後面的學習
接下來具體就會
-
多進程圖譜
管理進程:
fork
-
CPU管理
-
記憶體管理
地址,為什麼
*p=7
可以訪問記憶體。
-
-
文件視圖
-
磁碟管理
-
終端設備管理
操作設備也是操作文件 ,比如:
# 操作顯示器 dev tty0
-