“磁芯大战吗?”萧云飞喃喃自语,眼中闪过一丝笑意。
磁芯大战,一种程序游戏,它应该算是电脑病毒最早的一种形式。
早在电脑还是独立存在的个体时,为了缓解编程带来的枯燥,为自己的业余生活增添一丝乐趣,贝尔实验室的三个年轻人就创造了这种名叫“磁芯大战”的程序游戏。
大名鼎鼎的“莫里斯蠕虫”正是当年磁芯大战中的kingofthehill(磁芯大战的最高荣誉),“莫里斯蠕虫”仅仅只有99行,采用纯汇编语言编写而成,该蠕虫病毒在一夜之间感染了上万台unix操作系统的sun工作站和vax小型机,使这些工作站处于瘫痪或半瘫痪状态,m国国家航空和航天局、军事基地和主要大学的计算机因为病毒停止运行,不计其数的数据和资料毁于一夜之间,“莫里斯蠕虫”一夜之间就造成一场损失近亿美元的空前大劫难。
“莫里斯蠕虫”的创造者罗特.莫里斯,正是“磁芯大战”游戏创造者之一莫里斯的儿子,显然,罗特.莫里斯得到了他父亲的真传。
“磁芯大战”是一种充满魅力的游戏,很多程序员对这种直观的游戏极为推崇,它不但是可以缓解程序员的工作压力,同时它还能加强程序员对底层代码的深刻认识。
在游戏的时候又能学习,所以“磁芯大战”备受程序员的推崇。
我为什么说“磁芯大战”很直观呢?
我们知道,病毒感染我们的文件大多数都是悄无声息的进行,在不知不觉中,病毒可能就已经感染了电脑中的exe文件或者dll文件,病毒如何复制,如何传播,如果感染文件的过程,我们的肉眼是无法看到的。
但是“磁芯大战”不一样,磁芯大战的玩法是游戏双方各写一套程序或者几套程序,输入同一部电脑中,然后将两套程序保存在电脑的存储系统内。
双方的程序进入存储磁芯开始“并发”运行后,玩游戏的人就只能看着屏幕上显示的战况,而不能做任何更改,所以我们可以通过电脑屏幕看到病毒是如何移动,如何复制,如何对其它文件进行感染或者吞噬的。
程序员编写的程序可以是短短的几行,也可以是几十行,但是程序必须拥有复制、移动、吞噬的功能,因为程序的移动是体现在进程上的,程序移动性的强弱性对程序的存活起着至关重要的作用,当程序本体被对方的程序控制时,程序可以进行自我复制,逃离对方的控制范围,吞噬的功能就是程序的破坏力,这是“磁芯大战’的实力比拼。
早期的“磁芯大战”通常都是在mars体系结构的计算机上运行,mars机器由一个组内存单元,一个cu单元,一个简单进程管理系统和一组指令集构成,程序通过系统指令编写,每一个程序加载到内存的随机位置,当多个程序都加载完后系统给每个程序创建一个进程,这些进程在进程队列中的位置是随机的,系统开始运行后,各个程序开始进行对抗,通过进程的观察,可以看到谁存活到最后。
现如今的“磁芯大战”工作的环境通常都是在软件模拟系统上运行,不过大多数模拟器都是模拟mars系统的工作原理。
“磁芯大战”可以看作是原始的病毒对抗,每个程序都要尽力的消灭其他程序,为了能够生存,程序应该能保护自己,不断移动自身来躲过其他程序的攻击或当自身受到攻击后能自我修复。
正是因为“磁芯大战”的程序具有隐蔽性、攻击性和传染性,所以,很多人都说“磁芯大战”是病毒的起源。
在国外,专门有磁芯大战爱好者定期组织比赛,并以此来证明自己的实力和奇思妙想,参赛的胜利者获得kingofthehill的荣誉称号。
(ps:“磁芯大战”其实具有一定的人工智能,不过呢,利用java编写的太空战机更接近人工智能)
******************************
薛亚妮笑了笑对萧云飞解释道:“罗杰斯教授用于磁芯大战的程序可不同于一般的程序,它有着一定程度的智能性。”
“程序智能?”萧云飞有点好奇的问道。
“恩,”薛亚妮点了点头,“传统的磁芯大战程序虽然具有自我复制与攻击性,但这是程序员赋予它的特性,在比赛开始后程序就不能进行自我更变了,如果遇到轰炸地址指令更为刁钻的程序,它就只能坐以待毙。”
“但是罗杰斯教授用于磁芯大战的程序却加入了一段经过加密处理的程序代码,这段代码的功能就是令他的程序具备一定的智能。”
“如果它第一次在某一个特定的内存单元被对手轰炸后,只要它能够通过自身的移动逃过猎杀,那么它就会自动将这个缺陷记录在自己的扩展核心中,经过修复,第二次遇到对手这样的轰炸指令,它完全可以避免了,所以,它不会在同一个地方栽两次跟斗……”
“还有,因为程序的攻击性,它吞噬了对方的程序后,它将会根据自身的情况保留其他程序的优越性,变为自己所有。”
薛亚妮笑了笑,脸上闪过一丝自豪的表情:“这是程序人工智能的雏形哦。”
“师姐,要不我们也去凑凑热闹?”萧云飞的脸上浮现出一抹淡淡的笑意。
“你?”薛亚妮捂着嘴有点惊讶看着萧云飞,“师弟,你要去挑战罗杰斯教授的擂台吗?”
“去看看也无妨啊,”萧云飞耸了耸肩笑了笑,“况且我并没有告诉过你,我计算机不行哦……”