1个不稳定版本
0.1.0 | 2021年7月9日 |
---|
#156 在 渲染
1MB
4K SLoC
包含(ELF可执行文件/库,2MB) test/mandelbrot-debug,(ELF可执行文件/库,19KB) test/rv64uc-p-rvc,(ELF可执行文件/库,18KB) test/rv64ud-p-fcvt_w,(ELF可执行文件/库,17KB) test/rv64uf-p-fcvt_w,(ELF可执行文件/库,3KB) test/mandelbrot,(ELF可执行文件/库,10KB) test/rv64ua-p-amoadd_d 以及更多103个。
这是什么?
这是一个思想实验的体现。如果你有一个使用与宿主机相同地址空间的仿真CPU会怎样?使用RISCV CPU仿真来运行脚本代码会是什么样子?
为什么?
因为我能!
但说真的,这意味着宿主环境可以分配结构并传递它们的指针到仿真中,无需地址转换。
为什么不呢?
在仿真环境中发生一个坏指针解引用 将会 导致宿主机崩溃。如果有可能运行不受信任的代码,那么这不是做事的方式。另一方面,如果你确定你要运行的代码不会做任何坏事,那么你应该是没有问题的。
这是我正在玩弄的想法。
结果
它似乎可以工作,并且工作得非常好,特别是考虑到我并没有努力优化代码。
现有技术
这部分代码基于这里找到的代码:[https://github.com/takahirox/riscv-rust](https://github.com/takahirox/riscv-rust)