Hardware architecture and a software framework, where the combination allows software to run.