Skip to content

Yicheng-Lu-llll/eurosys-kfuse-artifact-1

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eurosys-kfuse-artifact

The repository is the artifact for the paper "Verified Programs Can Party: Optimizing Kernel Extensions via Post-Verification In-Kernel Merging" in EuroSys 2022.

How to run?

  • Step0: Please read the FAQ section at first.
  • Step1: Download vm and fs from Box or Google Drive.
    • FAQ Q1 describes that how to download the artifact from Google Drive on your work station.
  • Step2: Follow the instructions in the directory experiment_docs/instructions/ to run experiments E1 to E5.
  • Step3: Check the results with the expected results in the directory experiment_docs/expected_result.

Paper

  • (TODO): Link

Demo Video

demo_video.mp4

FAQ

Q1: How to download the artifact from Google Drive on your workstation

  • gdrive
  • Usage
    # Step1: Download the Linux binary of gdrive.
    # Step2: Follow the instructions in the repo to provide your verification code.
    # Step3: Download from CLI
    
    # Ex1: The address to download e1fs is as follows. https://drive.google.com/file/d/1x6O2TmfnezbdSDhy6zTOOd3fjTC3TY3C/view?usp=sharing
    ./gdrive download 1x6O2TmfnezbdSDhy6zTOOd3fjTC3TY3C

Q2: Can I install ubuntu on a VM on a Mac to run KFuse?

  • No, please use a native Ubuntu machine that supports KVM.

Q3: In the E1 file, where we find instructions to execute the experiment it says something about ssh'ing a VM. What VM?

  • In E1, we will use the script bench_merger.sh to launch the VM. For E2, E3, E4, E5, we use the script launch_vm.sh to launch VMs.

Q4: We also noticed that in your instructions, you recommend downloading the root.ext4 and placing it on the fs folder. However, the launch_vm.sh tries to access root.ext4 from the root of the project and not from the fs folder. Should we move root.ext4 from fs to the root of the project?

Q5: We also noticed that in launch_vm.sh there is an attempt to execute ./init.sh script. However, we did not find such script anywhere in your Github repo.

  • The command will be executed inside the VM, so it will not in the GitHub repo. The init.sh is in VM (e1fs and rootfs).

Q6: If you want to setup SSH config as I mentioned in E1, you can refer to the following instructions.

  • Step1: Launch VM with e1fs.ext4 sudo ./scripts/qemu_kernel.sh vm/nokfuse-noretpoline-vm e1fs.ext4 /init.sh
  • Step2: Copy your local public key to /root/.ssh/authorized_keys (In VM)
  • Step3: Close the VM, and run bench_merger.sh (follow E1 instruction)

Q7: For E3, I could only execute the experiment for $nfilter's value 0 and 20.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 100.0%