网络对抗的前世今生
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

冯·诺依曼体系结构为计算机安全埋下隐患

所谓程序,就是计算机能够识别和执行的指令;编程,就是通过某种方式,编写出一系列计算机能执行的指令。

接下来的几个月,冯·诺依曼以顾问的身份,和设计团队就如何改进计算机设计的问题,进行了深入讨论。冯·诺依曼指出,新的计算机应该具备将程序存储起来的能力,而不能再依靠调整连接线的机械方式进行编程。

1945年,冯·诺依曼关于计算机体系结构的思考基本成形了,于是他在6月30日,与戈德斯坦、勃克斯等人联名发表了计算机历史上非常著名的“101页报告”,即First Draft of a Report on the EDVAC,开创性地提出了“存储程序控制”体系结构,被称为冯·诺依曼体系结构(见图1-3)。

从那时起,直到今天,我们使用的几乎所有的计算机,采用的都是冯·诺依曼体系结构。冯·诺依曼提出,除了运算器和控制器,存储器也应该是计算机的核心部件。他受到生物学家对人类大脑组织结构研究的启发,使用了记忆(Memory)这个词,而不是传统的储藏室(Storage)这个词,来命名计算机的存储器。

图1-3 冯·诺依曼体系结构

冯·诺依曼提出,计算机的存储器应该既可以保存数据,也可以保存程序。而所有数据,以及描述如何操纵这些数据的程序,都应该采用二进制数字“0”和“1”的形式,串行存储在计算机的存储器中,在控制器的调度下一批接一批地送到运算器中处理。

这样一来,当人们需要重新编程时,就不需要再像埃尼亚克那样,改变计算机的结构和各单元之间的连接线,而只需要将新的程序代码连同新的操作数据送入存储器,计算机就会自动按照新的程序去执行。

冯·诺依曼体系结构彻底解决了一直以来困扰计算机设计者们的“重新编程非常麻烦”的问题,从此以后,计算机就可以用电子而非机械的方式来存储并修改程序了。

随后,冯·诺依曼再接再厉,提出了新的编程方法,发明了用于描述算法的程序流程图。

在短短的一两年内,冯·诺依曼不仅明确了现代电子计算机的顶层体系结构,推动了硬件与软件相分离的设计理念,还一手创造了“软件编码”这个新的技术领域,催生了计算机程序员,也就是我们现在常说的“码农”这个行当。从此之后,计算机的用户可以先在自己的办公室里面,把程序编出来,然后送到计算机上运行。

然而,冯·诺依曼体系结构并没有充分考虑安全防护的问题,为计算机埋下了“深入骨髓”的安全隐患。有人提出,既然数据和程序都是以“1”和“0”的形式串行存储在存储器中的,如果有人恶意混淆这两者,在输入数据时用数据覆盖程序,从而改变程序的运行,那么会出现怎样的结果呢?

在那个年代,人们对数学计算的需求如此强烈和迫切,以致对这些一时还看不出什么严重后果的“小问题”,并没有放在心上。埃尼亚克面世后,一系列按照冯·诺依曼体系结构设计的现代计算机产品陆续登场,计算机的使用范围也逐渐由弹道计算等军事领域,拓展到科学研究等民用领域。

现代电子计算机,以其前所未有的运算速度、前所未有的运算精度、前所未有的应用广度,在科学界掀起了一阵旋风。

计算机时代来临了。