Специфікація ECMA CLI визначає слабку модель пам'яті. Це дозволяє переупорядкувати порядок виконання команд (що корисно для виконання). Але написати код низького рівня для такої моделі дуже складно.
І найголовніше - архітектури процесорів X86 / AMD64 мають більш сувору (сильну) модель пам'яті. Як результат, Microsoft впровадила в своїй реалізації CLR сильнішу модель пам'яті, ніж описано в специфікації.
Чи змінилася модель пам'яті в .NET Core? Потенційно ця структура може працювати на архітектурах із слабкою моделлю пам'яті, ніж X86 / AMD64.
Крім того, .NET Core включає в себе Mono та інших. І наскільки я знаю, модель пам'яті Mono слабша, відповідає ECMA.
У цій статті Представлення .NET 5 написано:
Розширіть можливості .NET, взявши найкращі з .NET Core, .NET Framework, Xamarin та Mono.
Тож я думаю, якщо не зараз, то в майбутньому ці умови злиття в єдине ціле.
Нижче у статті написано:
Ми зараз робимо заміни CoreCLR і Mono для одних інших. Ми зробимо це таким же простим, як перемикач збірки, щоб вибрати між різними варіантами виконання.
Якщо я правильно зрозумів, буде два (або більше) строків виконання. І, напевно, у кожного буде своя модель пам’яті.
Про що ми говоримо: Модель пам'яті .