Creating pmem.io

The pmem project in GitHub has been created as an open source project focused on persistent memory programming. Everything on this web site and the associated GitHub repositories is open source under the “three-clause” BSD license.

Some educational Linux examples are included, which demonstrate the SNIA NVM programming model and some of the interesting features and challenges associated with persistent memory.

The team’s initial focus is the Linux NVM Library which will provide useful APIs for memory allocation, transactions, etc. built on top of the NVM programming model.

This site includes a pmem blog based on Jekyll so over time we can write up our experiences working with persistent memory programming. There are many ways to get involved and we welcome your contributions!

GitHub Pages and Jekyll

Since we will surely keep our focus on persistent memory and immediately forget the steps taken to create this site, here’s a quick summary for reference. First, any GitHub user or project area can have GitHub Pages associated with them with almost no effort. We simply created a repository named pmem.github.io to hold the pages. GitHub pages use Jekyll automatically, but it is convenient to install it locally for previewing content before pushing changes to the repo. On Debian Linux, these steps did the trick:

$ sudo apt-get install ruby ruby-dev node python-pygments
$ sudo gem install jekyll
$ sudo gem install jekyll-mentions

# to start the jekyll server:

$ jekyll serve --watch

[Edit: Fedora steps added December 11, 2017]

On Fedora 26, here are steps that for running jekyll locally:

$ sudo dnf install ruby ruby-devel python-pygments nodejs
$ sudo dnf install redhat-rpm-config zlib-devel gcc-c++
$ gem install jekyll
$ gem install jekyll-mentions
$ gem install bundler

# change directory to jekyll tree, such as pmem.github.io repo clone

$ bundle install

# to start the jekyll server:

$ bundle exec jekyll serve --watch

Once the jekyll server is running, it watches for changes, re-generating the web pages as necessary, and provides the content for preview at the local URL http://0.0.0.0:4000/.

The rest of the details (like how to write a _config.yml or create templates or includes) can all be found in the Jekyll documentation or you can look at the source for this web site for details.

[This entry was edited on 2017-12-11 to reflect the name change from NVML to PMDK.]
Share this Post:

Related Posts: