La especificación ECMA CLI define un modelo de memoria débil. Esto permite reordenar el orden de ejecución del comando (que es útil para el rendimiento). Pero escribir código de bajo nivel para tal modelo es muy difícil.
Y lo más importante: las arquitecturas de procesador X86 / AMD64 tienen un modelo de memoria más estricto (fuerte). Como resultado, Microsoft implementó un modelo de memoria más fuerte en su implementación CLR que lo descrito en la especificación.
¿Ha cambiado el modelo de memoria en .NET Core? Potencialmente, este marco puede ejecutarse en arquitecturas con un modelo de memoria más débil que X86 / AMD64.
Además, .NET Core incorpora Mono y otros. Y hasta donde yo sé, el modelo de memoria Mono es más débil, corresponde a ECMA.
En este artículo Introducción a .NET 5 escrito:
Amplíe las capacidades de .NET tomando lo mejor de .NET Core, .NET Framework, Xamarin y Mono.
Así que creo que si no ahora, en el futuro estos tiempos de ejecución se fusionarán en un solo todo.
A continuación en el artículo está escrito:
Estamos en el proceso de hacer reemplazos directos CoreCLR y Mono entre sí. Lo haremos tan simple como un cambio de compilación para elegir entre las diferentes opciones de tiempo de ejecución.
Si entiendo correctamente, habrá dos (o más) tiempos de ejecución. Y probablemente todos tendrán su propio modelo de memoria.
De qué estamos hablando: Modelo de memoria .