One of my friends at uni wrote a Z80 emulator&#x2F;assembler in PDP-10 assembler as a hobby project  - and he was studying chemistry, not CS...<p>I don&#x27;t understand why a basic understanding of CPU architectures isn&#x27;t a CS fundamental everywhere.<p>Even if you have no interest in emulating a CPU or an OS, you really do need to know what registers are, how caches work, what interrupts do, and how basic IO happens.<p>At the very least it&#x27;s a practical demonstration of one particular kind of VM, and - if you want to - you can generalise from that to VMs of your own design.<p>For web apps, not understanding these things can get expensive. Cycles, even cloud cycles, aren&#x27;t free, and if you take zero interest in optimisation and efficiency you&#x27;re literally throwing money away.