Primitives and Abstractions for Self-Contained Virtual-Memory Areas in the Linux kernel

With the advent of new and disruptive memory technologies, like non-volatile memory, high-bandwidth memory, and near-memory computing, the relationship between memory users (processing elements), the operating system, and the memory has to be revisited. Especially, the new persistency guarantes of NVRAM, which can be accesses like ususal RAM but which keeps its contents during power outages, the question arises *How much operating system do we need on our memory-access path?". For this, we want to make areas in the virtual memory (VMAs), which we call Morsels, to first class OS citizens.

The goal of this thesis is to implement the basic Morsel abstraction, for the time being only living in the volatile RAM, as a Linux kernel extension. Thereby, some basic operations, like create(), send(), and clone() are designed, implemented, and evaluated.

Implement the basic abstraction for self-contained virtual-address-space areas in Linux, by which we want to ease the allocation, the sharing, and the management of huge amounts of memory.