As someone who is about to graduate from an undergrad CS program in the fall, apparently my curriculum isn’t reasonable? None of the classes I’ve taken, required or otherwise, have had us implement an emulator or an entire operating system. We’ve mostly focused on integrating with existing things e.g. writing Linux kernel modules, writing MIPS assembly, rather than creating new things. Probably the only notable exception I can think of was writing a tokenizer/parser/compiler over the course of CSE340, but none of the classes my college offers involve writing an OS from scratch (at least at the undergraduate level).