Tradicionalmente los diseñadores de núcleos intentaban hacer invisibles los recursos de hardware a las aplicaciones requiriendo que interactúen con el hardware de alguna manera conceptual.