一个完整的计算机系统,应由硬件及软件两大部分组成。
硬件(Hardware)通常泛指构成计算机的设备实体。例如,前面介绍的控制器、运算器、存储器、输入设备和输出设备等部件和设备,都是计算机硬件。一个计算机系统应包含哪些部件,这些部件按什么结构方式相互连接成有机的整体,各部件应具备何种功能,采用什么样的器件和电路构成,以及在工艺上如何进行组装等,都属于硬件的技术范畴。
软件(Software)通常泛指各类程序和数据。它们实际上是由特定算法及其在计算机中的表示(体现为二进制代码序列)所构成。计算机软件一般包括系统软件和应用软件。由计算机厂家提供、为了方便使用和管理计算机工作的软件(如操作系统、数据库管理系统等)称为系统软件;为解决用户的特定问题而编写的软件(如科学计算、过程控制、文字处理等软件)统称应用软件。
随着计算机硬件及软件技术的不断发展,硬件与软件也出现了相互补充、相互融合的发展方向。两者之间的划分界限也在不断改变着。原来由硬件实现的一些操作也可以改由软件来实现,称为硬件软化,它可以增加系统的灵活性和适应性;相反,原来由软件实现的操作也可以改由硬件来实现,称为软件硬化,它可以有效地发挥硬件成本日益降低的潜力,并显著降低软件在执行时间上的开销。从根本上来说,计算机的任何一种操作功能,既可以用硬件来完成,也可以用软件来完成,即通常所说的软件与硬件在逻辑上的等价性。对于一个具体的计算机系统来说,究竟是采用软件形式还是硬件形式来实现某一操作,要根据系统的价格、速度、灵活性以及生存周期等多方面因素来权衡决定。
现在,由于大规模集成电路技术的提高,人们已经着手把许多复杂的、常用的软件写入容量大、价格低、体积小的可擦除的可编程只读存储器(Erasable Programmable ROM,EPROM)或电可擦除的可编程只读存储器(Electrically Erasable Programmab le ROM,EEPROM)中,制成了“固件”(Firmware)。固件是一种介于软件与硬件之间的实体,其功能类似软件,其形态又类似硬件。它代表着软件与硬件相结合的一种重要形式。
要使计算机能够正常而有效地工作,不但必须有硬件设备的支持,而且也要有良好的软件环境的支持。一个计算机系统的组成如图2.5所示。
图2.5 计算机系统的组成