写点什么

微软开源.NET Core 的执行引擎 CoreCLR

  • 2015-02-05
  • 本文字数:1085 字

    阅读完需:约 4 分钟

继去年 12 月宣布.NET Core 开源之后,微软拥抱开源的决心又向前迈了一步,Microsoft 于昨日在 .NET Framework Blog 上 宣布开源.NET Core 的执行引擎 CoreCLR ,同时该项目将继续托管在 Github 上。

CoreCLR 是.NET Core 的执行引擎,负责垃圾收集、机器码编译等方面的工作,此次开源的是CoreCLR 最新、最完整的代码实现,包含RyuJIT、.NET GC、本地互操作以及很多其他的.NET 运行时组件。Microsoft 表示,.NET Core 目前能够构建并运行在Windows 平台上,在未来的几个月内会增加Linux 和Mac 平台的支持。

从大小上看,CoreCLR 库大约有260 万行的代码,其中JIT 的代码大约有32 万行,GC 的代码大约有5.5 万行,而之前发布的 CoreFX 库大约有 50 万行代码,只占该库最终大小的 25%,如果.NET Core 完全开源,那么总共大约会有 500 万行代码。不同的是,CoreFX 全部是 C#代码,而 CoreCLR 包含大量的 C#和 C++ 代码,要构建这些代码需要多个工具集,而有些工具 Visual Studio 并没有提供,如果你想构建 CoreCLR,那么可以查看 CoreCLR 开发指南

CoreCLR 的开源在社区上引发了广泛的讨论, HackerNews 上的 JeremyMorgan 评论说:

“是好是坏取决于你如何看待这件事情,虽然在盖茨时代之后 Microsoft 对开发者一直都很好,但是与之前相比最大的不同也仅仅是人们不需要再付费了而已,因为这之前只有相关的付费用户才能得到良好的服务。”

对此 klibertp 则发表了不同的观点:

“这不仅仅是一个财务问题。Microsoft 开源自己的类库对开发者而言好处非常多,因为现在他们能够查看自己日常使用的类库的源码,这使得调试更加容易,同时也能够帮助开发者理解当他们调用某些函数的时候其内部到底做了什么。十年之前我离开了 Microsoft 阵营,那时候我非常愿意付费查看相关 Microsoft 工具的源码,但是却找不到门路,现在 Microsoft 提供了相关的源码,并且是开源的,这非常好,也非常重要。”

brudgers 在评论中写道:

“我认为开源非常伟大,我非常钦佩 Stallman(自由软件之父),因为他广阔的胸襟。但是我并不认为 Windows 闭源有问题,因为 Windows 能够通过 Microsoft 商业模式的优势非常有效地解决一组特定的问题,但是无论如何开源的选择是好的。”

最后,Microsoft 表示自己在开源和跨平台的.NET 计划上依然有很多事情要做,具体内容或许会在今年将会举行的.NET Conf 上透露,该虚拟网络会议的召开时间为2015 年的3 月18 日和19 日。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2015-02-05 00:345407
用户头像

发布了 321 篇内容, 共 128.2 次阅读, 收获喜欢 19 次。

关注

评论

发布
暂无评论
发现更多内容

小红书 x StarRocks:实现数据服务平台统一化,简化数据链路,提升高并发极速查询能力

StarRocks

数据库 数据分析 广告系统 小红书 StarRocks

Reactive Spring实战 -- 响应式Kafka交互

binecy

kafka spring

ARTS - 日常打卡 6

pjw

LinkedHashMap

wzh

Java 集合 LRU 数据结构与算法 LinkedHashMap

微服务架构下的静态数据通用缓存机制

xcbeyond

缓存 微服务 6月日更

云开发是啥?看看它在编程导航项目的实践

程序员鱼皮

Java JavaScript 大前端 后端 云开发

网络攻防学习笔记 Day52

穿过生命散发芬芳

网络攻防 6月日更

批量把Excel数据自动录入系统

木头

自动录入 批量录入 自动填表

☕【JVM技术探索】深入分析各种锁(锁膨胀)运作流程

码界西柚

JVM 锁升级 6月日更 锁分析

十年一剑智能眼镜的中场战事

脑极体

银行业运维指标体系建设实战

云智慧AIOps社区

智能运维

58集团 x StarRocks:全面升级数据分析能力,满足多场景业务分析需求

StarRocks

数据库 数据分析 OLAP 58同城 StarRocks

RestTemplate打印日志的正确姿势

编号94530

spring 日志 log RestTemplate

线性排序

wzh

Java 排序算法 计数排序 基数排序 桶排序

业务架构训练营第 0 期模块五作业

菠萝吹雪—Code

架构实战营

5分钟速读之Rust权威指南(二十七)Rc<T>

wzx

rust

北京多部门联合整治违规应用:过度收集用户信息该重罚

石头IT视角

Redis入门四:数据持久化

打工人!

redis redis持久化 6月日更

推荐算法概述(十五)

Databri_AI

算法 倒排索引 推荐系统

微信小程序开发(七)—— 版本管理的使用

空城机

微信小程序 大前端 6月日更

领域驱动设计101 - 领域服务

luojiahu

领域驱动设计 DDD

常见Java容器对比

wzh

Java collection hashmap set map

基于jira的需求交付效率统计

好孩子

Jira

如何用视频云技术,搞一个爆红的 “反应视频” 项目?

阿里云CloudImagine

阿里云 RTC 英特尔 视频处理 视频制作

JavaScript 数组操作必须熟练运用的 10 个方法

devpoint

JavaScript array reduce 6月日更

数组与链表

wzh

Java 数组 链表 ArrayList 数据结构与算法

Kubernetes手记(19)- 容器资源限制

雪雷

k8s 6月日更

HashMap源码总结

wzh

Java map 数据结构与算法 HashMap底层原理 散列表

腾讯安全姬生利:《数据安全法》下,云上数据安全最佳实践

腾讯安全云鼎实验室

数据安全 云安全 数据安全法

机器数及特点

若尘

计算机组成原理 6月日更

什么是OneData?阿里数据中台实施方法论解读

云祁

数据中台 数据仓库 OneData 维度建模

微软开源.NET Core的执行引擎CoreCLR_.NET_孙镜涛_InfoQ精选文章