LEAD阳光

 找回密码
 注册必读

快捷登录

搜索
查看: 2178|回复: 0
打印 上一主题 下一主题

我理解的Matrix体系结构(ZT) shijiaying

[复制链接]
跳转到指定楼层
1
发表于 2007-9-29 00:00:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我理解的Matrix体系结构(ZT) shijiaying 2003-12-23 21:41



【 以下文字转载自 Movie 讨论区 】
发信人: edwardgao (贝贝贝贝贝贝贝贝), 信区: Movie
标 题: 我理解的Matrix体系结构(可能含有剧情)
发信站: BBS 水木清华站 (Sun Nov 9 10:15:59 2003), 转信

看完黑三感觉有点乱,如果谈到哲学那可就玄了,我也没有那个能力。 随便说说我理解的Matrix和Zion的体系结构吧。虽然这里边有一些问题我还没理清。

首先,Matrix的硬件体系没有超过图灵机的水平,机器其实不能拥有绝对的自由意志,仍然是所谓的“有限状态自动”。Architect自吹的机器比人类更讲信用,其实是这种体系结构的限制。庞大的硬件体系和超强的运算能力使计算机看起来具有了AI,其实这不过是假象。就像现在的语音识别,图像识别一样,看起来计算机能够听懂看懂,而其实他们只是把这些东西抽象成数据,用统计规律机械地判定而已。那个在火车站的阿三说“爱”时也说这不过是个symbol,一个word。

接下来,这样的硬件体系其实是无法自我更新的,其中无可避免地牵扯到安全性的问题。整个Matrix有一个Kernel,也就是Neo要去升级的代码,为什么非要让一个人携带代码去升级呢?我们可以这样想,操作系统中对内存的管理是有讲究的,系统区、用户区的访问需要不同的特权级,比如你要修改系统区的某些部分,你必须要获得0级特权,这时问题就有了,如果你轻易把代码交给一个程序并让他获得0级特权,则系统实际上出现了两个Kernel,我们下面会分析,由于整个Matrix的程序设计思想,使得这种方法极其危险,并且事实上,Smith就是这种设计思想带来的最大祸害。我们接着说,为什么机器把代码交给人,让人去升级,因为人具有自由意志,或者按我的说法,是一种“无限状态自动机”。Matrix连接人类,其实为自己提供了无限的升级可能。于是Matrix把代码存储在人那里,让人用自己的方法获得特权去读些所有的内存空间,这样比起用程序来,安全得多。下面我们就看看这是为什么。

Matrix的设计思想是严格的对象封装,一个人,一个Agent,一只鸟,乃至房子都是封装好的,并且区分了特权级。系统具有0级特权,读写所有内存,Agent具有1级特权,可以读写除系统内存以外的内存。这也是为什么他们可以把自己复制到另一个身上去的原因。人互相之间不能读些,只能通过一些通用接口互相连接。这里“人”也是不同的,有的人是一个现实世界的人通过接口在Matrix世界里的实现,另一些人则是Matrix虚拟出来的。为了使这些人感觉起来像人类,Matrix的计算模型是抢占式的多任务,所有的程序并发地争夺计算时间、存储空间及各种系统资源。这样很难保证系统的平衡,可是没关系,因为系统具有0特权级,系统时间是由他掌握并且分发的。Smith说掌握时间就掌握了一切,就是这个道理,程序之间的胜负,靠的就是计算时间的抢占。当Smith获得了0级特权,他就开始肆无忌惮地复制自己,分配计算时间,成为了事实上的另外一个Kernel,以至于威胁到了真正的Kernel的安全。可见,用程序升级程序是极端危险的,而人不会觊觎计算机的时间,他们是最安全的升级者。并且按前面的说法,由于人是无限状态自动机,他使得Matrix可以跳出窠臼,不断发展。

接下要来的Zion由于处在系统外部,比较难以理解。究竟他是系统的一部分,还是一个真正的独立反抗机构。从Archetect的话来看,Zion就像一个回收站,所有要删除的人都被暂时安放在里边,定期清空一次。而且似乎是为了升级系统而预留的,好让他们协助“The One”。这一点太过诡异,我还没能彻底想通。


最后,我们看看这一次,也就是第六次的升级过程中,Matrix里发生了什么。开始时,一直到第一集结尾,一切按部就班,Neo获得了0级权限,计算机准备消灭Zion,并让Neo为救Zion进入Kernel升级系统。如果没有Smith,事情的发展应该是这样,乌贼冲进Zion,玉石俱焚;Neo冲入Kernel,却发现其使自己别无选择的要成为一个牺牲者。然而系统出现了大错误,给了Smith系统最高权限。致命的错误使得系统不得不让Neo离开,注意,第二集里Neo选择救Trinity是计算机“让”他离开的,因为Smith逐渐变得不能控制,需要一个能够控制他的进程去消灭它。可是Neo却一直不能回到Matrix内部,此时系统的情况已经不可收拾,Smith占据大片内存空间,Kernel实际被挤到一个角落。可能你会问,为什么系统不直接删除Smith了事?这时大家可以想想杀毒软件是如何工作的。首先你必须获得病毒的特征码,然后再在系统中查找并且删除之,而这时系统根本没有Smith的特征码,想象一下,如果你被病毒搞到无计可施,你会怎么办?Format C:,对吧。Smith要的就是这个效果。

决战之前,Neo来到了Zero-One。计算机不得不定下城盟,实际也重新设置了一些系统参数,使得进攻Zion被放弃。Neo进入了Matrix,不断收集Smith的特征码。

Smith最终进入了Neo的内存空间,不断把自己复制过去,他没有想到的是,Neo这时候已经成了一个管道,就是Linux里头的"|"。他的代码完全被Kernel掌握。于是系统启动了Norton Antivirus 33432,扫描内存,杀杀杀!

这个世界清静啦…………

这就是我理解的Matrix体系结构。望高手指正。



-------------------------------回复----------------------------


回复1: 有意思    老潘 2003-12-23 22:32

呢!
您需要登录后才可以回帖 登录 | 注册必读

本版积分规则

小黑屋|手机版|Archiver|北京(LEAD)阳光志愿者俱乐部 ( 京ICP备13018722号-2 )  

GMT+8, 2024-9-21 19:55 , Processed in 0.016359 second(s), 14 queries , Apc On.

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表