Allison wrote regarding RTOSes:
CP/M and believe it or not DOS (there are DOS look
alikes that are RT)
can be as well.
Which is not so much because CP/M or DOS actually is an RTOS (they aren't),
but that they don't get in the way of the programmer. The programmer is
free to write his own interrupt handlers, and even a task scheduler.
Note that this very feature that makes such an OS potentially usable for
real-time systems is exactly what makes them poor choices as platforms
for general-purpose computing. Too much code gets written that works around
the OS for no especially good reason.
Note that a "proper" RTOS both doesn't get in the way, *and* provides
useful real-time services.