我听说过“C Runtime”,“Visual C ++ 2008 Runtime”,“.NET公共语言运行时”等等。
- 究竟什么是“ 运行时 ”?
- 它是什么做的?
- 它如何与我的代码交互? 或者更确切地说,我的代码如何由它控制?
在Linux上编写汇编语言时,我可以使用INT指令进行系统调用。 那么,运行时只是一堆预制函数将低级函数包装成更抽象的高级函数吗? 但这不是更像是库的定义,而不是运行时的定义吗?
“运行时”和“ 运行时库 ”有两个不同的东西吗?
添加1
这些天,我想也许Runtime与所谓的虚拟机有一些共同点,比如JVM。 这是导致这种想法的引文:
这个编译过程非常复杂,可以分解为几个抽象层,这些过程通常涉及三个转换器:编译器,虚拟机实现和汇编器。 --- 计算系统的要素 (介绍,道路到硬件土地)
添加2
专家C编程:Deep C Secrets一书 。 第6章运行时数据结构是对此问题的有用参考。
#1楼
运行时可以表示程序生命周期的当前阶段(运行时/编译时/加载时间/链接时),也可以表示运行时库,它构成了与执行环境接口的基本低级操作。 或者它可能意味着运行时系统,它与执行环境相同。
在C程序的情况下,运行时是设置堆栈,堆等的代码,这是C环境所期望的要求。 它本质上建立了语言所承诺的环境。 (它可能有一个运行时库组件,crt0.lib或类似的东西,如果是C)
#2楼
我发现以下文件夹结构为理解runtime
是一个非常有见地的上下文:
你可以看到有' 源 ',有' SDK '或'软件开发工具包'然后有Runtime
,例如。 运行的东西 - 在运行时。 它的内容如下:
win32 zip包含.exe -s和.dll -s。
所以,例如。 C运行时将是这样的文件 - C运行时库,.so-s或.dll -s - 您在运行时运行,由于它们(或其内容'或目的')包含在定义中而变得特殊。 C语言(在“纸上”),然后由您选择的C实现实现。 然后,您将获得该实现的运行时,使用它并在其上构建。
也就是说,稍微极化,新的基于C的程序的用户将需要的可运行文件。 作为基于C的程序的开发人员,您也是如此,但您也需要C编译器和C库头文件; 用户不需要那些。
#3楼
运行时是您不知道对象在执行期间创建的对象的实例,对象创建基于特定条件或某些计算工作。 相反,编译时是在执行之前由您定义所需对象的实例。
#4楼
运行时是一个通用术语,指代运行代码的任何库,框架或平台。
C和C ++运行时是函数的集合。
.NET运行时包含中间语言解释器,垃圾收集器等。
#5楼
MSDN文档的这些部分可以解决您的大部分问题: http : //msdn.microsoft.com/en-us/library/8bs2ecf4(VS.71).aspx
我希望这有帮助。
谢谢,达米安
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3190581