Department of Computer Science and Technology

CHERI

ASPLOS 2022 - CHERI Workshop

Overview

Join us on 28 Feb 2022 for a taste of CHERI at ASPLOS. 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. Specifically, please either download and install the CheriBSD software release (which requires the use of an x86-64 machine MacOS or Linux machine and docker) or follow the DIY installation instructions. For this tutorial, we will be using the CheriBSD/RISC-V 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 or on the Cambridge Computer Lab CHERI discussion email list. That's it; though, of course, you are welcome to read further ahead in the book, if you like.

Agenda

The tutorial is fully remote and will begin at 9 AM UTC+1 and is likely to go until 6 PM, with half-hour breaks at 11 AM and 4 PM and an hour lunch at 2 PM (the same schedule as the in-person tutorials the next day). We will add a Microsoft Teams link to this page prior to the start.

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

The Final slide deck for the tutorial has now been posted.