继去年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日。

中文原文: http://www.infoq.com/cn/news/2015/02/microsoft-net-core-coreclr

微软开源.NET Core的执行引擎CoreCLR{转载}的更多相关文章

  1. .NET平台系列12 .NET未来之开源.NET Core

    系列目录     [已更新最新开发文章,点击查看详细] 微软于2014年11月推出了.NET Core 1.0..NET Core的目标是从我们在过去12年中对.NET Framework的构建.交付 ...

  2. K & DN 的前世今生(微软开源命名变革)

    一个非常有意思的 Issue:Can we rename K? 在这个 Issue 中,有大量的社区开发者讨论了微软开源命名问题,主要是 K 如何进行替换掉?看来大伙都对微软项目命名有歧义,首先,再次 ...

  3. 微软开源的Trill是什么?

    微软开源的Trill是什么? https://www.cnblogs.com/CattaC/p/10143445.html 微软开源的Trill是什么? 以下是一篇15年的文章的译文:https:// ...

  4. 微软开源的Web测试和自动化神器 Playwright

    Playwright 是微软开源的一个用于 Web 测试和自动化的框架, 提供了可靠的端到端测试, 功能非常强大, 可以在测试, 爬虫,自动化场景中使用. 跨浏览器 Playwright 支持所有现代 ...

  5. 社区活动分享PPT:使用微软开源技术开发微服务

    上周六在成都中生代技术社区线下活动进行了一个名为"微软爱开源-使用微软开源技术开发微服务"的技术分享. 也算是给很多不熟悉微软开源技术的朋友普及一下微软最近几年在开源方面所做的努力 ...

  6. 资深人士剖析微软开源.NET事件:战略重心已经从PC转移到云端

    本文是雷锋网对我的访谈整理的文章,源地址是 http://www.leiphone.com/news/201411/6KaGhD7PDABnvrRf.html 2014年11月13日,微软表示开源.N ...

  7. panguan(判官):一个自研的任务执行引擎的工程实践

    来某厂接近半年了,几乎没写过C++代码,说实话还真的有点手生.最近刚好有一个需求,然而我感觉我也没有办法用C++以外的语言去实现它.于是还是花了几天时间用C++完成编码,这是一个简单的任务执行引擎,它 ...

  8. 微软开源自动机器学习工具NNI安装与使用

    微软开源自动机器学习工具 – NNI安装与使用   在机器学习建模时,除了准备数据,最耗时耗力的就是尝试各种超参组合,找到最佳模型的过程了.对于初学者来说,常常是无从下手.即使是对于有经验的算法工程师 ...

  9. 【干货】快速部署微软开源GPU管理利器: OpenPAI

    [干货]快速部署微软开源GPU管理利器: OpenPAI 介绍 不管是机器学习的老手,还是入门的新人,都应该装备上尽可能强大的算力.除此之外,还要压榨出硬件的所有潜力来加快模型训练.OpenPAI作为 ...

随机推荐

  1. java反射详解

    本篇文章依旧采用小例子来说明,因为我始终觉的,案例驱动是最好的,要不然只看理论的话,看了也不懂,不过建议大家在看完文章之后,在回过头去看看理论,会有更好的理解. 下面开始正文. [案例1]通过一个对象 ...

  2. C#远程时间同步助手软件设计

    C#远程时间同步助手软件设计 本程序才C#语言开发,实现远程时间同步功能,可以将本地时间每隔一段时间与时间服务器时间进行同步!不足之处还望见谅! 软件开发环境:Visual Studio 2010 软 ...

  3. Oracle连接与会话

    连接(connection):连接是从客户端到oracle数据库实例的一条物理路径. 会话(session):会话是数据库实例中存在的一个逻辑实体. case1:一个连接可以有多个会话 SQL> ...

  4. Mvc 之System.Web.Optimization 压缩合并如何让*.min.js 脚本不再压缩

    最近项目中用到了easy ui ,但是在配置BundleConfig 的时候出现了问题,easy ui的脚本jquery.easyui.min.js 压缩后出现各种脚本错误,总是莫名其妙的 i标量错误 ...

  5. eclipse优化设置

    1. Eclipse的控制台console有时候经常的跳出来,非常的烦人! 让它不经常的调出来,可以按下面的操作去掉它: windows  ->   preferences   ->  r ...

  6. ASP.NET 一句代码实现批量数据绑定

    摘要:对于一个以数据处理为主的应用中的UI层,我们往往需要编写相当多的代码去实现数据绑定.如果界面上的控件和作为数据源的实体类型之间存储某种约定的映射关系,我们就可以实现批量的数据绑定,作者开发了的插 ...

  7. MCMC 、抽样算法与软件实现

    一.MCMC 简介 1. Monte Carlo 蒙特卡洛 蒙特卡洛方法(Monte Carlo)是一种通过特定分布下的随机数(或伪随机数)进行模拟的方法.典型的例子有蒲丰投针.定积分计算等等,其基础 ...

  8. MYSQL数据库------操作命令笔记

    一.数据库连接 * 连接数据库命令(前提需要安装mysq ): mysql -h hostIp -u userName -pPassWord 二.数据库操作 * 查看所有数据库: show datab ...

  9. (转) 注意啦,笔记本是无线的,虚拟机上网方式莫用NAT,好难整。

    有线网络 在有线网络的条件下,vmware的安装非常简单,上网方式几乎不用怎么设置(默认 NAT模式) 如果默认情况下不能上网,则按以下步骤尝试: ************************** ...

  10. Tips

    1)字符串转换数字 ') { ; do{ j*=;j+='); i++; }'); //实际上为读入优化的一部分 2)进制转换万能模板 #include <cstdio> using na ...