linux内核态与用户态。。。
2015-07-06 14:48
357 查看
关于特权级别下面引用一部分资料:
=======================================================================
特权级显然是非常有效的管理和控制程序执行的手段,因此在硬件上对特权级做了很多支持,就x86架构的CPU来说一共有0~3四个特权级,0级最高,3级最低,硬件上在执行每条指令时都会对指令所具有的特权级做相应的检查,相关的概念有CPL、DPL和RPL【可查相关资料】,这里不再过多阐述。硬件已经提供了一套特权级使用的相关机制,软件自然就是好好利用的问题,这属于操作系统要做的事情,对于Unix/Linux来说,只使用了0级特权级和3级特权级。也就是说在Unix/Linux系统中,一条工作在0级特权级的指令具有了CPU能提供的最高权力,而一条工作在3级特权级的指令具有CPU提供的最低或者说最基本权力。
内核态(Kernel Mode):
在内核态,代码拥有完全的,不受任何限制的访问底层硬件的能力。可以执行任意的CPU指令,访问任意的内存地址。内核态通常情况下,都是为那些最底层的,由操作系统提供的,可信可靠的代码来运行的。内核态的代码崩溃将是灾难性的,它会影响到整个系统。
用户态(User Mode):
在用户态,代码不具备直接访问硬件或者访问内存的能力,而必须借助操作系统提供的可靠的,底层的APIs来访问硬件或者内存。由于这种隔离带来的保护作用,用户态的代码崩溃(Crash),系统是可以恢复的。我们大多数的代码都是运行在用户态的。
=======================================================================
=======================================================================
特权级显然是非常有效的管理和控制程序执行的手段,因此在硬件上对特权级做了很多支持,就x86架构的CPU来说一共有0~3四个特权级,0级最高,3级最低,硬件上在执行每条指令时都会对指令所具有的特权级做相应的检查,相关的概念有CPL、DPL和RPL【可查相关资料】,这里不再过多阐述。硬件已经提供了一套特权级使用的相关机制,软件自然就是好好利用的问题,这属于操作系统要做的事情,对于Unix/Linux来说,只使用了0级特权级和3级特权级。也就是说在Unix/Linux系统中,一条工作在0级特权级的指令具有了CPU能提供的最高权力,而一条工作在3级特权级的指令具有CPU提供的最低或者说最基本权力。
内核态(Kernel Mode):
在内核态,代码拥有完全的,不受任何限制的访问底层硬件的能力。可以执行任意的CPU指令,访问任意的内存地址。内核态通常情况下,都是为那些最底层的,由操作系统提供的,可信可靠的代码来运行的。内核态的代码崩溃将是灾难性的,它会影响到整个系统。
用户态(User Mode):
在用户态,代码不具备直接访问硬件或者访问内存的能力,而必须借助操作系统提供的可靠的,底层的APIs来访问硬件或者内存。由于这种隔离带来的保护作用,用户态的代码崩溃(Crash),系统是可以恢复的。我们大多数的代码都是运行在用户态的。
=======================================================================
相关文章推荐
- Linux C语言程序设计(一)——常量、变量和表达式
- HOWTO: install kernel debuginfo packages on SUSE Linux Enterprise Server 11
- Linux常用命令大全
- win7 - 虚拟linux,共享设置
- linux调度器_第三代cfs(4)_总手稿_完结篇
- 静态IP设置(基于CentOS7)
- centOS 7安装 gitLab
- 25、Linux Make 命令详解
- Linux查看程序端口占用情况
- Linux下安装软件的几种方法
- linux系统安装mysql
- Linux Crontab语法
- DCE HOWTO linux netlink working with routing table
- linux之grep用法
- linux0.12之内核代码之fork.c说明
- CentOS下添加新硬盘并分区格式化
- linux0.12之内存管理(2)-再理解分段分页
- Linux运维系统工程师系列---22
- 转:linux下nagios安装与配置
- 我使用过的Linux命令之date - 显示、修改系统日期时间(转)