[[!template id=project title="Userspace Emulation For Fun And Profit" contact=""" [jkoshy@NetBSD.org](mailto:jkoshy@NetBSD.org) """ mentors=""" [Joseph Koshy](mailto:jkoshy@NetBSD.org) """ category="userland" difficulty="hard" duration="3 months" description=""" Execute non-native executables directly by passing them to an instruction set emulator at `execve()` time. For more information, please see: [NetBSD ∘ (NetBSD ∘ Toaster) / jkoshy.net](https://jkoshy.net/projects/netbsd-on-netbsd-on-a-toaster.html). This is not an easy project. It touches upon: - Linking and loading, - Instruction set architectures, - Binary emulation, - POSIX compatibility, - and others. It also has a small kernel component involving changes to the `execve()` path. Primary milestones: - (Proof of concept) Invoke **qemu** in its 'User-Mode Emulation' mode on a non-native binary. """ ]] [[!tag gsoc]]