A componentized operating system is separated into multiple different
components. In certain embodiments, a bill of materials (BOM) identifies
at least one component that is installed (or is to be installed) for an
operating system image on a computer. Each component includes one or more
files and has a corresponding manifest that identifies which other
components (if any) the component is dependent on. During an installation
or upgrading process, the manifest for a component can be accessed to
determine which additional components (if any) are to be installed even
if they are not explicitly identified in the BOM.