win32—进程创建过程

1.进程

当程序执行起来以后才能称为进程。每个进程的编号是唯一的。

什么是进程?

进程提供当前程序所需的资源,如:数据、代码等等

进程是空间上的概念,仅仅是提供程序运行所需的资源,至于资源怎么用,跟它一点关系都没有。

每一个进程都有一个虚拟的4GB空间,虚拟内存从00010000开始,前面的64K是空白的,正常情况下是不会被使用的,非正常情况下还是可以使用的,虚拟内存的最大内存地址是7FFE0000,为什么呢?因为每个进程的高2G是内核的空间,是大家共用的,所以只有低2G是进程自己的空间
好比在现实生活中,一个房子就是进程,里面的沙发,电视机就是进程提供的资源,而房子里面使用这些资源的人是线程。

2.进程内存空间的地址划分

分区x86 32位Windows
空指针赋值区0x00000000-0x0000FFFF
用户模式区0x00010000-0x7FFEFFFF
64KB禁入区0x7FFF0000-0x7FFFFFFF
内核0x80000000-0xFFFFFFFF

进程由很多模块组成,每一个模块都提供了代码和数据,这些模块都遵循着相同的格式,这个格式称为PE文件结构。换句话说,进程就是一堆PE文件。

3.进程的创建

1)任何进程都是别的进程创建的:CreatePreocess()

2)进程的创建过程:

1、映射EXE文件

2、创建内核对象EPROCESS

3、映射系统DLL(ntdll.dll)

4、创建线程内核对象ETHREAD

5、系统启动线程

映射DLL(ntdll.LdrlnitializeThunk)

线程开始执行

创建进程的时候至少要创建一个线程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值