-
Clone the main split kernel repo from https://github.com/linux-okernel/linux-okernel.
-
Checkout the 'linux-okernel' branch.
-
Build that kernel using the config file matching the desired kernel version from the build_configs sub-directory as the '.config' for the kernel. Note: If you make modifications to the config file or create your own, ensure that 'CONFIG_VMAP_STACK' is NOT set and 'CONFIG_OKERNEL' IS set (i.e. CONFIG_OKERNEL=y).
-
Build the userspace tools found in sub-directory userspace_tools of this repository (linux-okernel-components).
To launch a shell in outer-kernel mode run (as root):
$ ./userspace_tools/okernel_exec2 /bin/bash
You can check its status by looking at /proc/self/okernel: it should be 1 when running in outer-kernel mode, 0 otherwise.
To run containers in outer-kernel mode you currently need to start the docker daemon from a shell running in outer-kernel mode, e.g.:
$ ./userspace_tools/okernel_exec2 /bin/bash
$ dockerd -D
Any containers started via that daemon should be running in outer-kernel mode.
Build and run the tests and demonstration of protected memory. See 'test_mappings/README' for more information.