为了理解电脑是怎样工作的,我们做如下一个比喻:
令:别墅*************=电脑的硬盘
令:别墅里面的摆设***=电脑装的软件
令:雇佣的大管家*****=电脑的CPU
令:管家的工具箱*****=电脑的内存
在解释为啥这样比喻之前,我们首先来明白一个概念,所谓的“程序”也好、“病毒”也好,其实都是“软件”的一种,是程序员写的一些指令,说白了,“程序”实质上就是一种人与机器对话的语言。人们之间信息的交流通常是采用语言来完成的,这些语言包括:声音、文字、行为(哑语、使眼色也是一种行为语言)、图像(电视、烽烟信号)等。同样,人与机器之间交流信息也要需要语言,这种语言我们就定义为“程序”(台湾等有些地区称之为“程式”)。
同时,人们又根据人和机器对某种语言理解起来的难易程度,将这些语言分为“高级语言”、“汇编语言”和“指令代码”三类。其中,人最容易理解的是高级语言,同时,也是为我们一般程序员编程时用到的最广泛的一种语言,例如:C、C++、vB,Java,Delphi等等好多。汇编语言则是一种较为低级的语言,在上世纪七、八十年代计算机发展初期用的特别广泛,原因就是好多高级语言在当时还没出现或者还没发展起来。当然,这种语言理解起来特别生涩,不太容易为一般人掌握,所以,那时候作个程序员要比现在难的多。最后是“指令代码”,顾名思义,这种语言实际上就是一些“00011100111001……0001011”数字串,它是机器(我们的电脑)能够读懂的唯一的一种语言。前面无论你程序员写的高级或者汇编语言有多么好,如果不能将其变成这种“0”、“1”数字串,所有的工作都是白搭,机器都不认识。当然,在计算机发展初期,有些牛B的程序员是能够读这种“指令代码”的,不过,一般人都没那么牛B。你看黑客帝国中,那几个黑衣人经常的在屏幕中看这种“01”数字串,特别是在第一集的最后,那个neo居然能够根本不视对手的存在,直接将他解读成“………………0001111………………”数字串,寓意neo已经将对手彻底的看透了。总之一句话:凡是能看“01”数字串的人,都是牛B的人!这三种语言还存在这样一种关系:
高级语言--(汇编过程)---》汇编语言
汇编语言--(链接过程)---》指令代码
这实际上也就反应了人到底是怎样将信息传递给机器的。
再回到我们刚开始的话题上, 你买来一台好的电脑就好比你买了一栋不错的别墅(这里假设别墅本身已经配备了大官家,大官家自己也随身携带了工具箱)。刚开始,别墅里什么摆设家具也没有,显然,你还不能使用这栋别墅,所以,你买来了好多家具摆设,把别墅装点好(这点就像你买回电脑来往里装软件一样)。在这里,我们并不关心开始你是如何装点你的别墅的,我们把注意力放到了你是如何在大管家的帮助下维护你的别墅的,这点有点象平时如何维护你的电脑。
在这里我要对大管家的行为进行一些特殊的限制,这些限制是根据无生命的机器特性做的一些比喻。
首先,大管家只根据人的“声音指令”(主人发出的一些命令等)进行行事,而且不分这种声音指令是由谁来发出的(就好像CPU只能读懂指令代码,而且不管这种代码是由谁写的一样),同时,也不管这种声音指令对别人或者对别墅是否有害,只要他能够听懂,他就按照这种指令执行。例如,你让他去倒茶,他就会给你漆一杯茶过来,你让他去修剪草坪,他就会去修剪草坪;当然,如果你让他去把茶杯砸了,他就会把茶杯砸的一个不剩,你让他把草木铲了,你的别墅就会再也见不到一点绿色。所以,你在向管家发布命令的时候一定要非常小心。在实际操作电脑时,你也有这种体会,稍不注意,你有用的东西可能就被你给误删了,常常弄得你捶胸跺足。
其次,大管家他有个毛病,就是在行使每一个指令的时候一定要用上他的工具箱。他这个工具箱虽说挺大,但空间却是有限的。就拿刚才的倒茶来说,当他听到这个指令之后,他先到厨房里找到茶叶、热水、杯子等东西,然后放到工具箱里,沏茶的工作在工具箱里完成;再说修草坪,他也是先到库房里找到修草坪的工具放到他的工具箱里,然后再到草坪上去修草坪(这里要注意:沏茶和修草坪这个动作都要在他的工具箱里完成,你可能不理解他是把草拔起来,修完,再种好的嘛?不是的。总之,你要认为所有的工作都是在工具箱里完成,离了工具箱,大管家就不能工作了)。这点就像我们的电脑要执行一条命令,先到硬盘上去找所需要的东西,然后把这些东西发到内存里再往下执行一样。说完大管家不能离开工具箱这个特性之外,他还有第二个特性就是,干完一项工作,不用的工具要放到该放的位置去,把工具箱的空间给腾出来;当然,一些常用的工具可能总是在工具箱里。这样子,既可以充分利用工具箱的空间,减轻管家的负担,又可以减少管家来回取送一些常用工具的时间,提高工作效率。CPU在实际处理数据指令的时候也是如此,这里不多解释。这里要非常注意一点:当工具箱满的时候,大管家可不管三七二十一,立刻放弃所有的工作,直愣愣的站在那,啥也不干,可见及时的给工具箱腾地方是多么的重要(相当于电脑死机)!
这样差不多了,我们再做两个假设:有益的命令=正常的程序、有害的命令=“病毒”。无论是正常的程序还是有害的“病毒”,都是基于我刚才讲的那两条大管家的特性来得:一条惟命是从,一条满了工具箱啥也不干。细心的你可能会从这两条特性中发现一个问题:谁的优先级高?是的,懂计算机原理的人都知道后者的优先级要高于前者,也就是说,当工具箱满的时候,惟命是从这个特性也失效了。
(未完待续,今天晚上实在是写不出东西了:()
[此贴子已经被作者于2003-11-26 21:24:34编辑过]
|