L4: https://pdos.csail.mit.edu/6.828/2026/readings/microkernel.p... and RTLinux: https://web.archive.org/web/19970307183643/https://luz.cs.nm...
LinuxCNC (EMC2) was using that approach too, but at first I think they were trying to get hard-real-time performance out of Linux itself, and later I think they might have been using paravirtualization rather than full virtualization, which was conventionally considered impossible on the i386.