# System Requirements

The following minimum system requirements are required to support either physical NVDIMMs or emulated NVDIMMs.

{% tabs %}
{% tab title="Linux" %}

* Linux Kernel Version 4.0 or later
  * Kernel Version 4.19 or later is recommended for production&#x20;
* 4GB of DDR Memory (Minimum), 16GB or more recommended for Emulated NVDIMMs.

The 4.15 Linux kernel introduced a new flag to mmap() called MAP\_SYNC. If the mapping with MAP\_SYNC is successful, PMDK knows that flushing from user space using instructions like CLWB is safe. Otherwise, it falls back to calling msync(). The msync() call can be slower for the PMDK-style transactions because they are fine-grained, flushing lots of little stores during a typical transaction. Calling into the kernel has an overhead, as does the code path that msync() takes.

Setting PMEM\_IS\_PMEM\_FORCE=1 tells the PMDK libraries "even if mmap() with MAP\_SYNC was unsuccessful, pretend it worked and do user space flushing anyway, avoiding calls to msync()". This environment variable is meant for testing, not for production use. Both FSDAX and DEVDAX use user space flushing when it is available.
{% endtab %}

{% tab title="Windows" %}

* Windows Server 2016 or later for NVDIMM support
* Windows Server 2019 or later for Intel(R) Optane(TM) DC Persistent Memory Support
* 4GB of DDR Memory (Minimum), 16GB or more recommended for Emulated NVDIMMs
  {% endtab %}
  {% endtabs %}


---

# 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/system-requirements.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.
