Reasons for supporting many platforms Portability is increased by adequate abstraction layers in kernel and userland e.g. audio, bus_space, microtime, pmap, bioctl, gpioctl, sensorsd, watchdogd, ... towards a very machine-independent source tree reduces the effort required to make a new port makes maintaining multiple platforms easier