用戶態提供應用程序運行的空間,為了使應用程序訪問到內核管理的資源,例如CPU,內存,I/O等。用戶態只能受限的訪問內存, 且不允許訪問外設(硬盤、網卡等);內核態CPU可以訪問內存所有數據, 包括外設,且可以將自己從一個程序切換到另一個程序。
內核態本質是內核,一種特殊的軟件程序,用于控制計算機的硬件資源,例如協調CPU資源,分配內存資源,并且提供穩定的環境供應用程序運行。
用戶態切換到內核態的具體步驟:
從當前進程的描述符中提取其內核棧的ss0及esp0信息。
使用ss0和esp0指向的內核棧將當前進程的cs,eip,eflags,ss,esp信息保存起來,這個過程也完成了由用戶棧到內核棧的切換過程,同時保存了被暫停執行的程序的下一條指令。
將先前由中斷向量檢索得到的中斷處理程序的cs,eip信息裝入相應的寄存器,開始執行中斷處理程序,這時就轉到了內核態的程序執行了。
回答所涉及的環境:聯想天逸510S、Windows 10。
用戶態提供應用程序運行的空間,為了使應用程序訪問到內核管理的資源,例如CPU,內存,I/O等。用戶態只能受限的訪問內存, 且不允許訪問外設(硬盤、網卡等);內核態CPU可以訪問內存所有數據, 包括外設,且可以將自己從一個程序切換到另一個程序。
內核態本質是內核,一種特殊的軟件程序,用于控制計算機的硬件資源,例如協調CPU資源,分配內存資源,并且提供穩定的環境供應用程序運行。
用戶態切換到內核態的具體步驟:
從當前進程的描述符中提取其內核棧的ss0及esp0信息。
使用ss0和esp0指向的內核棧將當前進程的cs,eip,eflags,ss,esp信息保存起來,這個過程也完成了由用戶棧到內核棧的切換過程,同時保存了被暫停執行的程序的下一條指令。
將先前由中斷向量檢索得到的中斷處理程序的cs,eip信息裝入相應的寄存器,開始執行中斷處理程序,這時就轉到了內核態的程序執行了。
回答所涉及的環境:聯想天逸510S、Windows 10。