概念和工具 2

来源:互联网 发布:java编程思想txt 编辑:程序博客网 时间:2024/05/01 21:29


注意:Windows API 在SDK中有详细描述。SDK既可以从www.msdn.microsoft.com上看到,也可以从 msdn 光盘中直接获取。关于SDK开发,推荐jeffrey ritcher的 windows via c/c++。(ID注:charles petzold programming windows 也给予严重推荐!!)

 

Windows API 包含数千个函数,主要可分成一下几类:

  • 基础服务
  • 组建服务
  • UI
  • 图形和多媒体
  • 消息
  • 网络
  • Web

(ID注:经常查看SDK的文档的人会发现这个分类是直接从SDK中获取的)

 

本书关注基础服务的原理,比如说 线程,进程,内存管理,io和安全。

 

       .net

   .net由 FCL 和CLR组成,为托管代码提供执行环境,并支持JIT,类型验证,垃圾收集和代码安全。通过这些措施,提高了开发效率和开发质量。相关书籍可以参考jeffrey richter的CLR via c#

CLR是一个用户态COM组件,底层调用标准的windows API来实现相关功能。所以.net不能运行在内核模式。

   win32的历史

windows NT的最初目标是和OS2竞争,因此一开始选定的开发接口是 PM PAI。但是在 NT 项目启动一年后,windows 3.0已经引爆了市场,微软及时的做出了一个艰难又明智的决定:让NT沿着windows3.0的方向发展!直到这个时候,WIN32才被引入,因为3.0上只有WIN16.

虽然win32引入了很多win16没有的功能,但是为了保持兼容性,微软做了很多折中,这会导致win32中有许多接口看起来不太一致

服务 函数 例程

不同的术语,在不同的背景下,意思也各不相同,比如说:服务 既可以指操作系统中可调用的例程,也可以指驱动程序,或者是服务进程。本书的定义如下:

l  window api 函数:windows API中文档化的供外界调用的子程序。比如说: CreateProcess, createfile,getmessage

l  本地系统服务(或者系统调用):

底层未文档化的服务,可从用户模式调用。比如说:CreateProess在底层调用NtCreateUserProcess 来创建进程。第三章有关于系统调用的详细定义。

l  内核支持函数(或者例程)

仅供内核模式调用的例程。比如说:驱动可以调用ExAllocatePoolWithTag从Windows系统堆(pools)分配内存。

Window 服务

通过服务控制管理器启动的进程。比如说:计划任务。

l  DLLS(动态链接库)

DLL是一个二进制文件,包含了一组可供调用的子例程。DLL在windows中随处可见,比如说msvcrt.dll和kernel32.dll。相比于静态链接库,DLL的优势在于相同的代码在内存中只有一份。不可执行的.net程序集也是以DLL的形式存在,但是没有导出函数。CLR通过解析存贮器中的元数据来进行相关调用。

l  进程 线程 工作

粗看起来,程序 和 进程是一样的,其实有着本质的不同。程序是一组静态的指令,而进程包含了用于执行程序的资源。windows的进程由以下部分组成:

私有的虚拟地址空间:由一些虚拟内存地址组成。

可执行文件:定义了指令和数据,可以被映射到虚拟地址空间。

打开句柄列表:包含了各种系统资源的句柄,比如说event,mutex,file。句柄可供所有线程共享。

访问令牌:用于进程安全上下文中,可以识别用户,安全组,特权,UAC,会话。

procssID:全局唯一的标识符

线程:至少一个,0线程的进程也可以存在,但是没什么用。

进程保存了创建者的ID,但是当创建者消失是,该ID不会更新。因此,该ID很可能指向一个不存在的进程。不过目前并没有其他东西以来该ID,所以这不算严重的问题。在process explore里面,通过比较父进程的创建时间,来避免指向错误的父进程。
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 雷达表盘摔坏了怎么办 雷达测速60超了怎么办 卡西欧手表电池没电了怎么办 审稿人让引用他的文章怎么办 考二建未从事该行业满两年怎么办 2档换3档离合器怎么办 高铁车票丢了怎么办 事业编制调动原单位不同意怎么办 想去铁路上工作怎么办 房产权50年以后怎么办 在香港手机没电怎么办 学校官网登陆忘记密码怎么办 网上申报学校忘记密码怎么办 专转本想换专业怎么办 发生工伤没有平均公资怎么办? 单招过了不想去怎么办 22岁了还想复读怎么办 父母不让我读大专了怎么办 专升本考试失利怎么办 高考复读一年后失败了怎么办? 医保住院超过30万怎么办 北京医保超过2万怎么办 工伤公司垫付医疗费没法报销怎么办 司法考试照片耳朵露不出来怎么办 新华社毕业证照片用光了怎么办 农村父母投靠落户社保怎么办 退休后投靠父母户口怎么办 要离婚想儿子了怎么办 怀孕期间离婚了孩子户口怎么办 常州武进区怎么办居住证明 跟老公离婚了户口怎么办 离婚了不给户口怎么办 父母不给户口本迁户口怎么办 产能置换的煤矿职工怎么办 如果是单位集体户小孩读书怎么办 异地防疫不给打怎么办? 青岛市办理大龄就业困难补贴怎么办 就业登记证掉了怎么办 就业信息填错了怎么办 小孩入学父母无单位怎么办 和公婆住一起很压抑怎么办