A minimalist RISC-V system emulator capable of running Linux kernel with efficient event-driven scheduling