以内核模式运行和以root身份运行的进程之间的区别?
Posted
技术标签:
【中文标题】以内核模式运行和以root身份运行的进程之间的区别?【英文标题】:Difference between processes running in kernel mode and running as root? 【发布时间】:2011-01-22 04:27:25 【问题描述】:我知道在用户模式下运行的进程和在内核模式下运行的进程之间的区别(基于访问限制、对硬件的访问等)。但是出于好奇,在内核模式下运行的进程和以 root 身份运行的进程有什么区别?
【问题讨论】:
【参考方案1】:内核模式和 root 是两个独立的概念,彼此并不真正相关。以 root 身份运行进程的概念是一个 unix/linux 术语,表示您以系统管理员身份登录。
您运行的任何进程,无论是作为 root 用户还是普通用户,通常都在用户模式和内核模式下运行。系统不断在用户模式(应用程序代码运行的地方)和内核模式(内核代码运行的地方)之间切换。
某些程序(如许多设备驱动程序)始终在内核模式下运行,这意味着它们可以完全访问硬件。以 root 权限运行的普通应用程序仍然存在于用户模式下,并且只有在进行内核系统调用时才会切换到内核模式,然后再切换回用户模式。
【讨论】:
我认为您所描述的内容是正确的,我正在尝试查找参考资料(Linux 内核文档将是最好的),但我找不到任何参考资料。你有这方面的参考吗?以上是关于以内核模式运行和以root身份运行的进程之间的区别?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Linux 内核 call_usermodehelper 在用户模式下运行用户空间进程