Back in the mid to late 80's I decided for some reason to try to write a version of Unix for my Z80-based CP/M computer system.  I managed to produce a surprisingly complete implementation, despite the Z80's measly 64K memory and lack of memory management or protection hardware. You can grab a copy here.  It's called "UZI", for "Unix: Z80 Implementation".

Soon afterwards I upgraded my CP/M computer system to a Zilog Z280 processor, which had fairly fancy memory management (for a 16-bit machine, at least) and supported user and system modes.  This allowed me to make UZI much more powerful and complete.  It was able to support its own development environment.   You can get the the code for the UZI280 kernel and several supporting programs here. Some notes are here. (Unfortunately Zilog botched up the Z280 developement so badly that the chip came out years late and very buggy, just as  80X86 processors and PCs became ubiquitous.)

BTW, I got rid of all my Z80 and CP/M hardware and software years ago.