Comment by jart
If a userspace process can't tell, then does it really matter? That's what qemu user teaches us. The Linux ABI is simple enough that a single dev could emulate probably 85% of it in pretty short order. What keeps Linux going is the supremacy of its internals. I've thought of so many ways to benchmark OS performance and I don't think I've ever seen modern Linux fare poorly.
> The Linux ABI is simple enough that a single dev could emulate probably 85% of it in pretty short order.
Microsoft tried it (with WSL1), and gave up. The remaining 15% is the hard part, and plenty of software will depend on something within that 15%. Sure, there are only a couple hundred system calls, and most of them are pretty simple, but then there are the multiplexed system calls (ioctl, fcntl, ptrace, io_uring, etc), the fileystem-based ABI (procfs, sysfs, etc), the ever-growing set of flags to otherwise simple system calls, and even a network-like protocol between userspace and the kernel (netlink).