【发布时间】:2011-04-23 11:13:28
【问题描述】:
我听说过诸如“C Runtime”、“Visual C++ 2008 Runtime”、“.NET Common Language Runtime”之类的东西。
- 究竟什么是“runtime”?
- 它是由什么制成的?
- 它如何与我的代码交互?或者更准确地说,我的代码是如何被它控制的?
在 Linux 上编写汇编语言时,我可以使用 INT 指令进行系统调用。那么,运行时只是一堆将低级函数包装成更抽象和高级函数的预制函数吗?但这似乎更像是库的定义,而不是运行时的定义?
“运行时”和“runtime library”是两个不同的东西吗?
添加 1
这些天来,我在想也许 Runtime 与所谓的 Virtual Machine 有一些共同点,例如 JVM。这是导致这种想法的引文:
这个编译过程非常复杂,可以分解成 几个抽象层,这些通常涉及三个 翻译器:编译器、虚拟机实现和 汇编程序。 ---The Elements of Computing Systems(简介, 通往硬件领域的道路)
添加 2
本书Expert C Programming: Deep C Secrets。第 6 章运行时数据结构是对这个问题的有用参考。
添加 3 - 2021 年 2 月 28 日上午 7:31
这是我在获得一些处理器设计知识后的一些看法。整个计算机只是多层次的抽象。它从基本晶体管一直到运行程序。对于任何抽象的level N,它的runtime 是直接位于它下面的抽象level N-1。是上帝给了我们0级抽象。
【问题讨论】:
-
运行时包含
runtime library以及一些控制代码和一些状态(由操作系统提供)。 -
很好的问题,一直质疑这个。
-
我在姐妹网站上发现了另一个可能有用的帖子:programmers.stackexchange.com/questions/294346/…
-
我总是把它当做一个沙箱到较低级别的基础设施。你有 Unix 工具包上的任务管理器/或进程,所有低级 GUI 库等。所有这些都是运行时的一部分。构建事物的基础。
标签: terminology