函数库与操作系统
在计算机诞生后不久,人们发现某些特定作业在许多不同的程序中都要被实施,比如说计算某些标准数学函数。出于效率考量,这些程序的标准版本就被收集到一个“库”中以供各程序调用。许多任务经常要去额外处理种类繁多的输入输出接口,这时,用于连接的库就能派上用场。
20世纪60年代,随着计算机工业化普及,计算机越来越多地被用作一个组织内不同作业的处理。很快,能够自动安排作业时续和执行的特殊软件出现了。这些既控制硬件又负责作业时序安排的软件被称为“操作系统”。一个早期操作系统的例子是IBM的OS/360。
在不断地完善中,操作系统又引入了时间共享机制——并发。这使得多个不同用户可以“同时”地使用机器执行他们自己的程序,看起来就像是每个人都有一台自己的计算机。为此,操作系统需要像每个用户提供一台“虚拟机”来分离各个不同的程序。由于需要操作系统控制的设备也在不断增加,其中之一便是硬盘。因之,操作系统又引入了文件管理和目录管理(文件夹),大大简化了这类永久储存性设备的应用。此外,操作系统也负责安全控制,确保用户只能访问那些已获得允许的文件。
当然,到目前为止操作系统发展历程中最后一个重要步骤就是为程序提供标准图形用户界面(GUI)。尽管没有什么技术原因表明操作系统必须得提供这些界面,但操作系统供应商们总是希望并鼓励那些运行在其系统上的软件能够在外观和行为特征上与操作系统保持一致或相似。
除了以上这些核心功能,操作系统还封装了一系列其他常用工具。其中一些虽然对计算机管理并无重大意义,但是于用户而言很是有用。比如,苹果公司的Mac OS X就包含视频剪辑应用程序。
一些用于更小规模的计算机的操作系统可能没用如此众多的功能。早期的微型计算机由于记忆体和处理能力有限而不会提供额外功能,而嵌入式计算机则使用特定化了的操作系统或者干脆没有,它们往往通过应用程序直接代理操作系统的某些功能。
应用
由电脑控制的机械在工业中十分常见
很多现代大量生产的玩具,如Furby,是不能没有便宜的嵌入式处理器
起初,体积庞大而价格昂贵的数字计算机主要是用做执行科学计算,特别是军用课题。如ENIAC最早就是被用作火炮弹道计算和设计氢弹时计算断面中子密度的(如今许多超级计算机仍然在模拟核试验方面发挥着巨大作用)。澳大利亚设计的首台存储程序计算机CSIR Mk I型负责对水电工程中的集水地带的降雨情形进行评估。还有一些被用于解密,比如英国的“巨像”可编程计算机。除去这些早年的科学或军工应用,计算机在其他领域的推广亦十分迅速。
从一开始,存储程序计算机就与商业问题的解决息息相关。早在IBM的第一台商用计算机诞生之前,英国J. Lyons等就设计制造了LEO以进行资产管理或迎合其他商业用途。由于持续的体积与成本控制,计算机开始向更小型的组织内普及。加之20世纪70年代微处理器的发明,廉价计算机成为了现实。80年代,个人计算机全面流行,电子文档写作与印刷,计算预算和其他重复性的报表作业越来越多地开始依赖计算机。
随着计算机便宜起来,创作性的艺术工作也开始使用它们。人们利用合成器,计算机图形和动画来创作和修改声音,图像,视频。视频游戏的产业化也说明了计算机在娱乐方面也开创了新的历史。
计算机小型化以来,机械设备的控制也开始仰仗计算机的支持。其实,正是当年为了建造足够小的嵌入式计算机来控制阿波罗宇宙飞船才刺激了集成电路技术的跃进。今天想要找一台不被计算机控制的有源机械设备要比找一台哪怕是部分计算机控制的设备要难得多。可能最著名的计算机控制设备要非机器人莫属,这些机器有着或多或少人类的外表和并具备人类行为的某一子集。在批量生产中,工业机器人已是寻常之物。不过,完全的拟人机器人还只是停留在科幻小说或实验室之中。
机器人技术实质上是人工智能领域中的物理表达环节。所谓人工智能是一个定义模糊的概念但是可以肯定的是这门学科试图令计算机拥有目前它们还没有但作为人类却固有的能力。数年以来,不断有许多新方法被开发出来以允许计算机做那些之前被认为只有人才能做的事情。比如读书、下棋。然而,到目前为止,在研制具有人类的一般“整体性”智能的计算机方面,进展仍十分缓慢。
网络、国际互联网
20世纪50年代以来计算机开始用作协调来自不同地方之信息的工具,美国军方的贤者系统(SAGE)就是这方面第一个大规模系统。之后“军刀”等一系列特殊用途的商业系统也不断涌现出来。
70年代后,美国各大院校的计算机工程师开始使用电信技术把他们的计算机连接起来。由于这方面的工作得到了ARPA的赞助,其计算机网络也就被称为ARPANET。此后,用于ARPA网的技术快速扩散和进化,这个网络也冲破大学和军队的范围最终形成了今天的国际互联网(Internet)。网络的出现导致了对计算机属性和边界的再定义。太阳微系统公司的John Gage 和 Bill Joy就指出:“网络即是计算机”。计算机操作系统和应用程序纷纷向能访问诸如网内其它计算机等网络资源的方向发展。最初这些网络设备仅限于为高端科学工作者所使用,但90年代后随着电子邮件和万维网(World Wide Web)技术的扩散,以及以太网和ADSL等网络连接技术的廉价化,互联网络已变得无所不在。今日入网的计算机总数,何以千万计;无线互联技术的普及,使得互联网在移动计算环境中亦如影随形。比如在笔记本计算机上广泛使用的Wi-Fi技术就是无线上网的代表性应用。
下一代计算机
自问世以来数字计算机在速度和能力上有了可观的提升,迄今仍有不少课题显得超出了当前计算机的能力所及。对于其中一部分课题,传统计算机是无论如何也不可能实现的,因为找到一个解决方法的时间还赶不上问题规模的扩展速度。因此,科学家开始将目光转向生物计算技术和量子理论来解决这一类问题。比如,人们计划用生物性的处理来解决特定问题(DNA计算)。由于细胞分裂的指数级增长方式,DNA计算系统很有可能具备解决同等规模问题的能力。当然,这样一个系统直接受限于可控制的DNA总量。
量子计算机,顾名思义,利用了量子物理世界的超常特性。一旦能够造出量子计算机,那么它在速度上的提升将令一般计算机难以望其项背。当然,这种涉及密码学和量子物理模拟的下一代计算机还只是停留在构想阶段。
计算机学科
在当今世界,几乎所有专业都与计算机息息相关。但是,只有某些特定职业和学科才会深入研究计算机本身的制造、编程和使用技术。用来诠释计算机学科内不同研究领域的各个学术名词的涵义不断发生变化,同时新学科也层出不穷。
计算机工程学 是电子工程的一个分支,主要研究计算机软硬件和二者间的彼此联系。
计算机科学 是对计算机进行学术研究的传统称谓。主要研究计算技术和执行特定任务的高效算法。该门学科为我们解决确定一个问题在计算机领域内是否可解,如可解其效率如何,以及如何作成更加高效率的程序。时至今日,在计算机科学内已经衍生了许多分支,每一个分支都针对不同类别的问题进行深入研究。
软件工程学 着重于研究开发高质量软件系统的方法学和实践方式,并试图压缩并预测开发成本及开发周期。
信息系统 研究计算机在一个广泛的有组织环境(商业为主)中的计算机应用。
许多学科都与其他学科相互交织。如地理信息系统专家就是利用计算机技术来管理地理信息。
全球有三个较大规模的致力于计算机科学的组织:英国电脑学会 (BCS);美国计算机协会(ACM);美国电气电子工程师协会(IEEE)