发展历程
“沙箱”项目,最早开始于本人大二的暑假,并在大三的寒假设计出了第一个demo(不过说起来当时还不叫“沙箱”)。
在最开始设计的时候,这一项目被称为“Virtual Assemble”虚拟汇编,并先后迭代了两个版本。但是在第二个版本中,虚拟汇编出现了严重的内存覆盖问题。为了彻底解决这一问题,我决定终止关于虚拟汇编项目的开发,并开始了全新的设计项目,取名为“沙箱”。
“沙箱”版本介绍
截至这篇文章,“沙箱”已经开发了一年的时间,迭代了两个大版本、八个小版本,其中中间还出现过数次推倒重建。
目前,“沙箱”正在进行3.x版本的开发。这里我将简单介绍一下不同大版本的内容,以及3.x的开发规划。
首先,“沙箱”的前两个大版本目光都集中在了处理器结构上,并提出了两种不同的结构。“沙箱”1.x版本采用了固定的内存分段地址和变长指令集,并使用了分立的处理器指令逻辑。“沙箱”2.x版本采用了64bit和32bit定长指令集和不固定的内存分配,并对处理器指令逻辑进行了一定程度的合并。在此基础上,“沙箱”3.x.0采用了64bit定长指令集和不固定的内存分配,将处理器指令按用途划分成了不同的分类,并采用流水线方式设计处理器指令逻辑。
3.x的开发将会是一揽子计划,包括处理器、堆栈式虚拟机、编译器IR、面向过程和面向对象高级语言,并最终实现基于“沙箱”的操作系统。这大概率是一个漫长的过程,但是我会尽可能持续下去,直到我全部实现这些目标!