So easy that to actually make C portable, UNIX had to be made into a C standard library via POSIX, otherwise portable C code is basically just logic and data structures.
Sure, but the flipside of that is that UNIX itself is fairly easy to port to a new CPU, due to being mostly written in C.
So port your compiler, figure out a syscall interface on your CPU, patch it into unix/libc and compile them, and.. it's not like that's a small amount of work but it's way easier than bootstrapping any other environment from scratch on a new architecture.
There's surely some amount of historical accident here as well, but no other language/OS combo ran on like 12 different architectures in the 80s.
So port your compiler, figure out a syscall interface on your CPU, patch it into unix/libc and compile them, and.. it's not like that's a small amount of work but it's way easier than bootstrapping any other environment from scratch on a new architecture.
There's surely some amount of historical accident here as well, but no other language/OS combo ran on like 12 different architectures in the 80s.