2 ms·
The increased complexity and possibly missing familiarity with the system running inside the VM has led me to abandon VMs for the OS and compiler construction c
by johndoe0815 5y ago
The increased complexity and possibly missing familiarity with the system running inside the VM has led me to abandon VMs for the OS and compiler construction courses I teach.
Instead, we make sure that all programming exercises work on Linux, MacOS and WSL.
My OS course covers operating systems from a system call perspective (POSIX, processes, synchronization and the usual things), but doesn't include kernel/device driver development, so we only had to cope with small differences in syscall behavior here.
Supporting Linux/WSL and macOS was a bit more problematic for the compiler backend exercise due to subtle differences in the supported assembler syntax and linker behavior between Linux and macOS as well as some students who might already own an M1 Mac.
Luckily, Rosetta happily executes the x86 binaries my students created using the macOS x86 crossassembler and -linker, so that turned out to be not a problem (I was hoping that a student would build an Aarch64 backend, but that didn't happen). None of my students seems to own a Pinebook or MNT Reform, so Linux/Arm was not a problem this year.