ION is the hardware abstraction layer. It does I/O. It exposes a set of headers that are implemented for various hardwares (device, simulator). It is also responsible for setting up the boot environment.