內核是守護程序嗎? 是否引發陷阱(通過INT指令)與內核進行通信的唯一方式? 執行調用內核子程序的所有系統調用,提升INT陷阱嗎? 用戶應用程序是否在與內核守護程序不同的進程中運行,用戶進程是由內核守護程序產生的?操作系統內核是守護進程嗎?
回答
是否引發陷阱(通過INT指令)與內核通信的唯一方法?
號第一,INT
是一個老機制的陷阱,大多數操作系統現在在x86和x86_64平臺使用SYSENTER
。其他體系結構具有各種類型的軟件中斷/陷阱指令。
陷阱並不是與內核通信的唯一方式。由於內核可以訪問任何內存,包括分配給用戶模式進程的內存,共享內存是非常可行的。
是否所有調用內核子程序的系統調用都會引發INT陷阱?
「調用」內核例程的方式是使用陷阱(SYSENTER
)。其他機制,如內核共享內存隊列數據處理,但你不會說這是一個子程序調用。
內核是守護程序嗎?
沒有。
是否引發陷阱(通過INT指令)與內核進行通信的唯一方式?
是的,因爲內核和用戶空間應用程序在不同的權限級別,稱爲環。內核運行的是supervisor模式,稱爲ring0,而用戶應用程序在ring3中運行,稱爲usermode。
是否所有調用內核子程序的系統調用都會引發INT陷阱?
是的,他們這樣做。
用戶應用程序是否運行在與內核守護程序不同的進程中,用戶進程是否由內核守護程序產生?
我真的不明白這一點,請詳細說明。
內核條目的可能手段因體系結構而異;給定操作系統使用哪種可能性(當存在多於一個時)是設計決定。 –
@ChrisStratton:我認爲更新的AMD和Intel機器有一個新的syscall指令,比整個'int'更有效率。 – Linuxios
是的,它們具有SYSENTER/SYSEXIT的情況,但是它更具體,特別是大多數操作系統仍然使用INT指令來陷入R0。 –
進程,守護進程等的整個思想是由內核創建的抽象。在CPU級別上,只有兩級劃分。有處理器核心,並行運行他們的代碼,並有權限環,決定什麼樣的指令可以使用。
內核在ring0中運行(有時一些驅動程序生活在環1和環2中)。用戶空間代碼在ring3中運行。特殊處理器機制(如中斷或sysenter指令)是將控制權從ring3代碼(用戶空間進程)轉移到ring0代碼(內核)所必需的。
- 1. Qt中的linux系統守護進程
- 2. 如何開始在類Unix操作系統(如Linux)中編寫守護進程?
- 3. Firefox操作系統:進程,內存
- 4. 是IIS Http守護進程嗎?
- 5. 對操作系統的內存保護
- 6. 定時器()作爲守護進程與非守護進程
- 7. Linux內核操作系統寄存器
- 8. 守護進程關係數據庫管理系統
- 9. 多核和操作系統
- 10. init進程是一個守護進程
- 11. Cron守護進程正在運行,系統日誌守護進程正在運行,但cron不會運行
- 12. 如何重新加載系統守護進程?
- 13. 扭曲蟒系統守護進程和端口綁定
- 14. 紅寶石守護進程不會在系統啓動時
- 15. 從守護進程中使用OSX系統密鑰鏈
- 16. 在python * nix系統中自動重新啓動守護進程
- 17. 如何加載全系統守護進程在MacOS
- 18. 不啓動NFS內核守護進程:沒有出口
- 19. 避免守護進程運行在專用的cpu內核中
- 20. Linux守護進程
- 21. Python守護進程
- 22. iphone守護進程
- 23. 進程和線程在操作系統
- 24. 值得使用守護進程嗎?
- 25. 系統調用kill內核內核進程
- 26. Linux守護進程停止啓動 - 停止守護進程
- 27. mongrel_rails集羣::開始不起作用,找守護進程/守護進程
- 28. 操作系統是抽象嗎?
- 29. OSX是POSIX操作系統嗎?
- 30. java守護進程線程
內核不是守護進程 - 它既不能代表進程運行也不能進行調度。 –