实现一个简单的 JVM ?

2019-11-20 10:32:37 +08:00
 guxingke

最近开了个新坑, 目的是实现一个简单的 JVM. 零零散散的提交了 100 个 commits , 最终的目标是 自举.

目前进度大概在 60% 基本的 classfile 解析,字节码执行, 方法调用, 类加载, 多态 已实现.

有感兴趣的道友吗? 同去同去.

https://github.com/guxingke/mini-jvm

7804 次点击
所在节点    Java
42 条回复
leiuu
2019-11-20 10:35:32 +08:00
爱莫能助,赞楼主。
backfrw
2019-11-20 10:36:44 +08:00
正在看有关 jvm 的书,但是能力不足,楼主加油
guxingke
2019-11-20 10:40:58 +08:00
@backfrw 目前实现来看, 还是比较简单的. 真的. 代码也不多, 目前就那么几千行吧
DT37
2019-11-20 10:44:14 +08:00
虽然能力不足但是我觉得是一件有意义的事儿,我试试
qiyuey
2019-11-20 10:46:33 +08:00
加油
BBCCBB
2019-11-20 10:47:19 +08:00
楼主去研究 graal,给它贡献吧. 他也是 java 写的.
Laumm
2019-11-20 10:49:47 +08:00
用 java 自举 JVM , 编译出来是 java 字节码还是可执行二进制文件啊?
cjh1095358798
2019-11-20 10:49:58 +08:00
厉害,而我自己 class 都没搞清楚
tabris17
2019-11-20 10:51:05 +08:00
稍等,我把 OpenJDK 的源代码推上来
Mohanson
2019-11-20 11:00:36 +08:00
加油, 也贴下我的 Game Boy 虚拟机项目: https://github.com/mohanson/gameboy

去年到今年零零散散写了 4 个虚拟机 /仿真器: Webassembly, EVM, i8080 仿真以及 Game Boy 仿真...
guxingke
2019-11-20 11:04:59 +08:00
@DT37 比心欢迎
redford42
2019-11-20 11:06:17 +08:00
一脸迷茫的摸摸头
guxingke
2019-11-20 11:08:38 +08:00
@Laumm 还是 java 字节码啊
guxingke
2019-11-20 11:10:03 +08:00
@BBCCBB 在关注这个项目... 但没深究, AOT 编译还是不错的
guxingke
2019-11-20 11:10:34 +08:00
@cjh1095358798 来吧, 自己写个 classfile 解析就弄清楚了
Cat73
2019-11-20 11:12:10 +08:00
我曾经也想过,然后再一想 JVM 可能需要实现的东西,emmm 就放弃了。。。
hqweay
2019-11-20 11:21:08 +08:00
能力不够,先关注了。
guxingke
2019-11-20 11:30:32 +08:00
@Cat73 以我爬坑的经验, 到目前为止, 还算简单, 毕竟是 Java 来实现, 搞不定的可以暂时委托到宿主 JVM 去搞, 先绕一下.
octobersnow
2019-11-20 11:53:45 +08:00
有兴趣,怎么联系?
guxingke
2019-11-20 12:09:31 +08:00
@octobersnow
欢迎

vx: ``` echo "Z3V4aW5na2VfCg==" | base64 -d ```
mail: ``` echo "YWRtaW5AZ3V4aW5na2UuY29tCg==" | base64 -d ```

gitHub issue 什么的也欢迎

gitter 也会响应

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/621284

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX