In computer science, virtualization refers to the replication of a hardware or software object by a similar object of the same type using an abstraction layer. This allows virtual (i.e. non-physical) devices or services such as emulated hardware, operating systems, data storage or network resources to be created. This allows, for example, computer resources (especially in the server area) to be transparently combined or divided, or one operating system to be run within another.