# Linux Environments

## Emulating Persistent Memory NVDIMMs on Linux

Support for physical and emulated persistent memory devices, commonly referred to as Non-Volatile DIMMs (NVDIMMs), is present in the Linux Kernel v4.0 or newer. It is recommended to use Kernel version 4.2 or later since NVDIMM support is enabled by default. Kernel versions 4.0 and 4.1 require manual configuration and re-compiling the Kernel to enable support.

Linux offers several options to emulate persistent memory for development. The features and functionality vary for each option. The following table describes which features are available for each development environment.

|                                                                                                                                       | NVDIMM | Regions | Namespaces | FSDax | DevDax | Persistent Pools |
| ------------------------------------------------------------------------------------------------------------------------------------- | ------ | ------- | ---------- | ----- | ------ | ---------------- |
| [memmap Kernel Option](/persistent-memory/getting-started-guide/creating-development-environments/linux-environments/linux-memmap.md) | No     | Yes     | Yes        | Yes   | No     | Yes              |
| [QEMU Virtualization](/persistent-memory/getting-started-guide/creating-development-environments/virtualization/qemu.md)              | Yes    | Yes     | Yes        | Yes   | Yes    | Yes              |
| Docker Containers                                                                                                                     | No     | No      | No         | Yes\* | Yes\*  | Yes              |
| [VMWare VSphere](/persistent-memory/getting-started-guide/creating-development-environments/virtualization/vmware-vsphere-esxi.md)    | Yes    | Yes     | Yes        | Yes   | Yes    | Yes              |

{% hint style="info" %}
Because emulation of persistent memory uses Volatile DRAM, the performance of emulated NVDIMMs will not match the performance of physical NVDIMMs. It is not recommended to rely on performance data when using emulated NVDIMMs.
{% endhint %}

{% hint style="info" %}
Data stored on emulated NVDIMMs will loose all the data when the system is power-cycled. Do not store critical data on emulated persistent memory.
{% endhint %}

(\*) Devices are passed through to the guest from the host. The guest cannot directly manage the devices.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.pmem.io/persistent-memory/getting-started-guide/creating-development-environments/linux-environments.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
