✨前言:
什么是PMDK?
Intel的PMDK(Persistent Memory Development Kit)是一个库,旨在简化持久内存的应用开发并解决一些常见挑战。
PMDK,全称为Persistent Memory Development Kit,是由Intel开发的一套函数库和工具的集合,适用于所有的持久内存(厂商中立),无论这些内存来自哪个制造商。它包含了一系列函数库,如libpmem、libvmem、libpmemblk、libpmemlog、libpmemobj、libpmempool、libvmmalloc等,这些库的设计目的是为了方便非易失性内存的应用开发。通过PMDK,开发人员可以更容易地利用持久内存的优势,如高性能、低延迟以及数据的持久性,这些特性使得持久内存成为一种介于传统内存和存储之间的新技术。
具体而言,PMDK中的某些库,如libpmemobj,提供了基本的事务支持,允许应用程序用特定的语法表示事务,从而将应用程序从比较困难的底层细节中解放出来。这种支持对于需要自己实现简单数据库系统的应用程序来说尤为重要。通过PMDK,开发人员可以更加专注于应用程序的核心功能,而不是花费大量时间处理底层细节。
此外,PMDK还支持Hadoop等大数据处理框架,通过配置PMDK库的路径和包含文件的路径,可以构建支持PMDK的Hadoop本地库,从而提高大数据处理的性能和效率。
持久内存开发套件 (PMDK), 前身为NVML,是持续丰富的开发库和工具的集合。这些库在 Linux 和 Windows 上进行调整和验证后,以这些操作系统的 DAX 功能(直接访问)为基础,允许应用程序访问持久内存作为内存映射文件,如SNIA NVM 编程模型所述。
总的来说,Intel的PMDK通过提供一系列函数库和工具,简化了持久内存的应用开发过程,解决了许多常见挑战,使得开发人员能够更加高效地利用持久内存的优势,无论是对于传统的应用程序开发还是对于大数据处理等高性能计算领域,PMDK都发挥了重要作用
🌟编译需要的一些库的路径
https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/
https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/
🌟1.首先编译PMDK需要如下的packages的依赖,那就是先编译好ndctl
🌟2.编译环境需要如下包对应的版本,需要自己下载对应的包安装编译:
pkg-config:0.27.1
make:GNU Make 4.2.1
ninja :1.13.0.git
GCC:10.2.1(10.2.0也可)
meson:0.61.5
pandoc:2.0.6
asciidoctor:2.1.0
✨3.编译ndctl
🌟从GitHub上的ndctl仓库克隆代码:
git clone https://github.com/pmem/ndctl.git
cd ndctl
🌟编译
安装Meson和Ninja:
Meson依赖于Ninja构建系统来实际编译代码。请确保这两个工具都已安装(已安装忽略):
sudo yum install meson ninja-build
🌟安装lib kmod meson build的时候需要依赖这个