首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可执行的VS.软件映像

可执行的VS.软件映像
EN

Software Engineering用户
提问于 2020-02-06 13:19:11
回答 2查看 829关注 0票数 1

需要您的帮助来澄清原始概念:

在嵌入式系统中,当程序在处理器上运行时(以ARM为例),据我所知,这是因为“要执行的代码”加载在主内存中。

我的问题是:

  • “要执行的代码”是否称为“可执行的”,“可执行”是什么意思?
  • “可执行文件”和“软件或二进制图像”的区别是什么?

我不是来自SW的工程背景,请原谅我的非实战背景。

EN

回答 2

Software Engineering用户

发布于 2020-02-06 14:07:50

我想你是从非技术背景来的,所以这些条件对你来说是新的。要完全理解这个网站上的许多答案,最好是上一门像计算机科学101 (CS101)这样的初学者课程。这至少给你介绍了计算机如何工作的词汇和一般概念。

你的两个问题并没有太大的区别。

可执行文件:设计为由计算机运行的文件

可执行文件是为特定的体系结构(比如ARM系统)编译的,相同的可执行文件不能在其他体系结构上运行。CS 101课程将详细说明为什么会出现这种情况。

软件:告诉CPU (如ARM)该做什么的一组指令。

软件更多地与指令有关,而不是构成正在运行的应用程序的文件。

二进制图像:包含一组字节的文件。

二进制映像是一个低级概念,可以是可执行文件、图片、电影或磁盘驱动器的副本。这里的主要区别是内容是二进制的,而不是文本。

票数 1
EN

Software Engineering用户

发布于 2020-02-06 16:56:42

正如@Nat提到的,这里的上下文很重要。我将从一个裸金属(没有操作系统)的上下文来讨论这个问题。

通常,您的软件是用某种语言(C/C++、汇编程序等)编写的。这构成了你的源代码。现在,源代码不是可以由目标处理器直接执行的格式,因此我们需要通过编译/组装过程运行源代码来生成对象代码,然后通过链接器来生成可执行对象代码文件。

该EOC文件的格式可以由目标处理器直接执行,但仍然需要以某种方式加载到内存中。

在裸金属(无操作系统)嵌入式系统上,通常通过调试器或Flash程序员将其写入某种形式的非易失性存储,然后由目标处理器根据其启动过程直接执行。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/404789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档