‹ 返回视频系列: 持久内存编程入门

持久内存编程(第 3 节)NVM 库简介

  • 概览
  • 资源
  • 文字稿

英特尔的 Andy Rudoff 为您介绍持久内存,并解释为什么最近它在业界如此热门。Andy 将描述持续内存是如何与计算机平台连接的,它是如何工作的,以及编程人员面临的一些挑战。Andy 是一位非易失性内存软件架构师,也是存储网络行业协会 ( SNIA) 非易失性内存编程技术工作组的成员。

大家好,我是英特尔公司的 Andy Rudoff。映射内存的文件支持直接加载/存储访问,因此 Windows 和 Linux 能够为 应用程序提供持久内存。在这段视频中,我将介绍 NVM 库,它提供了便于使用持久内存的 API。

一旦应用程序获取了大范围访问持久内存的权限,接下来会发生什么?当创建数据结构时,持久内存是如何分配的?应用程序如何对这些数据结构进行事务性的更改?

幸运的是,您可以使用某些库来完成这些常见任务。这些被统称为 NVM 库,开放源码,可用于 Linux 和 Windows,并在 pmem.io 网站上提供了文档记录。NVML 实际上是一组库,您可以根据自己的编程需求进行选择。在这一系列视频中,我将深入讲解特定库的编程细节,但是首先我们需要讲解如何设置使用 NVML 的环境。

如果您是一位 Linux 编程人员,可能会发现您的 Linux 发行版已经提供了 NVML。例如,您会发现可以使用 Fedora DNF 工具安装名为 libpmemobj 的 NVML 库。这就是我们将在本系列视频中使用的库。请注意,我正在安装开发人员版本的软件包。这就是为什么这个文件名以 -devel 结尾,它将安装程序开发所需的头文件。

如果您的套件版本没有包含 NVML,您可以从 Git Hub 下载,通过几个简短的步骤就可以自己构建库。在当前 Git Hub 区域还包含了适用于 Windows 的预构建 NVML 二进制文件。首先像我现在展示的这样,使用 git clone 命令创建 NVML 源的本地副本。使用 make 命令构建库,然后使用 make install 命令将这些库安装到您的系统中。如有需要,请参阅文件夹顶级目录中的 read me 文件,了解关于此过程的更多详细信息。

现在您已经安装了用于开发的 NVML,您可以用它编写访问持久内存的程序。您可能认为,如果不在机器中安装真正的持久内存,就无法继续进展了,但是要记得,持久内存编程模型是基于内存映射文件的,并且大多数现代文件系统都支持这个模型。因此,即使您的系统中没有安装真正的持久内存,只要使用常规文件就可以开始编程。

现在您可以看到我使用 pmempool 命令在文件中创建了一个 libpmemobj 池。这样就创建了一个允许 libpmemobj 将文件作为持久内存使用的布局。pmempool info 命令现在显示该文件已经准备就绪,可供 libpmemobj 使用。现在编程环境已经准备完毕,并且您懂得了如何创建一个包含 libpmemobj 专用池的文件,请继续观看此播放列表中的视频,了解有关该库的详细信息。

感谢大家收看。如需了解更多详细信息,请查看持久内存编程播放列表,并访问下方提供的链接。请记得给本视频点赞,并订阅英特尔软件 YouTube 频道。