1. A method for building a target operating system from a source operating system, comprising: creating a data object for each of multiple components of the source operating system; generating a dependency model using the data objects; identifying features in the source operating system to be included in the target operating system; selecting components necessary to support the identified features by tracing dependencies according to the dependency model; and linking the selected components to build the target operating system.