2013-10-31 34 views
-1

內核是守護程序嗎? 是否引發陷阱(通過INT指令)與內核進行通信的唯一方式? 執行調用內核子程序的所有系統調用,提升INT陷阱嗎? 用戶應用程序是否在與內核守護程序不同的進程中運行,用戶進程是由內核守護程序產生的?操作系統內核是守護進程嗎?

+0

內核不是守護進程 - 它既不能代表進程運行也不能進行調度。 –

回答

0

是否引發陷阱(通過INT指令)與內核通信的唯一方法?

號第一,INT是一個老機制的陷阱,大多數操作系統現在在x86和x86_64平臺使用SYSENTER。其他體系結構具有各種類型的軟件中斷/陷阱指令。

陷阱並不是與內核通信的唯一方式。由於內核可以訪問任何內存,包括分配給用戶模式進程的內存,共享內存是非常可行的。

是否所有調用內核子程序的系統調用都會引發INT陷阱?

「調用」內核例程的方式是使用陷阱(SYSENTER)。其他機制,如內核共享內存隊列數據處理,但你不會說這是一個子程序調用。

1

內核是守護程序嗎?

沒有。

是否引發陷阱(通過INT指令)與內核進行通信的唯一方式?

是的,因爲內核和用戶空間應用程序在不同的權限級別,稱爲環。內核運行的是supervisor模式,稱爲ring0,而用戶應用程序在ring3中運行,稱爲usermode。

是否所有調用內核子程序的系統調用都會引發INT陷阱?

是的,他們這樣做。

用戶應用程序是否運行在與內核守護程序不同的進程中,用戶進程是否由內核守護程序產生?

我真的不明白這一點,請詳細說明。

+1

內核條目的可能手段因體系結構而異;給定操作系統使用哪種可能性(當存在多於一個時)是設計決定。 –

+0

@ChrisStratton:我認爲更新的AMD和Intel機器有一個新的syscall指令,比整個'int'更有效率。 – Linuxios

+0

是的,它們具有SYSENTER/SYSEXIT的情況,但是它更具體,特別是大多數操作系統仍然使用INT指令來陷入R0。 –

0

進程,守護進程等的整個思想是由內核創建的抽象。在CPU級別上,只有兩級劃分。有處理器核心,並行運行他們的代碼,並有權限環,決定什麼樣的指令可以使用。

內核在ring0中運行(有時一些驅動程序生活在環1和環2中)。用戶空間代碼在ring3中運行。特殊處理器機制(如中斷或sysenter指令)是將控制權從ring3代碼(用戶空間進程)轉移到ring0代碼(內核)所必需的。