Part of the process of porting Linux to the S/390 and zSeries was in fact developing all those things. The vast majority of Linux is written in fairly portable C, and the GNU C compiler (GCC) is marvelously flexible about creating output for different architectures on command. The majority of the port is involved in writing the low-level C library routines in assembler (about 19 Klocs). Then it uses a copy of GCC configured as a cross-compiler for System/390 output on an AIX box to produce the initial set of IPLable binaries for S/390. Once that was done, the team recompiled the entire Linux distribution using the cross-compiler and used it to bootstrap a Linux system under VM for future work. The cross-compiler (and the unbeatable VM-based PER debugging capability) was used to develop and compile a set of basic device drivers (disk, LCS and CTC networking), and, from there, the port team rebuilt the entire system again using the S/390 compilers and libraries on the 390, and all S/390 and zSeries Linux development since has been hosted on S/390 and zSeries directly.
So, to answer your question directly: It's all been done already. You can run Linux directly on the bare metal if you so choose. The cost case is abysmal and things like error recovery are not as robust as a traditional S/390 or zSeries operating system, but it is technically possible. I know of some people that do it for SAP where they need every single spare cycle they can find.
It was a lot of work, and it burned an immense number of PowerPC and System/390 cycles late at night in various locations. But there was a beer bet riding on it, so it seemed like a good idea at the time. 8-)
This was first published in December 2005