@lanodan @cwebber Did you know that #OpenGenera had a #C and an #Ada compiler (among others)?
You don't need to rewrite the drivers, you can just implement a shim (with error handling) so they can run on top of the system in their little isolated bubble like the #rumpkernel idea was about.
You do need those bits in some specific areas, but you can tightly constrain access to them to very specific modules & threads.
Erlang's message-passing approach isn't required for condition handling.