相关疑难解决方法(0)

计算机程序运行时会发生什么?

我知道一般理论,但我不能适应细节.

我知道程序驻留在计算机的辅助内存中.程序开始执行后,它将完全复制到RAM中.然后处理器一次检索一些指令(它取决于总线的大小),将它们放入寄存器并执行它们.

我也知道计算机程序使用两种内存:堆栈和堆,它们也是计算机主存储器的一部分.堆栈用于非动态内存,堆用于动态内存(例如,与newC++中的运算符相关的所有内容)

我无法理解的是这两件事是如何联系起来的.用于执行指令的堆栈在什么时候?指令从RAM,堆栈到寄存器?

c++ memory x86 operating-system computer-architecture

176
推荐指数
4
解决办法
2万
查看次数

运行程序会发生什么?

我想在这里收集在Windows,Linux和OSX上运行可执行文件时会发生什么.特别是,我想完全理解操作的顺序:我的猜测是内核加载了可执行文件格式(PE,ELF或Mach-O)(但我忽略了ELF的各个部分(可执行文件和可链接格式)及其含义),然后你有动态链接器解析引用,然后__init运行可执行文件的部分,然后是main,然后是__fini,然后程序完成,但我确定它非常粗糙,也许是错的.

编辑:问题现在是CW.我正在填写linux.如果有人想为Win和OSX做同样的事情那就太棒了.

linux execution

38
推荐指数
4
解决办法
2万
查看次数

jar文件是如何执行的?这些课程是在某处提取的吗?

我们知道这jar是一种压缩的归档文件格式,它充当已编译的java类和conf文件的容器.据我所知,要从压缩容器文件中读取任何内容,首先需要将它们提取到某处.

那么JVM如何在jar中执行类?它是否将jar的内容提取到临时位置然后执行类?

java jvm executable-jar

15
推荐指数
1
解决办法
2748
查看次数