в Pistachio если помню правильно был вообще безумный portable подход - можно было ядро и аппы разной битности запускать без изменений, ядреный интерфейс был через страницу в памяти с описанием какой API используется и указателями на вызовы сисколлов, но от него отказались как излишне тяжелого