Giter Club home page Giter Club logo

cozart's Introduction

Cozart: Mozart for OS Kernel Configuration

[SIGMETRICS'20] Set the Configuration for the Heart of the OS: On the Practicality of Operating System Kernel Debloating [pdf]

What's the problem?

We find that less than 20% of an Ubuntu kernel is used for running a HTTP server. Lots of modules(features) are not used and they can be disabled by configurations. However, Linux has so many options and the number of options is still growing... Since it is not practical to spend hours to reconfigure the kernel every time we deploying an application, we need an automatic tool that specialize the bloated kernels.

Version # Options
3.0 11,328
4.0 14,406
5.0 16,527

What can Cozart do?

Cozart generates APPLETS for each applications and BASELETS for each deployment environment. Cozart then can compose one BASELET and one or multiple APPLETS to generate the final configuration.

How can I use Cozart?

Setup

git clone [email protected]:hckuo/Cozart.git
cd Cozart/docker;
docker build -f Dockerfile -t cozart-env:latest .

Run

cd Cozart # project root directory
docker run -v $PWD:/Cozart --privileged -it --name cozart cozart-env /bin/bash # start up the docker container 

In docker container

mknod /dev/loop0 b 7 0 # create loop device if not exist
cd /Cozart
source constant.sh
make $mnt; make $disk # set-up mnt folder and qemu disk
make setup-qemu # patch the qemu to enable PC tracing
make setup-linux # clone the linux source
make build-db # parse the linux source to extract the relationships between the configuration options and code
make debootstrap # create a rootfs for the VM
make build-base # build the vanilla kernel as the baseline
./install_mysql_host.sh # only required for mysql
./job.sh trace boot # generate a baselet
./job.sh trace apache # generate an applet for apache (the executed workload in the VM is in /benchmark-scripts/apache.sh)
./job.sh compose apache # compose apache applet with boot baselet
./job.sh benchmark apache # benchmark the debloated kernel

Questions

If you have any questions, please let me know at [email protected]. Any feedbacks (good or bad) are also welcomed.

Test coverage data in the paper

cozart's People

Contributors

hckuo2 avatar hckuo avatar jo285317 avatar wanderingturtle avatar tianyin avatar ubdussamad avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.