Q:

.NET Core のプログラムがクロスプラットフォームで動作する理由

Windowsでビルドした.NET CoreのプログラムをそのままLinuxに持っていったら動きました。
これは.NET Coreに含まれるランタイムがX64のアーキテクチャであれば動くように実装されているから、という理解で正しいでしょうか？
(つまりJAVA仮想マシンのような役割を担っている？)
理解が間違っている、もう少し詳しくいうとこうなる、などのご指摘ありましたらよろしくお願いします。
ちなみに今のところサポートしているのは下記のOSのX64だけのようですね。
https://github.com/dotnet/core/blob/master/roadmap.md

A:

それは、実装したコードがCIL(共通中間言語)に翻訳されているためですね。
CILはCLR(共通言語ランタイム)上で実行可能で、
特にCoreCLRはWindows他、OS X、Linux等でサポートされています。
詳しくはこれらのキーワードを検索してみてはどうでしょう。

