使用微软提供的新源是否可以创建 CLR 的变体?

Using the new source provided by microsoft would it be possible to create a variant of the CLR?

也就是说,如果有人愿意,他们是否可以使用最近在 GitHub 上发布的 CoreCLR 和 .NET Framework 的其他部分的源代码来创建自己的运行时CLR?就像改变 CIL 的结构(例如添加操作码)一样,而不是为生成它的语言编写新的编译器。

所提供的源是否包含创建官方 CLR 副本所需的所有代码,如果是,重新分发修改后的版本是否合法?

CoreCLR has both a MIT License and a patent promise 所以用它来构建你的 "competing" CLR 应该没问题。

专利承诺不是无限的,而是:

Microsoft Corporation and its affiliates ("Microsoft") promise not to assert any .NET Patents against you for making, using, selling, offering for sale, importing, or distributing Covered Code, as part of either a .NET Runtime or as part of any application designed to run on a .NET Runtime.

关于 .NET 运行时可以是什么有一些限制(您的实现必须包括 .NET 运行时所需的所有功能以使其与 ECMA-335 兼容...因此您可以添加部分但您无法删除一些碎片)。

请注意,DNX 可能与您需要的更相似:它使用 CoreCLR 并包含一个编译器和其他部分。它是:

The DNX (a .NET Execution Environment) contains the code required to bootstrap and run an application, including the compilation system, SDK tools, and the native CLR hosts.

DNX 在 Apache license 下发布。 Apache 许可证包括许可证中的专利授权。