A computing device comprising: a memory module configured to retain the received data with or without receiving power, the memory module including memory resistors which are memristors which, with or without receiving power, retain the received data, the memory module including a first portion and a second portion and the memory module including a plurality of dual in-line memory modules, DIMMs, including one or more memory resistors; an application, which is an operating system, to send and receive communication to a memory component; a virtualization module, which is a is a type 1 hypervisor executed on a processor and launched by the processor or by a basic input/output system, BIOS, of the computing device at the computing device powering on, to intercept the communication between the application and the memory component and direct the communication to the memory module; wherein the virtualization module is adapted to direct communication from the memory module to the application, wherein the virtualization module is adapted to allocate the first portion as a main memory of the computing device and the second portion as a storage component of the computing device, and the virtualization module is adapted to specify whether each corresponding DIMM is to be used as the main memory or as the storage component of the computing device; and the virtualization module is adapted to increase a size of the first portion by allocating space from the second portion for the first portion, if the first portion reaches a full capacity; and the virtualization module is adapted to increase a size of the second portion by allocating space from the first portion for the second portion, if the second portion reaches a full capacity. a memory module configured to retain the received data with or without receiving power, the memory module including memory resistors which are memristors which, with or without receiving power, retain the received data, the memory module including a first portion and a second portion and the memory module including a plurality of dual in-line memory modules, DIMMs, including one or more memory resistors; an application, which is an operating system, to send and receive communication to a memory component; a virtualization module, which is a is a type 1 hypervisor executed on a processor and launched by the processor or by a basic input/output system, BIOS, of the computing device at the computing device powering on, to intercept the communication between the application and the memory component and direct the communication to the memory module; wherein the virtualization module is adapted to direct communication from the memory module to the application, wherein the virtualization module is adapted to allocate the first portion as a main memory of the computing device and the second portion as a storage component of the computing device, and the virtualization module is adapted to specify whether each corresponding DIMM is to be used as the main memory or as the storage component of the computing device; and the virtualization module is adapted to increase a size of the first portion by allocating space from the second portion for the first portion, if the first portion reaches a full capacity; and the virtualization module is adapted to increase a size of the second portion by allocating space from the first portion for the second portion, if the second portion reaches a full capacity.