请问程序文件(x86)在哪呢?

请问程序文件(x86)在哪呢?,第1张

Program Files (x86)是一个系统文件夹,一般32位应用程序都会默认安装在Program Files (x86)文件中,而64位应用程序则会安装在Program Files文件夹中。

该设计是为了防止加载错误版本的DLL,比如用户安装了32位程序,凳逗如果错误加载了64位DLL就会导致程序崩溃,因此微软就设置了枣改卖2个不同的文件歼慎夹Program Files和Program Files (x86)来区分x64和x84不同的程序文件。

一个初始的Windows系统中的program files(x86)里一般有以下文件夹:

1、Common Files:提供程序中的一些共享配置文件。

2、Internet Explorer:网络浏览器。

3、Windows Media Player:媒体播放器。

4、Movie Maker:影片制作工具。

5、Outlook Express:提供邮件收发功能。

6、NetMeeting:网络聊天软件。

7、Messenger:新版网络聊天工具。

有5大存储区域:

1:堆区 主要是用户自己申请的内存,如new 运型野姿算符申请的内存空间

2:栈区 先进后出的存储结构,局部变量,函数的调用,等

3:静态存储区脊镇 放局部,全局的静态变量,和全局的变量 生命周期是整个应用程序

4:寄存器 系统卜绝调用

5:程序代码区 你写的代码也需要放在内存中!

程序代码被装入内存的什么位置,是由 *** 作系统决定,没有 *** 作系统的电脑是不能运行软件的。 *** 作系统拥有管理数冲内存的能力。

一个程序在系统内存中是这样表示的:

/------------------\ 内存低地址

| |

| 文本 |

| |

|------------------|

|(已初始化)|

|数据 |

|(未初始化)|

|------------------|

| |

| 栈 |

| |

\------------------/ 内存高地址

文本区域是由程序确定的, 包括代码(指令)和只读数据. 该区域相当于可执行文件的文本段. 这个区域通常被标记为只读, 任何对其写入的 *** 晌隐作都会导致段错误。

数据区域包含了已初始化和未初始化的数据. 静态变量储存在这个区域中. 数据区域对应可执行文件中的data-bss段. 它的大小可以用系统调用来改变.如果bss数据的扩展或用户栈把可用内存消耗光了, 进程就会被阻塞住, 等待有了一块更大的内存空间之后再运行. 新内存加入到数据和栈段的中间.

栈是一个在计算机科学中经常使用的抽象数据类型. 栈中的物体具有一个特性:最后一个放入栈中的物体总是被最先拿出来, 这个特性通常称为后进先出(LIFO)队列.调用一个C函数就在这里发生一大堆的 *** 作,如传递参数。。。。

这些和单片机有区别,很难简单说清楚,可以写一本书的了。

你学了<< *** 作系统原理>>,同时学习一下windows的编程就懂了。

注意了,程序在很多现代 *** 作系统里都只能 *** 作逻辑地址,不能 *** 作物理地址,如A程序的0xFF地址和B程序的0xFF地址是不同的,大家都影射到不同的物理地址。这是为了防止程序错误地影响其他程序。

也就是将数据错误地写入其他程序的重要区宴毕厅域,从而使其他程序结束在现在的多数 *** 作系统是不会发生。

要资料就给我发邮件,我给你发一份。Fixend@163.com


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12510008.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存