This week, Microsoft announced the availability of .NET 6. For the first time, .NET will include support for IBM Z and LinuxONE!
This milestone was a collaboration between IBM and Red Hat, Microsoft, and the .NET and Mono open source communities. As we move forward, on Red Hat Enterprise Linux (RHEL) 8 and later .NET 6 is now available for the IBM Z and LinuxONE (s390x) architectures, along with AMD and Intel (x64_64) and ARM (aarch64).
Broadly speaking, what is needed for a language or framework to run on IBM Z and LinuxONE the compiler/interpreter or framework to be ported to IBM Z and LinuxONE. In the past, community-driven efforts focused on the open source Mono project for IBM Z and LinuxONE support, which has supported it since 2007. Until this week, .NET itself did not have support, so this release marks a key moment in support for .NET applications on IBM Z and LinuxONE.
In the process of these efforts, the teams had to look at all components of .NET and then focus in on key areas that needed porting work. As we've come to expect, most of the components simply built fine for IBM Z and LinuxONE and it was a matter of getting them into the testing and release workflows. The real work came when working on the Runtime (VM & JIT), since JIT generates machine code, which varies by architecture. Other work includes enhancements to the IBM Z Mono back-end (fixes, performance enhancements), big-endian enablement in various components, and integration into the upstream.
So, what can you expect from this release for IBM Z and LinuxONE?
IBM Z and LinuxONE is fully enabled throughout all .NET core components with the Mono runtime available (currently no CoreCLR support).
As an open source project, all changes are included upstream in https://github.com/dotnet (in this porting effort, about 100 PRs submitted, reviewed, and merged!). Fully supported RPM packages and container images built from those sources for IBM Z and LinuxONE are provided by Red Hat.
For use on RHEL 8.5:
- .NET is supported on both Red Hat Enterprise Linux and Red Hat OpenShift Container Platform (OCP)
- .NET 6.0 is included in the AppStream repositories for RHEL 8.5
- You can use the ubi8/dotnet-60-runtime image to run a pre-compiled application inside a Linux container.
- .NET images are added to OpenShift by importing imagestream definitions from s2i-dotnetcore.
What's next? Visit the release announcement to learn more from Microsoft about what .NET 6 itself brings, and then give it a try yourself with the classic Hello World tutorial! You're also invited to join the new .NET group in the IBM Z Community.
If you weren't able to join the .NET conference on Nov 11th at 9 am CET for IBM Distinguished Engineer, Ulrich Weigand's talk about some of the benefits of co-locating .NET workloads on IBM Z and LinuxONE, the replay is now available on YouTube .NET Conf 2021: Running .NET Workloads on IBM Z.