作業系統學習筆記3 | 作業系統簡史

讀史使人明智。通過作業系統的歷史,了解作業系統是怎麼編出來的,為什麼要有那些模組,哪些東西才是核心。


參考資料:


1. 多進程發展漫步

由於裸機使用十分不便,作業系統自電腦誕生就開始出現了。

  • 1955年~1965年,上古神機 IBM7094 與批處理作業系統 IBSYS

    image

    • 一個接一個的執行Job,一旦某個Job執行結束或者執行出錯,就去執行下一個Job;
    • 這時配置的批作業系統更像一個監控程式,用於順序切換任務,並將出錯資訊輸出到磁帶;
  • 1965年~1980年,出現作業系統 OS/360(360表示全方位服務),電腦進入多個行業

    image

    • 很多故事都是從這個作業系統發展的

    • 多任務的需求催生了 多道程式 multiprogramming 的誕生

    • OS/360 的設計中開始出現多進程結構和進程管理的相似概念

      多進程結構是作業系統最核心的影像。

  • 1965年~1980年,MULTICS(來自MIT),電腦進入多個行業,每台電腦的使用人數增加

    image

    • 引入 分時系統timesharing 的概念
    • 給電腦的每個用戶一定的時間來執行,定期進行切換,這樣每個人的任務都是一段段向前推進的,不會出現擱置太久情況
    • 分時 主要用於server,而 PC 中也有這樣的思想
  • 1980年~1990年,UNIX,小型化電腦開始出現,越來越多的個人可以使用電腦

    image

    • UNIX是一個簡化的MULTICS,核心概念差不多,但更靈活和成功
  • 1990年~2000年,Linux,個人電腦開始普及,很多人可以用電腦並接觸Unix

    image

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的故事。

    • image

  • 從QDOS到MS-DOS

    • 1975年,BASIC語言解釋器,後續磁碟文件管理系統 FAT

    • 而編程環境和文件管理,都是用戶實在關心的

    • QDOS 成功在把 FAT 和 BASIC解釋器 包含進來

    • 改名MS-DOS 和 IBM PC 一起出售

      Disk OS.

      微軟的第一個作業系統即MS-DOS。

    image.png

  • 從 MS-DOS 到 Windows

    • 電腦開始商業化,通過文件、成熟的開發環境、圖形介面使用電腦更加方便。
    • image.png
  • Mac OS && iOS

    • 思路與 Windows 相似,更關注人機交互的介面、文件、媒體。
    • image.png

4. 再總結

從CP/M -> QDOS -> MS-DOS -> Windows 以及 Unix -> System -> Mac OS -> iOS:

  • 核心思想、技術:

    • 仍然以多進程管理為基本結構

    • 加入了圖形介面、編程環境和文件管理等內容,更重視用戶的體驗

  • 軟體實現:

    • 如何通過文件存儲程式碼、執行程式碼、操作螢幕
    • 如何讓文件和操作變成圖標,點擊或者觸碰?
  • 學習重點:

    • 掌握、實現作業系統的多進程圖譜
    • 掌握、實現作業系統的文件操作視圖
  • 多進程(CPU與記憶體)與文件(IO、磁碟、文件)是本課程剩餘內容的兩大主題

    image

5. 後面的學習

接下來具體就會

  • 多進程圖譜

    管理進程:fork

    • CPU管理

    • 記憶體管理

      地址,為什麼*p=7可以訪問記憶體。

  • 文件視圖

    • 磁碟管理

    • 終端設備管理

      操作設備也是操作文件 ,比如:

      # 操作顯示器
      dev tty0
      

image