1. 程式人生 > >Linux作業系統以及核心簡介

Linux作業系統以及核心簡介

Linux核心簡介

Linux作業系統

作業系統是指在整個系統中負責完成最基本功能和系統管理的那些部分。這部分包括核心、裝置驅動程式、啟動載入程式、命令列shell或者其他種類的使用者介面、基本的檔案管理工具和系統工具

Linux核心

核心有時候被稱作是管理者或者作業系統的核心。

核心組成

通常一個核心的組成有:
負責響應中斷的中斷服務程式
負責管理多個程序從而分享處理器時間的排程程式
負責管理程序地址空間的記憶體管理程式
以及網路、程序間通訊等系統服務共同組成。

系統態和使用者態

核心獨立於普通應用程式,它一般處於系統態,擁有受保護的記憶體空間和訪問硬體裝置的所有許可權。這種系統態和被保護起來的記憶體空間,統稱為核心空間

相對的,應用程式在使用者空間執行,它們只能看到允許它們使用的部分系統資源,並且只使用某些特定的系統功能,不能直接訪問硬體,也不能訪問核心劃給別人的記憶體範圍,還有其他一些使用限制。

當核心執行的時候,系統以核心態進入核心空間執行。而執行一個普通使用者程式時,系統將以使用者態進入以使用者空間執行

庫函式和系統呼叫

在系統中執行的應用程式通過系統呼叫來與核心通訊。應用程式通常呼叫庫函式(比如C庫函式)再由庫函式通過系統呼叫介面,讓核心代其完成各種不同任務

這裡寫圖片描述
功能的所需要的操作中的一部分,實現這個函式功能還需要其他的操作,不過也有一些庫函式和系統呼叫是一一對應的關係,比如 open庫函式除了呼叫open()系統呼叫之外,幾乎什麼也不做。

中斷機制

核心還要負責管理系統的硬體裝置,現在幾乎所有的體系結構都提供了中斷機制

當硬體裝置想和系統通訊的時候,它首先要發出一個非同步的中斷訊號去打斷處理器的執行,繼而打斷核心的
執行,中斷通常對應著一箇中斷號,核心通過這個中斷號查詢相應的中斷程式,並呼叫這個程式響應和
處理中斷

為了保證同步,核心可以停用中止——既可以停止所有的中斷也可以有選擇的停止某個中斷號對應的中斷。

許多作業系統的中斷服務程式,都不在程序上下文中執行。它們在一個與所有程序都無關的、專門的中斷上下文中執行。之所以存在這樣一個專門的執行環境,是為了保證中斷服務程式能夠在第一時間響應和處理中斷請求,然後快速的退出。

這些上下文代表著核心活動的範圍,實際上我們可以將每個處理器在任何時間點上的活動必然概括為下列三者之一:

  • 運行於使用者空間,執行使用者程序
  • 運行於核心空間,處於程序上下文,代表某個特定的程序執行
  • 運行於核心空間,處於中斷上下文,與任何程序無關,處理某個特定的中斷
  • -

Linux核心和傳統Unix核心的比較

Unix核心幾乎毫無例外的都是一個不可分割的靜態可執行庫,它們必須以巨大、單獨的可執行塊的形式在一個單獨的地址空間中執行。Unix核心通常需要硬體系統提供頁機制(MMU)以管理記憶體。這種頁機制可以加強對記憶體空間的保護,並保證每個程序都可以運行於不同的虛地址空間上。

初期的Linux系統也需要MMU支援,但有一些特殊版本並不依賴於此,因為它可以是Linux系統執行在沒有MMU的小型嵌入系統上