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 w ecall Chits, to first class OS citizens.

It is goal of this thesis to implement the basic Chit 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.

  • Good low-level programming skills in C
  • Basic knowledge of virtual memory (page tables, copy-on-write)
  • Motivation to dig into new problems and code bases.

This thesis implements 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.