NATIVE应用程序详细之一
来源:互联网 发布:java内存泄漏解决方法 编辑:程序博客网 时间:2024/05/20 07:15
NT系统被设计成为支持子系统(封装),它可以执行在不同平台上的代码。包括但不限于:POSIX,OS/2和Win32,为了管理这些子系统,NT内核输出了大量名为Native API的API函数,子系统服务将这些函数包装为他们自己的函数。例如:CreateFile和fopen都被映射到NtCreateFile.
那么子系统管理程序运行在哪个子系统中?为了避免先有鸡还是先有蛋的问题,NT系统同样支持原生的Native应用程序。这些native应用程序是独立于子系统的
现在,所有的子系统应用程序都需要注册它们自己的子系统服务,显然,Kernel32是一个Win32应用程序,csrss注册WIN32子系统,然后通知子系统管理器SMSS,因此,一个native应用程序是无法调用其中数千种API的,同时它也无法使用一些基本的DLL中的函数例如kernel32,user32,gdi32等,其它任何调用了这三者的DLL中的函数的DLL也无法被使用。事实上,加载者在其入口点没有被加载前,并不允许加载决大多数的win32 DLL。因此,native应用程序被限制只许使用一个DLL:ntdll.dll,这个DLL供应所有NATIVE和运行函数。但是想想,既然所有WIN32函数最后都是去调用ntdll.dll中的函数来实现的(除了GUI部分),这些函数就已经足够了,不是吗?
现在你知道native应用程序是什么了,下一部分我将介绍更多关于native的信息
- NATIVE应用程序详细之一
- native应用程序详细之三 构建native应用程序
- NATIVE应用程序详细之2 NATIVE应用程序的优势和劣势
- Native应用程序
- 深入Native应用程序
- React Native 详细介绍
- React Native学习笔记之一
- 进程(应用程序)之一
- 注册表详细设置之一
- React native应用程序注册表appRegistry
- React Native布局详细指南
- React Native布局详细指南
- React Native 单位详细说明
- React Native布局详细指南
- React Native布局详细指南
- React Native布局详细指南
- React Native布局详细指南
- React Native布局详细指南
- linux源代码阅读工具(转载)
- string
- C++学习笔记
- java中的final关键字所起的作用
- 浮点数的比较
- NATIVE应用程序详细之一
- NATIVE应用程序详细之2 NATIVE应用程序的优势和劣势
- 第三堂课后作业
- Linux 代码格式化工具 indent
- native应用程序详细之三 构建native应用程序
- ctags使用详解)(转载)
- 深入Native应用程序
- C++学习笔记和面试备考(二, 转)
- 黑马程序员 + 第25天 正则表达式