The last feature I worked on was simulating a Linux command-line.
Complete with mounting/unmounting drives and setting GRUB boot menu options.
It is a bizarre thing to have written.
Creating users, formatting filesystems, configuring dual boot into windows.
It also records the user actions and the system state to use for course evaluations later.
They can be graded on whether they correctly solved the problem or how they went about getting there depending on the course.