前言 本书第1版是“十五”期间参照教育部高等学校计算机科学与技术教学指导委员会编制的《高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)》(后简称《规范》)的附录2.4A和2.4B的内容编写的。“计算机系统平台”是《规范》中信息技术专业方向的建议课程之一。 按照《规范》的建议,“计算机系统平台”这门课程的前导课程有“信息技术概论”、“信息技术应用数学入门”和“程序设计与问题求解”,后续课程有“计算机网络与互联网”、“Web系统与技术”、“应用集成原理与工具”和“系统管理与维护”等。开设“计算机系统平台”课程的时间最早可以安排在一年级下学期,比较合适的是二年级上学期,但不要晚于二年级下学期。这是我们编写本书时考虑的一个基本定位。 本书虽然是针对信息技术专业方向编写的,但是在十余年的教学过程中,编者也将其作为数字媒体技术专业的计算机基础课程教材,即本书也适用于以计算机技术为基础,需要掌握计算机系统的基础知识,但不需要对计算机系统本身进行研究的与数字媒体技术专业相似或对计算机基础知识需求相近的其他学科的基础课,作为一门综合类基础课程替代“计算机组成原理”“操作系统原理”以及“计算机网络”等课程。 本书力求内容的实用性。这种实用性不仅体现在着重于基本概念及其关系的描述而不进行过多的细节讨论上,而且体现在问题引导的陈述方式上。在这种方式下,一些关键技术产生时的实际问题背景得到了强调,从而有可能促进学生的思考,加深对技术的理解。我们追求内容深度和广度的平衡,以及表述的简洁和严谨。读者也许能体会到,本书在总体上具有可读性的同时,有些内容需要仔细推敲才能真正读懂,即使没有完全懂也不会影响后续内容的学习。 以“计算机系统平台”为书名的教材目前还不多见。可以说这正是信息技术方向教学内容的一个特色。按照《规范》,信息技术方向的基本目标是围绕社会中各种组织机构(以及个人)的信息化需求,通过对计算技术的选择、应用和集成,创建优化的信息系统并对其运行实行有效的技术维护和管理。我们理解,“系统集成”是上述文字蕴涵的一个要义。所谓系统集成,大致上说就是让各种相关技术协同发挥作用以实现某种功能或目标的过程。如何进行有效的系统集成?过去几十年来人们的实践表明,根据普遍的需求构建通用的平台,让满足特殊需求的系统集成在这样的平台上运行,是一条行之有效的技术路线。 那么,到底什么是平台?一般地讲,平台就是满足一类事物的共同需求,能够使那些事物方便地在其上形成、存在、运行与展现的基础设施。在生活中,火车站的月台就是一个平台,它支持各种火车的停靠、加水加油、旅客的上下车等。在工程中,造船厂的船坞就是一个平台,如果没有它上面的各种基本设施,一条船的建造不是不可能,但会麻烦很多。在计算机中,打开机箱看到的上面有一个个插槽的主板就是一个平台,借助于它,就能够方便地构成各种配置的计算机。我们常常听到的软件开发平台也是这个意思,即一整套基础软件工具和环境,可能是通用的(例如Java),也可能是专用的(或者说面向领域的,例如WebLogic),使得开发软件变得容易。当谈到软件的时候,常常要区别“软件开发平台”和“软件运行平台”,有些只是开发平台(例如C语言编译器),而有些则只是运行平台(例如操作系统),还有些则二者兼任(例如整个Java体系)。 根据信息技术方向的定位,本书不讨论计算机系统平台构建,而是从不同的角度或层面观察计算机系统平台,了解并掌握它们所提供的支撑功能,知道我们能在上面做哪些事情。当然,本书也会扼要地介绍一些典型功能实现的基本原理,目的是让读者能够更好地理解和使用计算机系统平台。 本书分为5篇,共8章。 第1篇包含第1章,介绍计算机操作平台,基本出发点是解答这样的问题: 当我们购买了一台计算机,上面已经安装了操作系统,但还没有任何应用程序,此时能做些什么呢?不同类型的用户能做的事情有所不同。普通用户能做的就是进行各种配置以及安装所需的应用软件;对于具有程序开发能力的用户,还可以直接利用操作系统提供的函数编写程序。这一篇的目的就是在不涉及实现细节的情况下使读者对操作系统形成一个初步但切实的概念。 第2篇包含第2、3章,介绍计算机的硬件组成和计算机中信息的表示。由于本书的定位不在于使读者对计算机原理有系统的了解,这一篇主要是结合PC的结构,从应用的角度对硬件加以介绍。在信息表示方面也类似,主要介绍二进制和典型信息在计算机中的编码,使读者建立这样的概念: 任何形式的信息都可以用0、1字符串编码。这一篇是学习和理解操作系统功能实现原理的必备硬件知识。 第3篇包含第4、5章,介绍计算机软件平台。第4章介绍操作系统功能实现的基本原理以及Shell编程,前者的目标在于加深读者对操作系统运行过程的理解,后者的目标在于加深读者对操作系统作为一个平台所提供的功能的理解。第5章是对应用软件开发平台的简要介绍。具体的应用软件开发平台有很多,第5章从平台的概念出发,介绍它们的共性内容,即它们一般能为程序员提供的工具和功能,包括集成环境、预先实现的应用程序库接口等。 第4篇包含第6、7章,介绍计算机网络平台。第6章从平台角度介绍计算机网络为用户提供了怎样的服务以及这些服务的实现细节,主要目标是通过典型的网络服务使读者理解网络平台的作用。第7章介绍网络平台基础知识,目标是通过这些必要的基础知识使读者对网络本身的架构和实现有基本的理解。一些网络基础服务也在这一章中介绍,因为它们的作用是为其他服务提供基础支持,所以也可以看作网络基础知识。这一篇的重点不是系统介绍网络实现的原理,也不是详细介绍各种网络应用的功能,而是从网络使用和维护的角度介绍所涉及的各种配置及其功能表现的机制和基本原理。 第5篇包含第8章,将视野拓宽,介绍在企业和机构中常会用到的大型服务器和集群的相关概念,以及路由器和交换机等网络互联设备。另外,按照《规范》的要求,信息技术方向的学生应该在大型计算机设施的运行和维护方面具有竞争力,为此,第8章特别对机房设施及其相关要求进行了介绍。如果将本书用作数字媒体技术等专业的教材,则可以忽略第8章的内容。 本次修订更新了一些内容。例如,第1章中增加了最新国产操作系统的介绍,第2章中更新了相关硬件最新技术,第5章更新了部分开发平台信息及框架,第8章(第1版的第9章)更新了部分标准以及最新的硬件状况。本次修订还更正了个别错误。另外,第5章删去了关于系统启动的内容,这是因为计算机启动技术目前正处于更新换代之际,旧的技术已经弃用,新的技术还没有稳定。第1版第5章原有的Shell编程内容移入第4章的最后,以使读者加深对操作系统功能实现的理解。第6章(第1版的第7章)完善了网络应用程序体系结构的内容,增加了Web服务的内容,如AJAX、HTML5等,以便读者能够更加全面地了解Web服务的整体构成,为理解Web服务的实现提供基础支持。第7章(第1版的第8章)增加了OSI参考模型各层功能,以及数据在网络中的处理传输过程的介绍,还增加了网络通信编程基础的内容,即Socket编程,并为此介绍了传输层的功能,以便读者能够很好地理解Socket编程接口,为学习网络编程或者理解网络程序提供基础支持。 如同《规范》中所论述的那样,信息技术是当代计算机学科发展的一个重要方向,计算机平台技术是该方向的一个核心内容。然而,如何根据信息技术的人才培养定位编写出一本这样的教材,对我们是一个挑战。本书的构思来源于对《规范》中信息技术方向的理解,基本内容主要来自编者多年讲授计算机相关课程的教学实践。编者根据《规范》的要求进行了调整,同时针对十余年使用过程中的问题进行了修订。尽管如此,限于编者的学识以及对信息技术人才知识结构的理解水平,书中可能存在不妥之处,恳请读者不吝指正。同时编者也意识到,将原本分散在传统计算机专业的几门课中的内容抽取出来,形成一门独立的课程,对教师也是一个挑战。欢迎使用本书的教师也能与编者交流自己讲授课程的体会和经验。 编者2024年5月