CS 4414/5416:
Systems Programming

Lab 5: FFI and assembly

2026-09-25

Lab Logistics Reminder

Primary goal: Work together on something

  • Fine to have small groups (up to 4)
  • Work on the lab assignment during the hour

This week is about interfacing Rust with C and examining assembly output.

Computing Hardware

  • Parts 1-2: set up build.rs and safe wrappers for C functions
  • Part 3: check out the C and Rust assembly output
    • Assembly language depends on the platform!
    • You may want to use Google cloud shell: https://shell.cloud.google.com
    • You may also use your VM if you want
  • If you finish with spare time, check out llvm-mca!

Getting the material

Repo: https://github.coecis.cornell.edu/cs4414-f26/lab-05

At the end of the hour run cargo package and submit the crate file as a group on Gradescope (I will grade based on whether the crate builds and tests pass).

  • If you finish with spare time, check out llvm-mca too!
  • If you used a VM, REMEMBER TO SHUT DOWN YOUR VM!
  • Try using rust-bindgen to automatically create bindings!