Systems and methods are described herein for determining which components
of a source operating system are required to be included in a target operating
system to support selected source operating system features in the target operating
system. Data objects are constructed to represent each component and feature of
the source operating system, each data object identifying Exports and References
for the component or feature it represents. The dependency model identifies, for
each component, other components that must be included in a target operating system
having the component. A target operating system builder program receives input
from a user as to the features the user desires to include in the target operating
system. The dependency model is utilized to identify and select the components
from the source operating system necessary to support the selected features. The
selected components are then linked to create the target operating system.