Skip to content

MuhammadAbuBakar95/kernel-specialization

 
 

Repository files navigation

Kernel Specialization

The general goal of this work is to provide a way to package an application and the Linux kernel in a small virtual machine that can be easily shipped. The main idea is to get LLVM IR code for the application and the kernel and apply the existing OCCAM tool to prune as much unnecessary functionality as possible.

Most of the effort has been to get a full version of the kernel code in LLVM IR, and then try to slash it using OCCAM's razor.

The kernel-to-bitcode directory contains scripts to build the Linux kernel and extract the bitcode in a way that makes it bootable when recompiled.

The kernel-slashing directory contains scripts used to apply OCCAM's razor on the kernel bitcode.

Environment

All this was done inside a Virtual Machine running on VirtualBox 5.2.12. The OS used is Ubuntu 16.04.


This material is based upon work supported by the National Science Foundation under Grant ACI-1440800. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

About

Documentation for my work at SRI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 53.0%
  • Python 33.1%
  • Shell 7.2%
  • C++ 4.8%
  • Makefile 1.9%