In this project, you will write a kernel module to create a new software device, /dev/dice, which returns randomly selected rolls of a 6-sided die. You’ll also write a very simple game that can make use of that kernel module.

This project will give you practice with using a virtual machine - a kind of emulator for running an operating system inside another operating system.


  1. Set up your VM
  2. The Game: Craps (no, not this kind 💩)
  3. The Kernel Module /dev/dice

Grading Breakdown


Submission Instructions

Remove or comment out all debugging printf/printk statements. Put your name at the top of each source file. Make a copy of your code somewhere.

Create a tar archive (tarchive?) containing two things:

Now you can submit as usual.