Department of Computer Science and Technology

CHERI

SOSP 2023 - CHERI Workshop

Overview

Join us on 23 October 2023 for a taste of CHERI at SOSP. We will guide curious software engineers through a series of hands-on, canned, and yet hopefully fun and informative exercises exploring various aspects of CHERI's impact on architecture and software, with short presentations and opportunity for discussion for each.

Prerequisites

Should you wish to work through the exercises with us on the day of, everything will likely go much more smoothly if you have done a very little bit of "homework" to prepare a CHERI environment ahead of time. To do this, download and install the CHERI virtual machine. For this tutorial, we will be using the CheriBSD/RISC-V virtual machine with included software stack. With that installed, you should be able to complete the first exercise, Compile and run baseline and CHERI-enabled programs, which walks you through compiling and running a program in the emulated CHERI environment. If you encounter difficulties, please do reach out to us on the CHERI-CPU Slack.

Agenda

The tutorial will begin at 8:30 AM and is likely to go until 5 PM, with a lunch break and two coffee breaks. We will also support remote attendees if there is interest.

We will open with a short slideware overview of CHERI, and the bulk of the day will be spent on the exercises, exploring CHERI's implications, including:

  • Changes to the ISA and program .text
  • Spatially safe C, including detailed looks at stack, global, and heap spatial safety
  • Source-level changes required by CHERI C
  • CHERI's impact on (C) compilers and linkers
  • The CheriABI *nix system call interface

For each exercise, we intend 15-20 minutes of work and investigation followed by another 15-20 minutes of presentation reviewing the lessons learned. Time permitting, we will also present a few 20-to-30-minute, deep dives into additional topics and ongoing research projects at the University of Cambridge, SRI, and Microsoft Research Cambridge.

Slides

Slides for a predecessor to this tutorial at ASPLOS 2022 are avaliable here.