整个程序,就相当于是一个计算机硬件,直接用文件来模拟cpu的寄存器以及内存结构。
在里面所执行的程序,不会对外面的操作系统产生任何影响,最多只是那个文件里面的内容发生了改变。
林鸿接下来查看了一下他们编写的源代码,所有内容都是用c语言编写的。
后面的实现代码编写得非常不错,无论是实现方法和执行效率,看得出来都经过了特别的优化,看来那个新加入的计算机老师果然不愧是在这一行研究了这么久,实现这种东西来,简直有些得心应手的感觉。
林鸿笑道:“那个老师果然不愧是教计算机组成原理的。”
吴东点头道:“是啊,他说他教这门课程好几年了,天天照着课本给同学讲枯燥的理论知识,大家根本没有任何概念,刚考完试转眼就把所有的内容都还给他了。他看到我们这个项目之后,高兴地不得了,认真研究了两天就说要加入我们,然后他将接下来的那些指令实现任务全包了下来,不到一周的时间就全部实现了。”
要想将这个做出来,如果不对cpu的结构以及运行原理完全掌握,肯定是完成不了的。就拿8086的寻址方式来说,就有好多种实现方式,这可不是寄存器到寄存器这么简单,还得考虑直接寻址和间接寻址,其中间接寻址又分好其中情况。
吴东继续说道:“还有,那个郭老师还问我这个项目是不是基于开源协议,他想要用这个项目改造一下,专门为他的课程定制,以后教学的时候,就分步骤让自己的学生去分别实现,从而让他们真正掌握这些知识。”
“这个没问题,他想用就用吧,反正这个项目也主要是用于学习。”
“老大,我们接下来该做什么?”吴东又问起了这个问题。
林鸿:“当初让你做这个项目,主要是让你理解一下cpu的基本原理,现在看来,这个目的已经达到了,相信你对底层的编程也有了足够的认识。按照我原来的计划,做到这一步,这个项目就可以停了。”
“停了?”吴东闻言不由一愣“就这样停了,也太可惜了吧?现在我们这个项目小组好不容易组建起来,还没做什么东西呢,就这样停了?”
这个项目,是吴东做的第一个比较大的项目,同时也是投入时间和精力最多的一个东西,可以说已经有了感情,说停就停的话,实在是有点难以接受。
林鸿道:“这是原来的计划,我原先也没想到你会因此而组建一个项目小组。现在看来,可以让这个项目继续发挥余热,我已经想好了,接下来,将这个项目改造一下,将其打造成一个游戏平台。”
“游戏平台?”吴东闻言眼睛顿时一亮,但是同时又有些疑惑,这个东西怎么会和游戏联系在一起?
在他的印象中,游戏都是非常复杂的程序,涉及到比较复杂的图形化的界面和运算。他们现在编写出来的这个东西,说白了,完全就好像是个玩具一样,根本不具备任何实用价值,也不具备任何趣味性,只有学习这个专业的人才会对其有点兴趣。
而现在林鸿告诉他,要将这个项目进行改造,将其打造成游戏平台,这不由让他感到非常奇怪。
林鸿没有回答,而是问道:“你听过磁芯大战么?”
“磁芯大战?”吴东摇摇头“没有听过。一个游戏?”
“是的,一个流行与黑客和计算机科学家内部的游戏,也是病毒的始祖。”
林鸿说着,打开了自己的电脑,然后运行了自己的电脑中的一个程序。
吴东完全被林鸿的话给震了一下,病毒的始祖,这名头实在够大。他连忙凑上前去,查看林鸿运行的那个程序。
之间显示器中,出现了一个黑色的方框,方框中则出现了两个不停闪动的两点。
两个两点都在开始移动,不过它们的方式并不相同,其中一个颜色为红色,它犹如一条小蛇,一步一步地朝前前进,而另外一个则为黄色,它似乎长了腿,直接跳跃式前进,他们经过的地方都留下了自己的颜色,方框中的格子不断地被它们侵蚀着。
“这个程序叫做达尔文。”林鸿介绍道,“是几十年前,由一位叫做麦耀莱的工程师在贝尔实验室中编写的……”
1959年,贝尔实验室的三个二十多岁年轻人发明了一个名为“磁芯大战”的游戏,将十年前电脑先驱者冯*诺依曼在他的论文《自我繁衍的自动机理论》中所描述的病毒变为现实,这三个人分别是麦耀莱、维索斯基以及莫里斯。
“……这个莫里斯,就是后来鼎鼎大名的莫里斯蠕虫的作者罗伯特*莫里斯的父亲。”林鸿继续介绍道“这个红色的战士,叫做爬行者,每一次执行都会自动生成一个副本,也就是将自己复制一份,它就是通过这个简单的机制不断地吞噬着里面的内存。在当时,磁芯就是内存。”
吴东听着听着也有些明白了。
眼前这个游戏虽然看上去没有什么趣味性,但是底层所代表的机制却不简单。
一红一黄两个战士在里面抢着内存资源,不停地互相吞噬,谁能最后将所有内存给抢占,谁就能获得胜利。
“老大,我明白了!你的意思是,我们将虚拟机平台改造成为类似于达尔文这样的平台?然后让大家编制战士程序,在里面玩游戏。是不是这样?”