继去年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. SVN需要忽略的文件类型

    自己在用的,有问题的话欢迎指正,直接复制粘贴即可.(一般人我都不告诉他) *.lo,*.la,*.al,*.so,*.so.[0-9]*,*.pyc,*.pyo,*.rej,.*.swp,.DS_St ...

  2. ABP中单元测试的技巧:Mock和数据驱动

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:虽然ABP为大家提供了测试的脚手架了,不过有些小技巧还是需要自己探索的. ASP.NE ...

  3. SQL谜题(楼层谜题)

    Multiple DwellingsBaker, Cooper, Fletcher, Miller and Smith live on different floors of an apartment ...

  4. shell(一)

    #服务器之间拷贝数据 scp  -r   本地文件目录    系统用户名@IP:目标文件夹路径

  5. Android 延时执行任务的三种简单方法

    开启一个新的线程 new Thread() { @Override public void run() { try { Thread.sleep(2000); } catch (Interrupted ...

  6. 在CHROME里安装 VIMIUM 插件, 方便操作

    VIMIUM 插件使用方法 VIMIUM 命令列表 网页导航 j, :向下滚动网页 k, :向上滚动网页 h : 向左滚动 l : 向右滚动 gg : 滚动到网页头部 G : 滚动到网页底部 :向上翻 ...

  7. nodejs复习05

    stream 可读流 fs.pause()方法会使处于流动模式的流停止触发data事件,切换到非流动模式并让后续数据流在内部缓冲区 var fs = require('fs') var rs = fs ...

  8. struts2注解

    一.配置web.xml <filter> <filter-name>struts2</filter-name> <filter-class>org.ap ...

  9. 【转】npm publish 发布

    <h3 class="catListTitle">一.npm包结构(编写)</h3> npm包实际是一个存档文件,即一个目录直接打包为.zip或tar.gz ...

  10. [资料分享]2016 黑马 Java 19期视频+Hadoop大数据实战视频

    下载链接: 链接:http://pan.baidu.com/s/1bToXK6 密码:7k43 解压密码: www.lthack.com 或者 2cifang.com 或者 2cifang.com_2 ...