zoukankan      html  css  js  c++  java
  • windows用户态和内核态

    参考:http://www.fmddlmyy.cn/text7.html

        用户态和内核态是不同的CPU特权级别,X86用户态为RING3,内核态在RING0。

        win32系统可以使用的最大内存空间为4GB,用户态代码可以使用的是0x00000000——0x7FFFFFFF。

        从用户态进入核心态最常用方法是将功能码写入EAX中,然后INT 2E,类似DOS中断调用BIOS的功能;这种机制在NT架构中叫做system service。

        核心态主要有ntoskrnl.dll 、win32k.sys 两个模块提供system service。ntoskrnl.exe是windows的大脑,其上层是executive,下层是kernel;win32k.sys提供与显示有关的system service。

        用户态中一个很重要的模块:ntdll.dll,大多数 system service 都是它调用的,它封装了这写system service ,然后提供了结接口,其主要作用就是将调用传到内核态。ntdll.dll提供了平台无关的API接口,被看做NT系统的原生接口,所以也被称作native API。

        win32子系统的管理员是csrss.exe进程(Client/Server Runtime SubSystem),所有的win32程序的进程和线程都要向它登记。

        我们编程窗口的函数都是微软以DLL的形式提供的,主要的包括:kernel.dll、User32.dll、Gdi32.dll、Advapi32.dll,他们包装了ntdll.dll中的native API。MSDN中详细说明的也是这些函数用法。

  • 相关阅读:
    idea从零搭建简单的springboot+Mybatis
    关于监听微服务功能
    final
    mysql数据库分页查询优化
    Mysql中“select ... for update”排他锁(转)
    HashMap(常用)方法个人理解
    5.1 Object类型
    5.3 Date类型
    4.1-4.2 基本类型及引用类型,执行环境及作用域
    20.JSON
  • 原文地址:https://www.cnblogs.com/aishangxue/p/3581055.html
Copyright © 2011-2022 走看看