operating-system structures

zhudachang發表於2024-04-13

作業系統的服務

  1. 最頂層是user interfaces
  • 主要是gui,batch,command line
  • 給使用者使用作業系統
  1. 第二層是system calls(系統呼叫)
  • 給程式設計師來使用,呼叫一些介面
  1. 第三層是service
  • program execution:應用程式
  • I/O operations:一些io裝置
  • file systems:以檔案方式去儲存,儲存到儲存裝置中
  • communication:程式之間的通訊
  • resource allocation:資源分配,經過作業系統
  • accounting:記賬
  • error detection:
  • protection and security:防止惡意程式碼

為使用者

  • Almost all operating system have a user interface(UI),It offers a way for users to interface(互動) with OS.
    • CLI(Command Line Interface)
      • command interpreter(shell)
      • interpreter(直譯器)
    • GUI(Graphic User Interface)
      • A user friendly graphical user interface.
    • Batch
      • It is file which contains commands(命令) and directives(指示).
        • 一些常用命令:cd ls mkdir touch
        • 使用ls -l,可以看到屬性,是否為檔案,drwxr-xr-x(d表示這個是一個檔案)
        • batch檔案

為程式設計師

  1. 系統呼叫(system calls)提供了訪問和使用作業系統所提供的服務介面
  • 系統呼叫的實現程式碼是作業系統級的
  • 這個介面通常是面向程式設計師的
  1. API(Application Programming Interface):指名了引數和返回值的一組函式。
  • 應用程式App的開發人員透過透過API間接訪問了系統呼叫
  • api不是系統呼叫。
  1. 雙重模式 :
  • 計算機系統上有一個專門的硬體
    • 使用者模式(user mode):執行使用者程式碼
    • 核心模式(kernel mode):執行作業系統程式碼
  • 在不同模式上,可以執行的程式碼許可權不同,特權指令,確保作業系統可以正常執行。
  • 系統呼叫執行在kernel mode
  • 應用程式執行在user mode下
  1. 系統呼叫實現機制
  • 每一個系統呼叫都有一個唯一的數學編號,被稱為系統呼叫號
  • 使用者程式碼呼叫API時,API中會向系統呼叫介面指明其所要用的系統呼叫號,作業系統核心中會維護一張索引表,依據這個呼叫號可以檢索到系統呼叫程式碼在核心中的位置。

作業系統的構建方式

  1. 作業系統的設計思路
  • 設計目標
    • 使用者目標(user goal)
    • 系統目標(system goal)
  • 機制與策略的分離
    • 機制(mechanism):如何做
    • 策略(policy):做什麼
    • 透過分離機制和策略,系統設計者可以獨立地修改策略而不需要重新設計機制,這樣可以在不同的環境和需求下複用相同的機制。這種分離使得系統更加模組化,易於理解和維護。同時,這也允許在不同的實現中應用相同的策略,或者在相同的框架下實驗不同的策略。

GNU/Linux