As promised, I will write some articles about one of the areas where s390x looks especially alien to people familiar with the usual suspects like x86: the native way of addressing I/O devices.1
Channel I/O is a rather large topic, so I will concentrate on explaining it from a Linux (guest) and from a qemu/KVM (virtualization) point of view. This also means that I will prefer terminology that will make sense to somebody familiar with Linux (on x86) rather than the one used by e.g. a z/OS system programmer.
Links to the individual articles:
Channel I/O: What’s in a channel subsystem?
Channel I/O: Talking to devices
Channel I/O: More about channel paths
Channel Measurements: A Quick Overview
-
There is PCI on s390x, but it is a recent addition and its idiosyncracies are better understood if you know how channel I/O works. ↩