在Linux系統中存在進程的概念:
進程的分類:
用戶進程:運行在用戶空間的進程被稱為用戶進程
內核進程:運行在內核空間的進程被稱為內核進程
進程的空間:
系統會為每一個進程分0-4G的虛擬尋址空間,在4G的空間中
0-3G:屬于用戶空間,用來運行用戶的相關進程
3-4G:屬于內核空間,用來運行內核的相關進程
用戶空間:運行用戶進程的空間
內核空間:運行內核進程的空間
用戶模式:用戶進程運行在用戶空間的模式被稱為用戶模式
內核模式:內核進程運行在內核空間的模式被稱為內核模式
用戶模式是受限模式,它對內存和硬件的訪問都必須通過系統調用實現,用戶程序運行在用戶模式,它用于用戶進程。內核模式是一種高特權模式,其中的程序能直接訪問內存和硬件,內核程序運行在內核模式。
思考:為什么要將系統和驅動層分開呢?????
原因是系統層和內核層操作的權限不同,系統層的操作權限較低,而內核層的操作權限高
操作權限指的是:內核中可以直接管理內存,可以直接訪問硬件,而系統層需要通過調用內核層才能完成操作,內核的權限值最高為0,用戶進程的權限值為3.
另外系統的破壞性屬于局部,如系統中運行的進程崩潰不會導致系統的崩潰
內核破壞性屬于全局的,內核崩潰直接導致系統崩潰(藍屏)