system: Start work on system abstraction layer.

Signed-off-by: Bart Kuivenhoven <bemkuivenhoven@gmail.com>