核心組成
在介紹軟體運作流程之前,我需要先介紹以下核心中組成的子系統部分:
(1)系統調用子系統部分:這就相當與核心對外提供了一個調用其子系統的接口,使用者進行需要執行一些核心權限才具有的操作時,就必須通過該子系統來進行調用。
(2)程序管理子系統:該子系統主要的作用是使運作的多個程序并發對CPU有序的通路控制。意思就是在電腦上同一時刻會運作多個程式,假如隻有一個CPU的情況下,怎麼來控制多個程序對CPU的通路順序等問題。
(3)記憶體管理子系統:對作業系統的記憶體進行管理、配置設定、回收、隔離等操作。簡單的說就是程式運作時需要對其配置設定運作空間,具體配置設定多少空間,那一段空間屬于哪一個程序等等這都是屬于該子系統所需要管理的事情。
(4)檔案管理子系統:檔案的存儲管理。就是說平時你在電腦上儲存的圖檔、文檔等等他都是以二進制的形式存儲到檔案系統中的。當需要的時候,我們從檔案系統中找到存儲的相應位置,然後讀出來,就能看到它檔案的内容了。
(5)裝置管理子系統:對輸入輸出裝置的關系系統。例如鍵盤,滑鼠等裝置都是輸入裝置當我們使用鍵盤進行輸入的時候裝置子系統會出現相應,并通知相應的程式接收相應的輸入。
(6)網絡子系統:網絡協定棧和收發網絡包。我們在應用層準備将資料發送給其他裝置時,最終都會傳遞給網絡子系統,它負責進行相應的封裝并将資料通過網絡發送出去以及接收傳回的資料進行解封最終交遞給應用層相應的應用。
一共六個部分,将其總結為如下圖則為:
軟體啟動流程
我們先在使用鍵盤輸入啟動程式A的指令或者通過滑鼠點選(裝置子系統)運作程式A,當作業系統了解你的意圖之後,先去檔案系統中将相應程式A的起始執行檔案找到,将其調入記憶體執行并生成一個程序A。然後根據程序A内部邏輯執行相應的操作。(當然這裡所有步驟都必須通過CPU才能得到執行)(大體是這樣的,細節待補充)