用户态

维基百科,自由的百科全书
跳转至: 导航搜索

用户态(user mode)在计算机结构指两项类似的概念。在CPU的设计中,用户态指非特权状态。在此状态下,执行的代码被硬件限定,不能进行某些操作,比如写入其他进程的存储空间,以防止给操作系统带来安全隐患。在操作系统的设计中,用户态也类似,指非特权的执行状态。内核禁止此状态下的代码进行潜在危险的操作,比如写入系统配置文件、杀掉其他用户的进程、重启系统等。

CPU设计中的用户态[编辑]

用户态不允许程序进行处理器中要求特权态的操作,以避免操作系统崩溃。每个进程都在各自的用户空间中运行,而不允许存取其他程序的用户空间。

x86结构拥有四种级别,级别最高的是ring 0,也就是核心态。级别最低的是ring 3,也就是用户态。ring 1和ring 2設計成供驅動程式使用,但一般很少使用。

操作系统设计中的用户态[编辑]

操作系统中的用户态,指权限等级中的一般级别,与之相对的是管理员或者超级用户(類Unix系統中,名为“root”或“superuser”等)的特权级别。用户态启动的每个进程,根据运行该进程的用户,都被系统赋予特定的权限。

操作系统的用户态通常是在相应的CPU用户态中运行代码,从而在硬件上,实现非法程序的控制。与CPU级别相比,操作系统容許用户态有更加复杂的权限设定。举例而言,默认下的Unix系统中,运行在用户态的代码,不准通过侦听1024以下的端口号,以伪装成常见的服务,而超级用户运行的代码则有權这样做。

参见[编辑]