1. A computer-implemented method for monitoring an application to prepare the application for virtualization, the method comprising: detecting creation of a new process and injecting a core virtualization system into the process; loading registered virtualization subsystems from a store of virtualization subsystems; creating an application package for storing configuration information for a virtualized application associated with the detected process; selecting a virtualization subsystem from the registered virtualization subsystems; notifying the selected virtualization subsystem of the detected process creation and determining whether the selected virtualization subsystem wants to handle the process; and upon determining that the selected subsystem can handle the detected process, collecting subsystem-specific configuration information associated with the detected process as the process runs; and storing collected configuration information in the created package, wherein the preceding steps are performed by at least one processor.