1、用户态和内核态 内核态:在高级别的状态下,代码可以执行特权指令,访问任意的物理地址; 用户态:在相应的低级别执行状态下,代码的掌控范围会受到限制。 区分: CPU每条指令的读取都是通过cs:eip,cs寄存器最低两位表明了当前代码的特权级。内核态下可访问所有地址空间。 2、Intel x86 C
分类:
系统相关 时间:
2016-03-18 23:26:19
阅读次数:
275
20135130王川东 CPU的几种不同的执行级别: 高执行级别下,代码可以执行特权指令,访问任意的物理地址,这种执行级别对应内核态; 低级别执行状态下,代码的掌握范围会受到限制,只能在对应级别允许的范围内活动。 例:intel x86 CPU有四种不同的执行级别0-3,Linux只使用其中的0级和
分类:
系统相关 时间:
2016-03-17 19:29:58
阅读次数:
263
和系统调用打交道的方式:通过库函数,把系统调用给封装起来 用户态vs内核态: 一般现代CPU都有几种不同的指令执行级别 在高级别的状态下,代码可以执行特权指令,访问任意的物理地址,这种CPU执行级别对应着内核态 在相应的低级别执行状态下,代码的掌控范围会受到限制,只能在对应级别允许的范围内活动 为什
分类:
其他好文 时间:
2016-03-17 14:37:45
阅读次数:
173
《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 【知识点梳理】 (一)用户态、内核态和中断处理过程 1.内核态:在高的执行级别下,代码可以执行特权指令,访问任意的物理地址,这时的CPU就对应内核态 2.用户态:在低级
分类:
系统相关 时间:
2016-03-16 18:52:22
阅读次数:
294
扒开系统调用的三层皮(上) 一、用户态、内核态和中断 库函数将系统调用封装起来。 1、什么是用户态和内核态 一般现代CPU都有几种不同的指令执行级别。 在高执行级别下,代码可以执行特权指令,访问任意的物理地址,这种CPU执行级别就对应着内核态。 而在相应的低级别执行状态下(用户态),代码的掌控范围会
分类:
系统相关 时间:
2016-03-16 15:21:49
阅读次数:
248
GCC内联汇编(INLINE ASSEMBLY) 什么是内联汇编(Inline assembly)? 1、这是GCC对C语言的扩张,就是在C代码里面去写汇编代码 2、可以直接在C的语句中插入汇编指令 有何用处? 1、C语言不足以完成所有CPU的指令, 特别是有一些特权指令,比如加载gdt表...
分类:
其他好文 时间:
2016-01-24 18:14:26
阅读次数:
181
在2003年出现的Xen,使用了另外的一种半虚拟化的方案来解决x86架构下CPU的敏感指令问题。主要采用Hypercall技术。GuestOS的部分代码被改变,从而使GuestOS会将和特权指令相关的操作都转换为发给VMM的Hypercall(超级调用),由VMM继续进行处理。而Hypercall支持的批处理和异步..
分类:
其他好文 时间:
2016-01-20 15:51:27
阅读次数:
212
Linux进程查看与管理OS的基本功能:文件系统、网络功能、进程管理、内存管理、驱动程序、安全功能程序=指令+数据CPU:特权指令普通指令程序执行环境:内核模式:运行内核级指令用户模式:运行普通指令应用程序:运行普通指令:直接运行于CPU运行特权指令:通过systemcall内存:..
分类:
系统相关 时间:
2015-09-22 14:45:22
阅读次数:
262
核心态和用户态是操作系统两种运行级别。核心态就是拥有资源较多的状态,或者说访问资源多的状态,也称之为特权态;相对来说,用户态就是非特权态,访问资源将受到限制。核心态下CPU可执行任何指令,而用户态下CPU只能执行非特权指令。当CPU处于核心态时可随意进入用户态;而处于用户态时,切换到核心态只有在系统...
分类:
其他好文 时间:
2015-09-05 13:49:21
阅读次数:
136
我们首先要明确,为什么操作系统需要中断、异常和系统调用:
在计算机运行时,内核是被信任的第三方 只有内核才可以执行特权指令 方便应用程序
接下来我们先简单了解一下三者的概念:
系统调用(system call)
应用程序主动向操作系统发出的服务请求
异常(exception)
非法指令或者其他原因导...
分类:
其他好文 时间:
2015-08-09 17:17:34
阅读次数:
134