No, this explains what pk does, i.e. intercepting the syscalls (when executing ECALL instructions) generated by bare-metal applications (compiled with riscv64-unknown-elf-gcc).
The proposed method to simulate Linux applications is to execute the full Linux Kernel on spike, which is a considerable larger piece of code (and time). Moreover, by executing full Linux you cannot access host resources (like files) when running the target (RISC-V) system.
I am asking because I am implementing a Linux proxy-kernel for the punxa RISC-V python-based simulator (
https://github.com/davidcastells/punxa/tree/main/test/proxykernel_linux/hello) and I would like to know...
1) Why Spike didn't go this way ? Is there a problem I missed that will seriously limit its usefulness. I already succesfully tested a "hello world" application and I find it quite interesting for teaching purposes.
2) Did anybody make the same/similar experiment before ?