[Mono](https://www.mono-project.com/) - это фреймворк с открытым исходным кодом на основе .NET, позволяет разработчикам создавать кроссплатформенные приложения. Mono была реализована на основе .NET с помощью стандарта ECMA-335 для C#. Зачем было разрабатывать Mono, когда есть .NET? Дело в том, что .NET не поддерживал кроссплатформенность, поэтому сторонняя компания Xamarin прочитала спецификацию [ECMA-335](https://www.mono-project.com/docs/about-mono/languages/ecma/) для .NET языков. В спецификации описано как в .NET виртуальная машина интерпретирует CIL-код. На основе спецификации Xamarin создала свою виртуальную машину, которая позволяет запускать CIL-код на разных ОС. Вдобавок к этому создали SDK для возможности взаимодействовать с API с теми же ОС и назвали все это Mono. Unity сделали [форк](https://docs.unity3d.com/Manual/Mono.html) Mono, чтобы доработать фреймворк под свои нужды. Однако спустя долгое время, форк Mono стал сильно отставать от оригинала и технически «отстал от жизни». Например, форк не поддерживает ARM64 и не имеет собирать Android-билд под новый формат .AAB ![[Use incremental GC.png|300]] У Unity есть [в планах обновить](https://portal.productboard.com/z8pw2ms6jxytyez9chlmm4kr/c/330-editor-net-runtime-mono-upgrade?utm_medium=social&utm_source=portal_share) форк до актуальной версии оригинальной Mono, однако это будет еще не скоро. ![[Editor .NET Runtime (Mono) Upgrade.png|500]]