简单答一下吧,虽然我也写不出来。一般做这种项目都是要学学习虚拟机的两点:

  1. 虚拟机运行时,就是虚拟机的执行引擎,怎样把字节码解释成机器码,这里的解释可以认为是指令读取,因为一般在实现上都会有两种方案,一种就是纯解释执行,估计题主最后能达到的,或者想达到的目标就是以此为终点了;另外更高级点的就会在执行引擎中加入及时编译器 这样会让代码执行更快,可以快到与c/c++媲美的性能,不过这个更多的涉及是编译原理以及编译 的前端和后端,以及一些ir相关的知识,从题主描述的关键字go来看,这个应该也不是你的学习目标,所以就暂且略过吧。
  2. 垃圾回收,这个是java此类CLR语言的优势,而题主想用go估计也是想用现成的go语言的垃圾回收与对象管理特性,把虚拟机要实现的gc的功能以及对象的托管直接交由go处理。
  3. JIT 主题过于高级,这部分一般不在原理性探索的方案里面讨论,更多的是非虚拟机主题的东西。

综上,我觉得题主能学习的就是理解虚拟机的运行时原理,执行引擎实现的基本方式,对象在jvm内部的表示机制,以及jvm的类加载 的一些原理与实现细节。

这些其实已经足够丰富,应该能撑起你的学习内容。