首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CLR与核心CLR

CLR与核心CLR
EN

Stack Overflow用户
提问于 2018-02-21 22:44:41
回答 1查看 11.5K关注 0票数 19

据我了解,CLR目前的状态是绑定到windows操作系统上,并在内部使用Win32 API提供各种服务。

由于.NET核心是独立于平台的,这基本上意味着相同的IL代码可以在不同的操作系统上运行。CoreCLR操作系统是特定的吗?或者,CoreCLR代码是否会根据当前的执行环境/OS而采用不同的执行路径?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-22 05:43:24

discussion in coreclr repository

据我所知,这个repo coreclr中的CLR与完整.NET中的CLR是相同的,唯一的区别是在

中设置了可用的API。

..。但似乎至少缺少C++/CLI ...

要回答其他一些问题:

由于.NET核心是独立于平台的,这基本上意味着相同的IL代码可以在不同的操作系统上运行

是。IL是一种自定义的“语言”。您可以为它编写一个可以在任何平台上运行的解释器/运行时。对于其他语言中的其他中间表示也是如此,包括java字节码、llvm ir、python字节码等等。

是特定于CoreCLR操作系统的?或者,CoreCLR代码是否会根据当前的执行环境/OS而采用不同的执行路径?

这是一种混合。coreclr的特定版本只能在一个操作系统上工作,因为它已经编译为使用该操作系统的功能(包括特定于操作系统的编译器、针对特定于操作系统的正确库的链接,以及运行特定于处理该操作系统的代码)。在CoreCLR中还有一个平台抽象层,以便开发人员可以针对一个Win32编写代码-基于Linux PAL层将其转换为正确的syscall。正如@HansPassant在评论中指出的那样,在CoreCLR的原生端和托管端都有大量的#ifdefs。

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

https://stackoverflow.com/questions/48908739

复制
相关文章

相似问题

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