博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
windows用户态和内核态
阅读量:4704 次
发布时间:2019-06-10

本文共 726 字,大约阅读时间需要 2 分钟。

参考:

    用户态和内核态是不同的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中详细说明的也是这些函数用法。

转载于:https://www.cnblogs.com/aishangxue/p/3581055.html

你可能感兴趣的文章
记一些从数学和程序设计中体会到的思想
查看>>
题目1462:两船载物问题
查看>>
POJ 2378 Tree Cutting(树形DP,水)
查看>>
UVA 116 Unidirectional TSP (白书dp)
查看>>
第三方测速工具
查看>>
数据访问 投票习题
查看>>
cnblog!i'm coming!
查看>>
使用点符号代替溢出的文本
查看>>
fatal: remote origin already exists.
查看>>
LeetCode 242. Valid Anagram
查看>>
JSP表单提交乱码
查看>>
如何适应现代雇佣关系
查看>>
团队项目(第五周)
查看>>
SQL 优化经验总结34条
查看>>
开源 视频会议 收藏
查看>>
核心J2EE模式 - 截取过滤器
查看>>
.net开源CMS
查看>>
JdbcTemplate
查看>>
第一次使用maven记录
查看>>
SharePoint服务器端对象模型 之 使用CAML进展数据查询
查看>>