[计算机概括(基础篇)]第一章:全景图
1.计算系统在本专栏中我们将探讨计算系统的方方面面本篇文章让我们先一起初步了解计算机的全景图吧。首先让我们先区分计算机和计算系统计算机是一种设备而计算系统则是一种动态实体用于解决问题以及与它所处的环境进行交互。计算系统由硬件、软件以及它所管理的数据构成。计算机硬件是构成机器及其附件包括机箱、电路板、芯片、显示器等的物理元件集合。计算机软件是提供计算机执行的指令的程序集合。计算机系统的核心是它管理的信息。如果没有数据硬件和软件都毫无用处。1.1 计算系统的分层计算系统就像一个洋葱由许多层构成让我们简单地以自顶向上方法从内到外讨论一下每个分层后续文章会详细讨论它们。最内层的信息层反映了在计算机上表示信息的方式是一个纯概念层采用二进制数字1和0管理。所以要理解计算机处理技术首先必须理解二进制数字以及它与其他数制的关系后续文章中我们会详细讨论。接下来的硬件层由计算机系统的物理硬件组成计算机硬件包括的设备有门和电路它们按照基本原理控制电流通过这些电路可以使计算机的硬件元件CPU、存储器等得以运转。程序设计层负责处理软件用于实现计算的指令以及管理数据。每台计算机都有操作系统用来管理计算机的资源如WindowsLinux 或 mac os。操作系统可以使我们与计算机系统进行交互管理硬件设备、程序和数据间的交互方式。了解操作系统是让我们理解计算机的关键。然后是应用层应用层的重点则是用计算机解决现实世界的问题我们可以通过运用应用程序在其他领域利用计算机的能力。当然我们可以使用计算机技术进行通讯通讯层则是计算系统操作基础层。计算机被连接在网上以共享信息和资源。1.2 抽象抽象abstraction是一种心理模型是一种思考事情的方式他删除或隐藏了复杂的细节抽象只保留实现目标所必须的信息而不去考虑那些使问题复杂化的不必要的信息。我们每天都在依赖抽象大量的实验表明人在短期记忆中可以同时管理大约7条信息MIller定律当我们需要其他信息时可以得到它但当我们集中于一条新信息时其他信息就会退到次要的地位。就好比我们知道引擎是如何工作的但是在开车时候却不必详细的考虑它。信息隐藏是和抽象相关的概念信息隐藏information hiding是一种使程序段独立的技术通过削减一个代码段的功能来获取其他代码段的信息。抽象是计算的关键计算机系统的分层体现了抽象的概念。抽象还以各种形式出现在各个分层中在我们后续的讨论中都会有抽象的影子。2.计算机历史计算机的发展历史是一段有趣的历史下面我们将进行简单的了解与学习。2.1 计算硬件简史1951年后计算机被越来越广泛的用来解决各个领域的问题从那时起探索的重点在于开发能让我们更有效的使用计算设备的工具从那时开始计算硬件的历史基于他们所采用的技术被分化为几个时代下面我们将进行简单的学习与讨论。2.1.1 第一代19511959第一代商用计算机使用真空管存储信息它会大量生热不是非常的可靠。使用真空管的机器需要重型空气调节装置以及不断维修此外它还需要巨大的专用房间。2.1.2 第二代19591965晶体管的出现标志着第二代商用计算机的诞生晶体管代替真空管成为计算机硬件的主要部分它比真空管更小更可靠更快寿命更长也更便宜。第二代计算机中还出现了既时存取存储器访问磁鼓上的信息时CPU必须等待读写头旋转到正确的位置。第二代计算机使用磁芯作为存储器这是一种微小的环形设备每个磁芯可以存储一位信息。磁盘是一种新的辅助存储设备也出现在第二代计算机硬件中它比磁带快因为使用数据项在磁盘上的位置就可以直接访问它。2.1.3 第三代19651971在第二代计算机中晶体管和其他计算机元件都被手工集成在印刷电路板上第三代计算机的特征是集成电路IC这是一种具有晶体管和其他元件以及它们的连线的硅片。集成电路比印刷电路板小更便宜更快并且更可靠。Intel公司的奠基人之一Gordon Moore注意到从发明IC起一个集成电路板上能够容纳的电路的数量每年增长一倍这就是著名的摩尔定律。终端带有键盘和屏幕的输入\输出设备便是在这一代计算机中出现的。键盘使用户可以直接访问计算机屏幕则可以提供立即的响应。2.1.4 第四代1971年至今大规模集成化是第四代计算机的特征。每一代计算机硬件的功能都变得越来越强大体积则越来越小花费也越来越少摩尔定律也被改为芯片的集成度每18个月增长一倍。在这个时代开始出现了个人计算机PC这个词第四代计算机进入商业市场后也出现了一些全新的名字如Apple、Sun等公司。在个人计算机革命的浪潮中最为人称道的成功故事是关于Apple公司的由史蒂夫乔布斯和史蒂夫沃兹尼亚克共同创建了一个个人计算机工具包而且把它从车库推向了市场车库就是Apple这个拥有数10亿资产的公司的起源。Steve jobs也成为了许多人的偶像20世纪80年代中期出现了更大型功能更强大的机器工作站它通常用于商业用途而不适用于个人。创建工作站的理念是为了把雇主自己的工作站放在一个桌面上这些工作站由线缆连接在一起被连网了以便他们能够彼此相互交互。2.1.5 并行计算20世纪80年代末尽管使用单处理器的计算机仍然盛行但是新的机器体系结构出现了使用并行体系结构的计算机依靠的是一套互相连接的中央处理器。一种并行机器的组织结构是所有处理器共享同一个存储单元另一种组织结构是每个中央处理器具有自己的本地存储与其他处理器通过高速内网进行通信。并行体系结构提供了几种加快执行速度的方法。例如把程序中的一步操作分成多个片段在几个独立的处理器上同时执行这些程序片段这种机器被称为SIMD单指令多数据流计算机。第二种机器可以同时运行程序的不同部分这种机器被称为MIMD多指令多数据流计算机。2.1.6 连网20世纪80年代多用户大型机的概念被小型机器连接成的网络替代这些小型机器通过联网共享打印机软件与数据等资源。工作站的设计是为了联网但是直到1985年生产出了更高级的Intel芯片才能够对个人计算机进行联网。到1989年才出现文件服务器把PC连接在一起。把工作站或PC连接成网络就形成了LAN局域网。Internet使用包交换的方法共享信息但是internet由分布在世界各地的不同网络组成这些网络之间采用通用的TCP\IP传递控制协议网际协议协议通信。2.1.7 云计算通过云计算企业可以在网络交互页面通过使用一些命令在几分钟内运作一个新的服务器这个过程如今变得越发流水线许多企业甚至不需要考虑拥有和管理他们自己的计算硬件。2.2 计算软件简史了解软件进化的方式对理解软件在现代计算系统中是如何运行的至关重要接下来让我们一起简单了解软件的发展史。2.2.1第一代软件19511959第一代程序是用机器语言编写的所谓机器语言就是内置在计算机电路中的指令二进制指令0和1。后来有些程序员就开发了一些工具辅助程序设计因此第一代人工程序设计语言出现了这些语言被称为汇编语言它们使用助记忆码表示每条机器语言指令。由于每个程序在计算机上执行时采用的最终形式都是机器语言所以汇编语言的开发者还创建了一种翻译程序可以把汇编语言编写的程序翻译成机器代码。2.2.2 第二代软件19591965第二代软件见证了更强大的语言开发使用高级语言程序员就能够用类似于英语的语句编写指令。第二代软件时期开发的两种语言目前仍然在使用他们是为FORTRAN数字应用程序设计的语言和COBOL为商业应用程序设计的语言。高级语言的出现为在多台计算机上运行同一个程序提供工具每种高级语言都有配套的翻译程序这种程序可以把高级语言编写的语句翻译成等价的机器码指令这样的翻译程序被称作编译器它还用来检查高级语言的语法是否被正确执行。2.2.3 第三代软件1965 ~ 1971在这个阶段计算机面临着一个尴尬的问题运算速度太快了但输入输出太慢了。计算机经常要停下来等待数据这简直是资源的浪费。为了解决这个问题人们编写了一种程序来接管计算机的资源决定什么时候运行什么任务。这就是操作系统的雏形。它把实用程序、语言翻译程序汇编器和编译器统一管理起来让机器运转得更高效。随着终端设备的出现用户开始通过键盘和屏幕与计算机交互。但这又带来了新问题输入输出太慢拖累CPU怎么办解决方案是“分时”。简单来说就是让许多用户通过各自的终端同时连接一台计算机。操作系统会把CPU的时间切成极小的片段轮流分配给每个用户。因为切换速度极快每个用户都感觉自己独享了一台机器。这一时期也出现了像SPSS这样的多用途应用程序包让非程序员也能进行复杂的统计计算。2.2.4 第四代软件1971 ~ 1989进入70年代软件开发开始追求更好的逻辑和规则个人电脑也开始走进大众视野。为了写出更清晰、更易维护的代码结构化程序设计方法诞生了。Pascal、Modula-2以及升级版的BASIC都是这一时期的代表。C语言和C也在此期间出现允许用户在高级语言中嵌入低级指令成为了业界的标准选择。Apple公司在Macintosh机中引入了鼠标和点击式图形界面彻底改变了我们操作电脑的方式。与此同时UNIX系统成为大学的标准配置而PC-DOS和MS-DOS则统治了IBM PC及其兼容机市场。此时代即使不懂编程普通人也能买现成的软件来干活了。三大典型的应用软件包诞生了- 电子制表软件 Lotus 1-2-3让数据分析变得简单。- 文字处理软件 WordPerfect后来被Microsoft Word超越。- 数据库管理系统 dBase IV用于存储和组织数据。2.2.5 第五代软件1990年至今这是我们最熟悉的时代也是互联网爆发的时代。这一时期有三个标志性事件微软的崛起、面向对象编程的普及以及万维网的诞生。Microsoft的Windows操作系统确立了PC市场的霸主地位。更重要的是他们将文字处理、电子表格、数据库整合在一起推出了Office办公套件定义了现代办公的标准。1990年Tim Berners-Lee发明了万维网让互联网信息共享变得极其简单。随之而来的是浏览器的争夺战- Mosaic 第一个能显示图形的浏览器。- Netscape Navigator 早期霸主。- Internet Explorer (IE) 微软通过将IE与Windows捆绑赢得了大战但也因此引发了反垄断诉讼。- Firefox, Safari, Chrome 后来的挑战者相继入场形成了如今百花齐放的局面。第五代软件最重要的特征是“用户”定义的泛化。从最初只有极少数人懂编程到后来系统程序员为应用程序员造工具再到如今——无论你是写论文的大学生、做预算的家庭主妇还是查信贷记录的银行职员甚至是一年级的小学生我们都是“计算机用户”。互联网冲浪已成为一种生活方式社交网络和维基百科让每个人都成为了内容的创作者。这就是本篇的内容在后续文章中我们将会一起学习计算系统的其他详细内容。由于作者知识浅薄难免会出现一些错误希望大家可以帮忙指出谢谢大家。参考资料《计算机科学概论 【美】Nell Dale 和 John Lewis著》从真空管到量子比特计算机的进化史是人类用理性与浪漫书写的科技史诗。