首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >系统软件是如何存储在计算机中的?

系统软件是如何存储在计算机中的?
EN

Software Engineering用户
提问于 2014-08-16 11:49:06
回答 1查看 12.5K关注 0票数 -1

我们的PC机里通常有很多系统软件,比如操作系统(其中包含不同的中断处理程序等)、汇编器和编译器、驱动程序。我的问题是,我们如何将这些信息存储在计算机中?这些软件是否都存储在计算机内部的机器指令格式中,在PC-ROM中的特定位置?或者,它们存储在高级语言(如C)中,每次调用程序时都用它编写并编译?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2014-08-16 13:23:21

计算机的处理器只能理解特定机器语言的指令。因此,正如您所猜测的,大多数程序(包括操作系统本身)都以机器语言格式存储在硬盘或其他存储设备上,或者存储在计算机的永久EPROM内存中。当需要时,程序代码被加载到内存中,然后可以执行。

但是有一些程序(通常称为“脚本”),它们以源代码格式存储在磁盘上,然后在需要运行它们时由合适的编译器进行解释。然而,编译器本身的代码必须由系统直接执行,因此它必须在机器代码中。

这两个选项之间也存在一个交叉,称为字节码。在这种情况下,编译器将原始的、人类可读的源代码转换成一种更短、更低级别的二进制格式,不再是人类可读的,但也不能直接解释给物理处理器。因此,这需要在特殊环境中的另一个编译器或解释器在物理设备上执行它。这种特殊的环境称为虚拟机。例如,这就是Java或C#的工作方式。

与直接编译到机器代码相比,这种方法的优点是机器代码是特定于处理器家族的,因此它只能在具有正确处理器类型的计算机上运行。虽然字节码可以独立于任何特定的处理器体系结构或机器语言格式,所以它可以在许多不同类型的计算机上运行,使用特定于该类型计算机的虚拟机变体。

与解释脚本相比,字节码具有更简洁和更标准化的优点,因此进一步将字节码编译成机器代码比解释脚本更简单、更快。此外,字节码编译器在将代码部署到运行它的物理机器之前,已经可以在很大程度上验证代码的正确性。

如果你想更好地理解计算机是如何从头开始构建的,我推荐查尔斯·佩托德( Charles )的书“代码”。

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

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

复制
相关文章

相似问题

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