第三章

书名:
大学计算机信息技术教程
作者:
张福炎,孙志挥编著
本章字数:
289870
更新时间:
2023-09-25 12:48:58

10241280~21024-1

(约1.8×10308)网上银行使用的U盾中数字证书所含的公钥(有些使用2048位)

(2) 带符号整数

带符号的整数必须使用一个二进位作为其符号位,一般总是最高位(最左面的一位),“0”表示“+”(正数),“1”表示“-”(负数),其余各位则用来表示数值的大小。例如:

00101011=+43,10101011=-43

可见,8个二进位表示的带符号整数其取值范围是-127~+127(-27+1~+27-1),16个二进位表示的带符号整数其取值范围是-32767~+32767(-215+1~+215-1),n个二进位表示的带符号整数其取值范围是-2n-1+1 ~ +2n-1-1。

上面的表示法称为“原码”,它虽然与人们日常的习惯比较一致,但由于数值“0”有两种不同表示(“1000…00”与“0000…00”),且加法运算与减法运算的规则不统一,需要分别使用加法器和减法器来完成,增加了计算机运算器的复杂性。为此,数值为负的整数在计算机内不采用“原码”而都采用“补码”进行表示。

负数使用补码表示时,符号位也是“1”,但绝对值部分的表示却是对原码的每一位取反后

再在末位加“1”所得到的结果。例如:

(-43)原=10101011

绝对值部分每一位取反后为:11010100

末位加“1”得到:(-43)补=11010101

有趣的是,采用原码表示整数0时,有“1 000…00”与“0 000…00”两种表示形式。但在补码表示法中整数0唯一地表示为“0000…00”,而“1000…00”却被用来表示负整数-2n-1(n表示位数)。正因为如此,二进制补码可表示的数的个数比相同位数的原码多一个(见表12)。

表12三种整数表示方法和取值范围的比较

8位二进制代码无符号整数的值带符号整数的值(原码)带符号整数的值(补码)

00000000000

00000001111

……………………

01111111127127127

10000000128-0-128

10000001129-1-127

……………………

11111111255-127-1

注意,无论采用原码还是补码表示,正整数的编码都是相同的,只有负整数采用原码或补码才有区别。采用补码表示负数后,无符号整数和带符号整数的加法和减法运算就可以统一使用相同的加法器来完成,具体方法请参考有关计算机组成原理

方面的教材,这里不再介绍。

为了适应多种不同的应用需求,同一台计算机可处理的整数往往有多种类型。以当前主流的PC和智能手机产品为例,它们使用的CPU除了有几种不同长度的无符号整数之外,带符号整数也有三种不同的长度。表13是它们的格式、二进位长度及可表示的数值范围。

表13三种带符号整数

整数类型格式数值范围

16位整数16个二进位,补码表示-215~215-1(-32768~32767)

短整数32个二进位,补码表示-231~231-1(-2147483648~2147483647)

长整数64个二进位,补码表示-263~263-1(-9223372036854775808~

9223372036854775807)

(3) 浮点数

实数通常是既有整数部分又有小数部分的数,整数和纯小数只是实数的特例。例如56.721、-1894.0456,0.0034756,872等都是实数。由于实数的小数点位置不固定,实数在计算机中也称为“浮点数”。

浮点数由两部分组成,第1部分是“指数”(也称为“阶码”,它是一个整数,用于指出2的多少次幂),第2部分是“尾数”(这是一个小数),两者相乘即为该实数的值。

为了在不同计算机之间交换数据,1985年美国电气与电子工程师协会(IEEE)制订了有关浮点数表示的工业标准IEEE754,现已被绝大多数计算机所采用。IEEE754浮点数有32位(单精度浮点数)、64位(双精度浮点数)、80位(扩充精度浮点数)等几种不同的格式。

浮点数的优点是可表示的数值范围很大。在字长相同的情况下,浮点数比定点数(整数)可表示的数值范围要大得多。网上购物时,商品的单价、总价、运费、订单总价、实付款等都用浮点数表示。大量的科学、工程计算及财务处理等均使用浮点数运算完成,人工智能中的机器学习算法就需要进行大量的浮点运算。

实数用浮点数表示时大多数情况都是近似的,浮点数的四则运算也存在一定误差,运算结果与理论计算结果并不都完全一致。

研究如何有效使用计算机求数学问题近似解方法及理论的学科称为“数值计算”,其内容包括数值逼近、数值微分和数值积分、数值代数、最优化方法、常/偏微分方程数值解法、积分方程数值解法、计算几何、计算概率统计等,当今几乎所有工程及科学领域都离不开数值计算。

2. 文字符号的表示

日常使用的书面文字由一系列称为“字符”(character)的书写符号所构成。常用字符的集合叫作“字符集”。字符集中的每一个字符在计算机中各有一个代码(即字符的二进位表示),它们互相区别,构成了该字符集的代码表,简称码表。

西文字符集由拉丁字母、数字、标点符号及一些特殊符号所组成。目前计算机中使用得最广泛的西文字符集及其编码是ASCII字符集和ASCII码,即美国信息交换标准码。它已被国际标准化组织(ISO)批准为国际标准,在全世界通用。基本的ASCII字符集共有128个字符,包括96个可打印字符(常用的字母、数字、标点符号等)和32个控制字符,每个字符使用7个二进位进行编码(叫作标准ASCII码)(参见表14)。

表14ASCII字符集及其代码表

字符二进制

表示十六

进制字符二进制

表示十六

进制字符二进制

表示十六

进制字符二进制

表示十六

进制

32个

000000000空格010000020@100000040'110000060

000000101!010000121A100000141a110000161

000001002"010001022B100001042b110001062

000001103#010001123C100001143c110001163

000010004$010010024D100010044d110010064

000010105%010010125E100010145e110010165

000011006&010011026F100011046f110011066

000011107`010011127G100011147g110011167

000100008(010100028H100100048h110100068

000100109)010100129I100100149i110100169

00010100A*01010102AJ10010104Aj11010106A

00010110B+01010112BK10010114Bk11010116B

00011000C,01011002CL10011004Cl11011006C

00011010D-01011012DM10011014Dm11011016D

00011100E.01011102EN10011104En11011106E

00011110F/01011112FO10011114Fo11011116F

0010000100011000030P101000050p111000070

0010001111011000131Q101000151q111000171

0010010122011001032R101001052r111001072

0010011133011001133S101001153s111001173

0010100144011010034T101010054t111010074

0010101155011010135U101010155u111010175

0010110166011011036V101011056v111011076

0010111177011011137W101011157w111011177

0011000188011100038X101100058x111100078

0011001199011100139Y101100159y111100179

00110101A:01110103AZ10110105Az11110107A

00110111B;01110113B[10110115B{11110117B

00111001C<01111003C\10111005C|11111007C

00111011D=01111013D]10111015D}11111017D

00111101E>01111103E^10111105E~11111107E

00111111F?01111113F_10111115F删除11111117F

虽然标准ASCII码是7位的编码,但由于字节是计算机中最基本的存储和处理单位,故一般仍使用一个字节来存放一个ASCII码。此时,每个字节中多余出来的一位(最高位)在计算机内通常保持为“0”。

中文的基本组成单位是汉字。我国汉字的总数超过6万字,数量大,字形复杂,同音字多,异体字多,这给汉字在计算机内部的表示与处理带来一定困难。有关汉字和其他国家与地区文字符号的编码在本书第5章再作介绍。

3. 图像等其他信息的表示

图像在计算机中的表示要比字符更复杂一些。为了在计算机中表示一幅图像,首先必须把图像离散成为M列、N行,这个过程称为图像的取样,取样后的图像分解成为M×N个取样点,每个取样点称为图像的1个像素。彩色图像的像素通常由红、绿、蓝(R、G、B)三个基色(分量)组成,灰度图像和黑白图像的像素只有一个亮度分量。像素的每个分量均采用无符号整数来表示。

以黑白图像为例,像素只有“黑”与“白”2种。因此每个像素只需要用1个二进位即可表示。图14是黑白图像在计算机中如何表示的一个例子。有关灰度图像和彩色图像在计算机中的表示方法将在第5章再作详细介绍。

图14黑白图像在计算机中的表示

其他形式的信息如声音、视频、温度、压力、运动等都可以使用比特来表示。即使是指挥计算机工作的程序,也是使用比特表示的。总之,只有使用比特表示的信息计算机才能进行处理和存储。所以,计算机中所存储和处理的都是二进位信息。

需要强调的是,为了在不同计算机之间进行信息的交换,计算机中信息的表示格式不能自行其是,必须遵循一定的规范或标准。数值、文字、图像、声音、动画等在计算机中的表示方法均有国际标准,一些国家和地区还制订了自己的国家标准或地区标准,有些国际知名的大公司还有其自己的公司标准。

1.2.4比特的运算

各种类型的信息在计算机中都使用比特(二进位)表示,因此,信息的处理在计算机中都通过比特的运算来完成。

1. 基本逻辑运算

比特的取值只有“0”和“1”两种,这两个值不完全是数量上的概念,很多情况下它只是表示两种不同的状态。在计算机中,电位的高或低、脉冲的有或无经常用来表示“1”或“0”。在人们的逻辑思维中,

命题的真或假(对或错)也可以用“1”或“0”来表示。

为了对二进制信息进行各种处理(包括加、减、乘、除等),需要使用逻辑代数这个数

学工具。逻辑代数是英国数学家乔治·布尔(George Boole)在19世纪中叶提出的,也称为

尔代数。逻辑代数中最基本的逻辑运算有三种:逻辑加(也称“或”运算,用符号“OR”

“∨”或“+”表示)、逻辑乘(也称“与”运算,用符号“AND”“∧”或“·”表

示)以及取反(也称“非”运算,用符号“NOT”或“-”表示)运算。它们的运算规则如

下:

(逻辑加)

∨0

00

∨1

11

∨0

11

∨1

(逻辑乘)

0∧

00

∧1

01

∧0

01

∧1

取反运算最简单,“0”取反后是“1”,“1”取反后是“0”。

当两个多位的二进制信息进行逻辑运算时,它们按位独立进行,即每一位不受同一信息的其他位

影响。例如,两个4位的二进制信息0101和1100进行逻辑加和逻辑乘的结果分别为:

0101

∨1100

1101

0101∧1100

0100

而对0101、1100进行取反之后,其结果分别为1010和0011。

2. 逻辑运算的实现

最初,逻辑运算是使用开关电路来实现的。如图15所示,假设开关接通表示“1”,断开表示“0”,灯泡亮表示“1”,暗表示“0”,那么,把A、B两个开关串联在一起就实现了“与”运算,并联在一起就实现了“或”运算,如果开关A按(c)那样连接,就实现了“非”运算。

图15使用开关电路实现逻辑运算

但是,用机械开关或机电式开关(如继电器)实现逻辑运算时,它的操作速度太慢,而且工作也很不可靠。20世纪40年代出现了晶体管。晶体管在控制端G的控制下,可以工作在两种状态(图16):A与B导通状态或者A与B绝缘状态,效果相当于图15中开关的接通或断开。这样,晶体管就成了一个电子开关。由于没有任何机械动作,它以电子运动的速度进行工作,所以速度极快(开关速度可以高达每秒几十亿次)。这也是为什么计算机可以高速度进行信息处理的根本原因所在。

图16MOS晶体管是一种电子开关

用几个晶体管连接起来可以实现各种基本逻辑运算,这样的电路称为“门”电路。若干门电路可组合成运算器,高速完成各种算术逻辑运算。计算机中的CPU芯片就是由数以千万计的门电路组成的,有关介绍可参看阅读材料之1.2。

1.2.5小结

在计算机、手机和其他数码设备中为什么要采用数字技术呢?这与使用比特表示信息的诸多优点

紧密相关。

首先,比特只有0和1两个符号,使用有两个稳定状态的电路就可以表示和存储二进位信息,

而制造双稳态的电路要比制造有多个稳定状态的电路容易得多,并且很容易实现高速处理。

其次,二进位的运算规则很简单,通过一些基本的门电路就能把二进制数的算术运算与非数

值信息的逻辑运算联系在一起,实现统一的处理。

第三,使用二进位不仅能表示数值信息,而且能表示文字、符号、图像、声音等多种不同形

式的信息。由于均使用比特作为其基本单位,它们可以很方便地相互组合,形成文字

、图像、声音、数据等复合在一起的所谓“多媒体”。有关这方面的内容本书将在第5章中

进行介绍。

第四,信息使用比特表示以后,可以通过多种方法进行“数据压缩”,即使用更少的比

特来表示同样的文字、声音或视频信息,有效地降低信息传输和存储的成本。

第五,在传输或者存储信息时,由于信道的噪声或存储器的缺陷往往会引起信息出错。使用

比特表示信息之后,只要再附加一些额外的比特,就能够发现甚至纠正信息传输和存储过程

中所产生的错误,大大提高了信息系统的可靠性。

使用比特来表示信息还有其他一些优点,这里暂不一一细述。总之,使用以比特为核心的数

字技术来构造和开发各种信息设备和系统是信息技术发展的总趋势,也是信息技术发展的一种必

然。

复习题

(1) 什么是比特?比特是如何表示和存储的?

(2) 存储器容量有哪些常用的度量单位?内存(主存)容量和外存(辅存)容量的度量单位有何差别?

(3) 二进制数与十进制、八进制、十六进制数如何相互转换?

(4) 无符号整数的表示范围如何确定?它有哪些应用?

(5) 什么是ASCII字符集?ASCII字符是怎样表示和存储的?

(6) 比特的基本逻辑运算有哪几种?什么是“与”运算、“或”运算和“非”运算?

1.3微电子技术简介

1.3.1微电子技术与集成电路

微电子技术是信息技术领域中的关键技术,是发展电子信息产业和各项高技术的基础。微电

子技术的飞跃发展,为电子信息技术的广泛应用开辟了广阔的道路。

微电子技术是实现电子电路和电子设备微型化的技术,其核心是集成电路芯片(简称芯片)。早期的电子技术以真空电子管为基础元件[图17(a)],在这个阶段产生了广播、电视、无线电通信、电子仪表、自动控制和第1代电子计算机。19

48年晶体管[图17(b)]的发明,再加上印制电路组装技术的使用,使电子电路在小型

化方面前进了一大步。集成电路(IC)是20世纪50年代出现的,

它以半导体单晶片作为材料,经平面工艺加工制造,将大量晶体管、电阻、电容及连线构成的电子线路集成在基片上,构成一个微型化的电路或系统[图17(c)(d)]。现

代集成电路使用的半导体材料主要是硅,也可以是化合物半导体如砷化镓等。

图17电子管、晶体管与集成电路

集成电路根据它所包含的电子元件(如晶体管、电阻、电容等)数目可以分为小规模、中规模、大规模、超大规模和极大规模集成电路。集成度(单个集成电路所含电子元件的数目)小于100的集成电路称为小规模集成电路(SSI);中规模集成电路(MSI)的集成度在100~3000个电子元件之间;大规模集成电路(LSI)的集成度在3000~10万之间;超大规模集成电路(VLSI)集成度一般达10万~100万个电子元件;超过100万个电子元件的集成电路称为极大规模集成电路(ULSI)。通常并不严格区分VLSI和ULSI,而是统称为VLSI。中、小规模集成电路一般以简单的门电路或单级放大器为集成对象,大规模集成电路则以功能

部件、子系统为集成对象。现在计算机、手机、数码相机等电子设备中使用的微处理器、存储器、图形加速芯片等都是超大

规模和极大规模集成电路。

集成电路按照所用晶体管结构、电路和工艺的不同,主要分为双极型集成电路

、金属氧化物半导体(MOS)集成电路、双极金属氧化物半导体集成电路等几

类。按集成电路的功能来分,可分为数字集成电路(如门电路、存储器、微处理器、微控制器

、数字信号处理器等)和模拟集成电路(如传感器、信号放大器、功率放大器等)和数/模混合集成电路。按它们的用途可分为通用集成电路与专用集成电路(ASIC),微处理器和存储器芯片等都

属于通用集成电路,而专用集成电路是按照某种应用的特定要求专门设计、定制的集成电

路。

集成电路芯片是微电子技术的结晶,它是计算机、通信和几乎所有电子设备的硬件核心,是现代信息产业的基础,计算机、手机、电视机、银行卡、音响设备、家用电器无不以集成电路作为其核心,汽车、高铁、飞机、卫星的控制也都依赖于集成电路芯片制成的计算机及相关软件。集成电路产业的发展十分迅速,以集成电路为基础的电子信息产品的世界市场总额已经远远超过了1万亿美元,成为世界第一大产业。

我国集成电路产业近几年虽然加速发展,但对外依存度仍比较高,特别是CPU、存储器等高端集成电路。2019年集成电路进口量高达4400多亿块,进口额超 13000 亿美元,约为原油进口额的两倍。一些业内人士认为,目前我国集成电路是系统性、全方位落后于发达国家,整体提升和全面超越必须从基础研究和人才培养做起,还需要一定的时间。

1.3.2集成电路的设计制造

集成电路把成千上万甚至以亿计的晶体管等电子元件集成在指甲大小的晶片上,其制造工序从原料熔炼到最终产品测试封装大约需要2000~5000道工序,工艺复杂且技术难度非常高,有一系列的关键技术,需要大量高精度专用设备。许多工序必须在恒温、恒湿、超洁净的无尘厂房内完成。芯片生产、控制及测试的设备也异常昂贵,动辄成百上千万美元一台,目前大部分需要引进。有关集成电路的设计制造过程和我国芯片产业的发展情况可参看本章阅读材料1.3。

1.3.3集成电路的发展趋势

集成电路的特点是体积小、功耗低、速度快、可靠性高。集成电路的工作速度主要取决于组成逻辑门电路的晶体管的尺寸。晶体管尺寸越小,其工作频率越高,门电路的开关速度就越快。所以,从集成电路问世以来,人们就一直在缩小门电路的尺寸上下功夫。芯片上电路元件的线条越细,相同面积的晶片可容纳的晶体管就越多,功能就越强,速度也越快。随着纳米量级的微细加工技术的采用和硅抛光片面积的增大,集成电路芯片的集成度越来越高,所含晶体管数目已达数十亿之多。Intel公司的创始人之一摩尔(G.E.Moore)1965年在美国《电子学》杂志上曾发表论文预测,单块集成电路的集成度平均每18~24个月翻一番,这就是有名的Moore定律。以Intel公司生产的微处理器为例,近50年来它所生产的80x86、Pentium(奔腾)系列和Core(酷睿)系列微处理器,其集成度的提高证实了这个规律的正确性(图18)。

图18Intel公司微处理器集成度的发展

集成电路的技术发展很快(表15)。现在,世界上集成电路批量生产的先进技术已经达到12~14英寸晶圆、7nm××纳米,指芯片中电路连线的线宽尺寸,尺寸越小,集成度越高,制造难度也越大。(纳米,1nm=10-9m)和5nm线宽的工艺水平,并还在进一步提高。最复杂的处理器芯片所集成的晶体管数目已达数十亿,存储器芯片包含的晶体管数目已达上百亿,先进的CMOS集成技术已经可以实现数字电路、模拟电路、射频电路等的集成。线宽更小、集成度更高、性能更好的芯片还在不断推出。

表15集成电路技术的发展

年度199920012004200820102017

工艺(nm)18013090453214~10

晶体管(M)23.847.613553910008000

时钟频率(GHz)1.21.62.02.6553.85

面积(mm2)340340390468600901

连线层数6789910

晶圆直径(英寸)121214161616

1.3.4IC卡

IC卡是“集成电路卡”或“芯片卡”的简称,国外称为chip card或smart card。它把集成电路芯片密封在塑料卡基片内部,使其成为能存储、处理和传递数据的载体。与磁卡相比,它难以复制,不受磁

场影响,能可靠地存储和处理数据。

IC卡按卡中所镶嵌的集成电路芯片可分为两大类:① 存储器卡。这种卡封装的集成电路主要是存储器,其容量大约为几到几十KB,信息可长期保存,也可通过读卡器改写。这种IC卡除了存储电路外,还有写入保护和加密电路,具有一定的安全性,可用作校园卡、公交卡、医保卡、门禁卡等。② CPU卡,也叫智能卡。卡上集成了中央处理器(CPU)、程序和数据存储器,还内置了操作系统。这种卡的处理能力强,安全性更好,除上述应用外,它更适合银行、电信、公安等对安全性要求很高的部门应用。手机中使用的SIM卡就是一种CPU卡,它保存有手机用户的个人识别码、加密用的密钥以及用户的电话簿等信息,供手机在接入通信网络时进行身份认证,并可对用户通话时的语音信息进行加密,防止窃听。

IC卡按使用方式可分为两种(参见图19):① 接触式IC卡(如手机SIM卡),其表面有一个方型镀金接口,共有8个或6个镀金触点。使用时必须将IC卡插入读卡机卡口内,通过金属触点传输数据。这种IC卡多用于存储信息量大、读写操作比较复杂的场合。接触式IC卡易磨损、怕油污,寿命不长。② 非接触式IC卡,又叫射频卡、感应卡,它采用电磁感应方式无线传输数据,解决了无源(卡中无电源)和免接触等难题,操作方便、快捷。由于采用全密封胶固化,防水、防污,所以使用寿命很长。随着技术的进步和成本的降低,非接触式IC卡现已成为主流。当前还流行一种兼有接触式和非接触式两种刷卡方式的“双界面卡”,使用更为方便。有关非接触式IC卡工作原理及其在日常生活中的应用,可参看阅读材料之1.4。

图19接触式IC卡与非接触式IC卡

IC卡不但可以作为电子证件,用来记录持卡人的个人数据,作为身份识别之用(如身份证、游泳证、医疗卡、门禁卡等),也可以作为电子钱包(如电话卡、公交卡、校园卡、加油卡等)使用,具有广泛的应用。

我国使用的银行卡早先采用磁条卡,磁条中记录了用户账号等信息,一般仅作为识别卡使用。由于磁条卡的技术相对简单,信息容易读出和复制,保密性差,安全不易保证,伪卡欺诈事件屡有发生。所以,几年前就开始更换为IC卡。银行IC卡大多采用双界面CPU卡,不但安全性高,信息难以复制,而且还具备电子现金账户功能,支持离线(offline,也称为“线下”)小额支付,并可使用非接触方式读写,实现即刷即走的快捷支付(“闪付”功能)。

复习题

(1) 什么是集成电路(芯片)?什么是超/极大规模集成电路?PC和手机中使用哪些集成电路?

(2) 集成电路的发展趋势如何?我国目前水平如何?

(3) IC卡有哪些类型?你用的校园卡属何种类型?

自测题1

一、是非题

1. 信息处理指的是与信息的收集、传递、加工、存储和施用相关的行为和活动,信息技术则泛指用来扩展人们信息器官功能、协助人们更有效地进行信息处理的一类技术。

2. 集成电路把成千上万甚至以亿计的晶体管等电子元件制作在指甲大小的晶片上,其工艺水平目前已经达到纳米级水平。

3. 非接触式IC卡依靠卡片中的微型电池供电,操作使用非常方便。

二、选择题

1 假设两个8位的二进制信息A=10010011,B=11001100,下面是A、B进行逻辑运算的结果,其中错误的是()

(A) A∧B=10000000(B) A∨B=11011111

(C) A∧B∨A∧B=01011001(D) A∧B∨A∧B=10100000

2 数据通信中数据传输速率是最重要的性能指标之一,它指单位时间内传送的二进位数目,计量单位Gb/s的正确含义是()

(A) 每秒兆位(B) 每秒千兆位

(C) 每秒百兆位(D) 每秒百万位

3 下面关于比特的叙述中,错误的是()

(A) 比特是组成数字信息的最小单位

(B) 比特只有“0”和“1”两个符号

(C) 比特既可以表示数值和文字,也可以表示图像和声音

(D) 比特“1”大于比特“0”

4使用存储器存储二进位信息时,存储容量是一项很重要的性能指标。存储容量的单位

有多种,下面哪一种不是存储容量的单位?()

(A) XB(B) KB(C) GB(D) MB

5与十六进制数(BC)16等值的八进制数是()

(A) 273(B) 274(C) 314(D) 313

6 无符号整数是计算机中最常使用的一种数据类型,其长度(位数)决定了可以表示的正整数的范围。假设无符号整数的长度是12位,那么它可以表示的正整数的最大值(十进制)是()

(A) 2048(B) 4096(C) 2047(D) 4095

三、填空题

1 基本ASCII字符集中一共包含有128个字符,它在PC存储器中存储时,每个字符需要占用个二进位。

2 在计算机网络中传输二进位信息时,传输速率的度量单位是每秒多少比特。某校校园网的主干网传输速率是每秒10 000 000 000比特,它可以简写为Gb/s。

3 十进制数205.5的八进制表示是。

4 计算机中的一个16位无符号整数,如果它的十六进制表示是(FFF0)16,那么它的实际数值是(十进制表示)。

第1章阅读材料

1.1数据量、存储容量和通信流量

1. 数字信息的数据量

数字技术中比特是组成信息的最小单位,所有信息都使用比特表示。使用比特表示文字、符号、声音、图像的方法称为“编码”,后续章节将陆续进行介绍。下面对几种常用信息类型需要使用多少比特来表示(称为数据量)做些对比介绍,使大家对数字信息有一些感性的认识。

正文中说过,在计算机、手机等数字设备中,1个西文字母通常用8个比特(即1个字节)表示,1个汉字通常用16个比特(2个字节)表示。手机在国内发送1条中文短信收费0.1元,每条短信限140字节(即70个汉字,含标点符号在内),超过70个汉字时将自动分割成若干条发送(按条数收费),收件人手机收到后会自动进行组合。

在电脑上写作一篇千字左右的短文,其数据量大约是几KB;中国古典小说四大名著之一的《红楼梦》,120回本的总字数大约是73万字。电子版纯文本格式的红楼梦其数据量约为1.5MB。

使用数码相机或手机拍照时,数字相片的数据量与拍照时所选择的分辨率(即像素数目)及质量等级有关,与相片内容也有关系。通常,600万~800万像素分辨率的JPG格式相片,数据量在1~3MB之间,1200万~1600万像素的相片,数据量在3~5MB之间。

使用手机通话时用户发出的语音信息,1分钟的数据量(数据未压缩前)约为0.5MB,压缩后约为50~80KB。1分钟高保真双声道的立体声音乐的数据量(未压缩前)约为10MB,采用MP3标准可将数据量压缩5~10倍。因此,一首长度为3分钟的MP3格式的音乐,其数据量大约是3~6MB。

视频信息既有图像又有声音,数据量更大。即使经过数据压缩,1分钟的标准清晰度(每帧图像的分辨率为640×480或720×480)视频,数据量也在3~5MB左右,1集电视剧的数据量就达150~200MB。至于全高清或超高清视频,其数据量就更大。

2. 存储设备的容量

信息的存储需要使用存储设备。数码产品中用来存储比特的设备有多种,它们大多利用电、磁、光的特性研制而成。例如利用电能存储信息的半导体存储器,利用磁能存储信息的磁卡和硬盘存储器,利用光学原理存储信息的CD、DVD等光盘存储器,还可以利用纸或塑料等存储信息,如过去使用的穿孔卡片、穿孔纸带,现在常用的一维和二维条形码等。

上述各种数字存储设备的信息存取速度、存取方式、存储容量、断电后信息是否保存等性质有很大差异,因而其功能和用途也有所不同。下面仅就个人电脑和智能手机使用的几种存储器的存储器类型及其容量做对比介绍(表16)。

表16个人电脑和智能手机的存储器类型与容量

存储器类型设备存储器名称典型容量说明

主存储器主存储器(primary memory)又称为内存储器(内存)或RAM(随机存取存储器),手机中称为运行内存(working memory)。本书称为主存或者内存。

个人电脑DRAM存储器4~16GB

智能手机DRAM存储器4~12GB工作速度很快,容量不很大,价格较高,断电后信息不能保存,属易失性存储器

(续表)

存储器类型设备存储器名称典型容量说明

辅助存储器辅助存储器(secondary memory或storage)过去习惯称为外存储器(外存),现在手机厂商对其称呼不一,为避免混淆,本书把它与硬盘统一称为辅助存储器,简称“辅存”。

个人电脑硬盘/固态硬盘0.5~2TB

智能手机闪速存储器32~256GB工作速度快,容量大,单位价格便宜,断电后信息保持不变,属非易失性存储器

扩充存储器

个人电脑U盘,移动硬盘,光盘,SD卡等几十GB至几个TB工作速度稍慢,容量范围大,断电后信息保持不变,属于非易失性存储器

智能手机U盘,SD卡等几十~几百GB容量范围较大,断电后信息保持不变,属于非易失性存储器

日常生活中使用的校园卡、公交卡、银行卡等,其主要功能之一也是用来存储信息(身份信息、账号、金额等),它们的容量并不大,一般有几十KB就够了。商品包装上印刷的条形码(一维条码),信息容量仅几十个字节。二维条形码容量可以达到几KB,因而可以表示(存储)如网站地址之类比较复杂的信息。

3. 关于存储容量的单位

上面在介绍数字信息的数据量和存储器容量时,使用的单位有字节(B)、千字节(KB)、兆字节(MB)、吉字节(GB)等。正文中说过,这些度量单位中使用的前缀符号K、M、G、T等,在不同场合代表不同的数值。对于计算机和手机中的主存储器,其容量单位是1KB=210字节,1MB=220字节,1GB=230字节,1TB=240字节,等等。对于它们的辅助存储器(包括硬盘、光盘、U盘等),存储容量单位是:1KB=103字节,1MB=106字节,1GB=109字节,1TB=1012字节,等等。

为什么这样呢?因为主存储器是以字节为单位编址的,每个字节有一个自己的地址,CPU使用二进位表示的地址码来指出需要访问(读/写)的存储单元。地址码是一个无符号整数,n个二进位的地址码共有2n个不同组合,可以表示2n个不同的地址,也就可以用来指定主存中2n个不同的字节,所以主存的容量一般都以2的幂次来计算。

而辅助存储器不需要也不可能按字节进行存取,它是以块(block)为单位进行编址和存取的,块的大小一般是几百字节至几千字节。因此,存储容量=块的数目×块大小。为了计算方便,也为了使产品标称容量可以更大一些,辅助存储器生产厂商都以传统的10的幂次作为其容量的度量单位。

在电脑和智能手机中,辅助存储器和主存储器都由操作系统统一管理并分配使用,操作系统采用与主存一致的方式来计算辅存的大小,即也以2的幂次作为辅存容量的计量单位。这样一来,用户经常会发现一个奇怪的现象:辅助存储器的容量被“缩水”了。例如,明明硬盘标注的容量是160GB,操作系统显示的却是149.05GB,明明买的是8GB的U盘,系统显示出来却是7.46GB。手机也是如此。

原因很简单。因为操作系统在计算存储容量及文件大小时,其度量单位1G=230=1073741824,而辅助存储器生产厂商使用的是1G=109=1000000000,后者只是前者的0.931。因此,32GB和16GB的辅助存储器,操作系统认为分别只有29.79GB和14.89GB。这种相同符号在不同场合有不同含义的情况造成了诸多不便和混淆,提请大家注意。

4. 通信流量

通信流量指通信设备在通信过程中收到和发出的数据总量。日常生活中人们接触最多的是手机流量,它特指手机/平板电脑通过移动通信网络连接互联网时所收/发的数据总量。从手机/平板电脑送出的数据量称为上行流量,收到的数据量称为下行流量或下载流量。

流量的单位是字节,常用的是千字节(KB)、兆字节(MB)、吉字节(GB)、太字节(TB)等。我国电信运营商经常略去字母B而把它们简略为K、M、G、T。它们之间的关系是:1TB=1024GB,1GB=1024MB,1MB=1024KB,1KB=1024B。

使用手机或电脑经互联网传输照片、歌曲、视频等所需要消耗的流量,要比这些照片、歌曲和视频的实际数据量大一些,这是因为数据通信本身需要一些额外的开销。例如通信双方需要呼叫、应答和同步,增加附加信息来检验收到的数据是否正确,发现传输出错后需要重新传输等,有关情况可参见第4章的介绍。

上网是需要付费的。目前的计费方式可以按流量计费,或按时长计费,也可以包月或者包一个时间段。手机如果在设置中开通“移动数据”,则意味着它通过2G/3G/4G移动通信网络连接互联网,则无论是中国电信、中国移动还是中国联通,均按照上网所消耗的流量来计算费用。如果只限某个时间段上网,费用还更优惠。

手机、平板电脑、电子书等移动设备一般都通过WiFi上网,此时用户不再关心使用了多少流量,似乎流量是免费的。其实,WiFi的功能是把无线通信转换成有线通信(参见第4章),后者利用电缆或者光缆接入互联网,它们大多按使用时间的长短计费,而不像移动通信哪样按流量计费。这是因为移动通信网络的建设和维护成本远高于有线宽带网络,以流量来计费可以更好地控制全网的负荷。毕竟如果大家都像有线宽带接入那样使用移动通信网的话,再先进的移动通信网络恐怕也难以承受。

不同应用所需要的流量是不同的。QQ聊天主要是传输文字信息,几十MB就够1个月每天聊上个把小时了。但如果是下载歌曲或图片,则一首歌或1张高清图片就会消耗几MB流量。下载1个应用程序(App)所需的流量有大有小,小的几十KB,大的可能需要几十MB。至于观看电视剧,所耗费的流量就要以GB来计算了。

为了节省流量,有些软件采取了一定措施。例如使用微信发送照片的时候,它先把照片的分辨率降低,使每张照片的数据量大为减少然后再进行发送;如果希望保持照片的分辨率(质量)不变,则可选择以“原图”方式进行发送。对于视频,为了节省流量和缩短传输时间,微信软件专门提供了一种“小视频”通信功能,它的分辨率比较低,数据量也大为减少。

1.2门电路及其应用

1. 基本门电路

计算机等数字电子设备中用于完成基本逻辑运算的电路称为“门”电路。逻辑代数中的“与”“或”“非”三种基本运算对应着三种逻辑电路,它们分别称为“与”门、“或”门和“非”门。任何复杂的逻辑运算都可以由这些基本门电路的组合来实现。图110是几种常用的基本门电路及其符号表示,其中:

与非门实现的运算是:F=A·B

或非门实现的运算是:F=A+B

异或门实现的运算是:F=A·B+A·B

图110常用门电路及其符号表示

2. 门电路的应用

虽然每个门电路的功能都很简单,但组合起来却可以完成非常复杂的功能。例如

使用不多几个门电路就能分别实现两个1位二进制数的半加器(不考虑低位的进位)或全加器(考虑低位的进位)(图111)。

图111两个1位二进制数的半加器和全加器

如果要完成两个多位二进制数的加、减法,高位必须考虑低位的进位或借位的处理。以加法为例,两个4位二进制数的加法可以使用4个全加器完成,如图112所示。正文中说过,集成电路中晶体管的开关速度非常快,工作频率可达几个GHz,所以图中的加法器1秒钟可以进行几十亿次加法运算。

图112两个4位二进制数的加法器

使用门电路不仅可以完成逻辑运算和算术运算,而且还能构造双稳态电路(触发器),用来存储二进位信息。最简单的触发器是由两个或非门组成的,如图113所示。当输入端R=1、S=0时,触发器将置为0状态;当输入端R=0、S=1时,触发器将被置为1状态。如果R和S都保持为0,则触发器将维持原状态不变。

RSQQ说明

1001置0(使触发器的状态为0)

0110置1(使触发器的状态为1)

00不变不变保持原状态不变

11不定不定不正常状态,触发器状态不定(不使用)

图113触发器的构成及其原理

触发器在计算机中可用于临时存储信息,每个触发器存储一个二进位信息。若干触发器组合成一个寄存器,即可存储一组二进位信息(如一个整数、一个浮点数或一条指令等)。这样的寄存器CPU中有很多个。

至此可以看出,数字技术的基本特点是:任何信息都使用二进位表示,任何算术和逻辑运算都通过“与”“或”“非”操作完成,任何数字设备核心电路都由“门”电路组成。

1.3集成电路产业简介

集成电路芯片(以下简称芯片)是几乎所有电子、机电设备的“心脏”,被誉为“现代工业的粮食”。芯片产业既是现代经济社会发展的基础性和先导性产业,也是影响国家经济、政治、国防综合竞争力的战略性产业。

芯片产业有一个庞大的产业链,它主要分为设计、制造和封装三大环节。下面对芯片的设计和制造做简要介绍。

1. 芯片设计

芯片设计是产业链的前端,也是面向应用的重要环节。芯片由专业的集成电路设计公司进行设计,如美国的Intel美国的Intel公司、韩国的三星电子,它们集芯片设计、制造、封装、测试等多个产业链环节于一身,不是单纯的集成电路设计公司。、高通、英伟达,英国的ARM,韩国的三星电子①,我国的华为海思、台湾地区的联发科等,它们提供不同规格和效能的芯片给下游的电脑、手机厂商选择,并交由芯片制造厂代工生产。

芯片的设计有多个步骤:功能设计、模块划分、设计与验证、逻辑综合、门级功能验证、版图生成等。其中的每个步骤都有其专门知识,皆可独立成为专业课程,大部分工作都必须借助电子设计自动化(EDA)软件才能完成。

芯片中包含有数以千万计的晶体管和门电路,如此复杂的电路系统不可能一切从零开始设计。为提高效率,减少重复开发,芯片企业通常将合格的经过验证的IC设计文件存储在数据库中,供日后重复使用。这些IC设计文件简单的如寄存器、译码器、运算器,复杂的如CPU、GPU、存储控制器、总线与接口电路等。设计文件均属于知识产权(intellectual property, IP)保护的范围,通常称为“IP核”,必须购买后得到授权才能使用。

以英国ARM(Advanced RISC Machine)公司为例,它是一家1991年成立于英国剑桥专门从事处理器芯片设计的公司,它自己不生产芯片,只出售ARM处理器设计文件的知识产权(IP)。许多半导体公司都购买了ARM的IP,如高通、IBM,华为、富士通、英伟达、英特尔、三星电子等。目前全球大多数手机、数码相机等嵌入式数码设备使用的都是ARM处理器。

2. 芯片制造

集成电路是在硅衬底上制作而成的。硅衬底是将单晶硅锭经切割、研磨和抛光后制成的像镜面一样光滑的圆形薄片,它的厚度在1mm左右,其直径可以是6英寸、8英寸、12英寸甚至更大,这种硅片称为硅抛光片。硅抛光片经过严格清洗后即可用于集成电路的制造(图114)。

图114集成电路的制造过程

制造集成电路所用的工艺技术称为硅平面工艺,它包括氧化、光刻、掺杂和互连等多项工序。把这些工序反复交叉使用,最终在硅片上制成包含多层电路及电子元件(如晶体管、电阻、电容、电感等)的集成电路。视硅片大小和集成电路的复杂程度,每一硅抛光片上可制作出成百上千个独立的集成电路,这种整整齐齐排满了集成电路的硅片称作“晶圆”。

晶圆制成后,用检测仪对每一个独立的集成电路逐个进行检测,把不合格的集成电路用磁浆点上记号。然后将晶圆切开,分割成一个个单独的集成电路小片,通过电磁法把点了磁浆的废品剔除,将合格的集成电路按其电气特性进行分类。这些小片就称为晶片(die)。

接下来是将每个晶片固定在塑胶或陶瓷的基座上,并把晶片上蚀刻出来的引线与基座底部伸出的插脚进行连接,然后盖上盖板进行封焊,以保护晶片免受机械刮伤或环境污染,这样就制成了一块集成电路成品。成品经最终测试后,按照它们的性能参数分为不同等级,贴上规格、型号等标识的标签,包装后即可出厂,这就是我们通常所说的“集成电路芯片”(IC chip)或简称“芯片”(chip)。

目前,全球芯片制造以美、韩、我国台湾地区的企业为主,特别是高端芯片的制造集中在美国Intel公司、中国台湾台积电公司、韩国三星电子、韩国海力士(存储器芯片)、中国台湾联华电子(UMC)等少数企业。其中台积电公司(TSMC)是全球最大的芯片代工企业,批量生产的工艺水平已达5nm,国内华为海思设计的麒麟芯片、寒武纪公司的人工智能处理器都委托台积电代工生产。

3. 我国的芯片产业

我国芯片产业从20世纪60年代起步,经历了自主创业、引进提高、重点建设等阶段,其间有成绩也走过弯路。进入21世纪特别是2014年发布了《国家集成电路产业发展推进纲要》之后,芯片产业开始快速发展,目前已形成一定的产业规模,在集成电路设计、芯片制造、封装测试以及产业配套方面形成了较为完善的产业链格局,在芯片的基础研究、技术开发、人才培养等方面也有一定成绩。

在集成电路设计方面,华为海思半导体公司设计的芯片已经覆盖无线网络、固定网络、智能手机、数字媒体等领域,跻身全球十大芯片设计公司之一。公司的麒麟芯片系列应用于华为多种型号的智能手机中,可与美国高通的芯片分庭抗礼。在CPU芯片方面,龙芯中科公司已有近20年的开发经验,自主研发了龙芯1号、龙芯2号、龙芯3号三大系列的CPU产品,在国防、政府、教育、工业、物联网等行业取得了市场突破和良好的应用。

在芯片制造方面,国内最大的芯片代工企业中芯国际,经过近20年的技术积累和沉淀,已经构建完成相对完整的代工制造平台,包括14nm、28nm和40/45nm的生产线,以及非易失性存储器、模拟/电源管理、LCD驱动等产品线。台积电在南京江北新区投资了30亿美元,建成12英寸晶圆、16nm的先进逻辑工艺生产线,月产能达2万片晶圆。现在,南京江北新区已有集成电路设计企业100余家,国内十强大多在此设点。据测算,到2020年,江北新区集成电路产业产值将达千亿元,南京有望成为中国的“芯片之都”。

在应用领域,国产芯片对关键领域的支撑能力已显著增强。全球超级计算机2017年排名第1、2019年排名第3的“神威·太湖之光”全部采用国产的CPU芯片;基于SM(国家商用密码)算法的金融IC卡,其卡芯累计已生产数亿个;北斗三号卫星所用芯片已实现100%全国产;我国航天器和军用装备也已广泛使用国产的CPU、GPU、DSP、FGPA等各类芯片。

但是,我国芯片设计行业还缺乏关键IP核的设计能力,SoC设计严重依赖于第3方,设计工具(EDA软件)需要进口,芯片代工企业的IP供给不足,芯片制造业的工艺水平与Intel、台积电等还有两代的差距,因而我国芯片的主流产品目前仍集中在中低端,与国际巨头有较大差距。

随着国产整机品牌的壮大,数以百万计的方案商、供应链企业的存在,使得国内芯片企业比欧美同行有更大的市场需求和更多的发展机会。同时,海外芯片巨头的兼并整合、资源重新配置,也为国内芯片企业提供了很多机遇。更重要的是国家政策自上而下的重视、资本自下而上的助推,我国的芯片产业已经迎来新的发展机遇,有望早日实现产业的自主可控和可持续发展。

1.4常用IC卡介绍

1. 手机SIM卡

SIM卡(subscriber identity module)的中文名称是用户身份识别卡,可存储用户身份数据、短信和电话号码等,用于确认手机用户的身份。SIM卡由电信网络运营商发放(一卡一号),手机必须插入SIM卡才能通话和收发短信。SIM卡是接触式IC卡的一种,进入4G移动通信后,中国移动和中国联通使用的SIM卡升级为USIM卡,中国电信则称为UIM卡,其功能有了增强。习惯上人们仍统称为SIM卡。

SIM属于CPU卡,它由CPU、ROM、RAM、EEPROM(用作数据存储器)和接口电路等组成,通过6个或8个触点与手机电路连接。

SIM卡的EEPROM中存放着一组由芯片制造商和移动通信运营商预先写入的数据。包括SIM卡识别号ICCID、国际移动用户识别号IMSI(国家代号、移动网代号、用户的手机号)、分配给该用户的二进制128位的用户身份认证(鉴权)密钥Ki(在运营商的网络服务器中也保存1份)等,数据可保存10年以上。

3G、4G和5G手机在开机入网时,移动通信网必须确认手机用户身份是否合法,即必须对手机(SIM卡)进行鉴权(身份认证)操作,同样,手机也需要鉴别网站的真伪,其过程大体如下(图115):

图1153G、4G和5G手机(SIM卡)的开机鉴权过程

(1) 用户输入PIN码,手机将其传送给SIM卡,SIM卡核对无误后将用户识别号IMSI代码和手机号等信息传送给手机(通过设置,可省去输入和验证PIN码)。

(2) 手机通过移动通信网络将IMSI代码等信息发送给基站及其服务器。

(3) 服务器根据IMSI等信息查找数据库,找出该用户的密钥Ki,生成1个随机数RAND和1个鉴权令牌AUTN发送给手机。

(4) 手机接收RAND和AUTN后交给SIM卡,后者对AUTH进行验证,确定网络的真实性。

(5) SIM卡按约定的算法和密钥Ki对RAND进行计算,把计算结果RES返回给手机,由手机发送给服务器。

(6) 服务器使用密钥Ki对RAND按相同的算法进行计算,与手机返回的结果RES进行比较。

(7) 若结果相同则手机鉴权通过,手机获得通信授权。

接下去手机向移动网注册,然后手机进入待机(attach)状态,定时发起位置更新信息。保证网络能够寻呼到自己。

个人识别码PIN(personal identification number)和解锁码PUK(personal unblocking code)用于保护SIM卡/手机不被他人盗用。PIN码是SIM卡的密码,存储在SIM卡中,出厂值为1234(或0000),用户可自行修改。启用SIM卡密码保护后,每次开机后用户输入PIN码才能登录网络,若输错3次,SIM卡会自动上锁,此时只有通过输入PUK码才能解锁。PUK码共8位,它与SIM卡识别号ICCID都印刷在SIM卡原卡卡片上,也可以到营业厅请工作人员操作。PUK码有10次输入机会,输错10次后,SIM卡会自动启动自毁程序使SIM卡失效。

SIM卡的数据存储器容量为128KB、512KB甚至1MB。除了存储上述用于鉴权和芯片保护的数据之外,它还用来存储用户数据(大约几百个电话号码、几十条短信、几个最近拨出的电话号码等),这样一来,用户可以方便地在手机之间移动其账户、短消息和电话号码簿。

SIM卡的尺寸有几种,标准卡的尺寸为 25mm×15mm ,稍小些的Micro SIM卡是12mm×15mm,更小的Nano SIM卡比Micro SIM卡还小三分之一,厚度也减少了15%,现在已普遍使用。随着数字手表等可穿戴设备的流行,一种新的SIM卡——eSIM( embeddedSIM)出现了,它的体积更小,直接嵌入到电路板上,不但提高了可靠性,而且还支持通过OTA(空中写卡)对SIM卡进行远程配置,这在物联网的场景中很有效。

2. 校园卡、公交卡和银行卡

当前广泛使用的公交卡、校园卡、身份证等都是一种非接触式IC卡(射频卡),它的工作原理是:读卡器不断发出一组固定频率的电磁波,当射频卡靠近读卡机时,卡内的一个LC串联谐振电路(其谐振频率与读卡器发射的电磁波频率相同)便产生电磁共振,使电容器充电,为卡内其他电路提供例如2V左右的工作电压,电路便开始工作,通过辐射电磁信号将卡内存储的数据发送给读卡器或接收读卡器送来的数据。使用时,IC卡只需在读卡器有效距离(例如5cm左右)之内,不论IC卡的方向和位置正反,均可与读卡器交换数据,实现预先设计的功能(图116)。 在开始数据处理之前,非接触式IC卡与读卡机之间要相互认证对方的合法性,然后才进行加密的数据传送。

图116非接触式IC卡工作原理

大学校园内广泛使用的校园卡,它具有身份认证和电子钱包的功能,集学生证、借书证、医疗卡、用餐卡、校内购物卡、实验室门禁卡等功能于一身,给广大师生提供了很大方便。

以某高校使用的校园卡为例,它采用的是国产非接触式存储卡,存储容量为4KB,分成32小区(每区64字节)和8个大区(每区256字节),每个区相互独立,分别用作不同的用途以实现一卡多用。每个区各有2组密码,芯片中的加密控制逻辑电路与读卡机之间可进行加密通信和双向三重验证,确保信息安全。校园卡存储器可以擦写几万次,数据读写时间为1~2ms,与读卡器的有效距离在2.5~10cm之间,数据通信速率106kb/s,数据保存时间可长达10年。

校园卡必须在校园网和一卡通管理系统的基础上,实现与校内各部门信息系统的无缝对接,才能有效发挥其最大的作用。

上面列举的校园卡是一种逻辑加密卡,该类型的IC卡在2008年被发现存在有安全漏洞,不法分子可通过监听数据包攻击破解IC卡,对IC卡进行篡改或复制,引起管理混乱和经济损失。近些年此类校园卡和公交卡已逐步升级为安全性更高的CPU卡。

银行IC卡(包括借记卡、信用卡等)大多使用安全性更高的双界面CPU卡。以某银行使用的银行IC卡为例(图117),32位的CPU(ARM公司SC100)是整个芯片的核心;256KB的只读存储器(ROM)用于存放芯片操作系统(COS),10KB的内存(RAM)在执行程序时用于存放数据;存储保护电路可以对存储器的不同区域分别进行存取保护;144KB的EEPROM是存放应用程序和数据的辅助存储器(擦写次数大于10万次,数据保存10年以上);该芯片具有强大的数据安全功能,集成了我国商用密码算法SSF33、SM1、SM3、SM7和美国数据加密标准DES/3DES、RSA(2048位)的硬件协处理器,具有防复制、防伪造、防数据篡改等安全功能,可实现高度安全的借记/贷记和小额支付等金融交易。

图117银行IC卡芯片的逻辑结构

3. 二代身份证

我国第二代居民身份证是采用非接触式IC卡制成的。身份证上所载信息包括姓名、性别、民族、出生日期、常住户口所在地住址、居民身份证号码、本人相片、签发机关和有效期限共9项内容。此外,内部还嵌入了一枚指甲盖大小的非接触式集成电路芯片,从而可以实现“电子防伪”和“数字管理”两大功能。

第二代身份证在“防伪”方面有多种措施。除证件表面采用防伪膜和印刷防伪技术之外,还将个人数据和相片图像经过编码、加密后存储在芯片中,需要时可通过专门的读卡器读取卡内存储的信息进行验证。这样,不但防伪性能大大提高,而且验证也更加方便快捷。甚至还可以将人体生物特征如指纹、血型等信息保存在芯片中,进一步改善防伪性能。

二代证的伪造几乎是不可能的。制作一张身份证首先要有芯片,而这种芯片是由公安部监制的专用芯片,如果要从芯片开始仿制,其代价非常巨大。

二代证更大的应用价值还在于居民身份信息的数字化和网络化。证件信息的存储和查询采用了数据库和网络技术,既可实现全国联网快速查询和识别,也可进行公安机关与政府其他行政管理部门的网络互查,实现信息共享,使二代证在公共安全、社会管理、电子政务、电子商务等方面发挥重要作用。

二代证使用的集成电路芯片由4部分组成,分别是射频天线、存储模块、加密模块和控制模块。存储模块能够储存多达几兆字节的信息,写入的信息可分区存储,按不同安全等级授权读写。居民在户口迁移以后,可将新的住址和相关信息通过写卡器重新写入芯片而不需要换领新证。加密模块是芯片的关键,它采用了国家商用密码管理办公室规定的多种加密技术。控制模块是整个芯片的“大脑”,程序都存储在其中,包括通信协议、读写协议等。它具有运算和控制功能,各种操作都由控制模块执行相应程序完成。

目前存在的一个问题是身份证挂失后无法像手机卡、银行卡那样注销使之失效,他人盗窃或捡到后在不需要联网核查时还能使用。一些不法分子利用这个漏洞借机牟利或掩护其违法行为,对身份证失主乃至社会造成了损害。

4. 电子标签

RFID(radio frequency identification)的中文名称是“电子标签”,它的原理与非接触式IC卡相似,标签中包含了耦合元件(线圈)及芯片。电子标签黏贴在物体表面用以标识该目标对象,每个标签具有唯一的电子编码,使用阅读器可以读取(有时还可写入)标签中的信息。RFID阅读器可以是手持式也可以是固定式,一些具有近场通信(NFC)功能的手机也可以读出RFID中的信息。

当RFID标签进入阅读器天线的磁场区域后,它接收天线发出的射频信号,凭借感应电流所获得的能量发送出存储在芯片中的产品信息(这种标签称为无源标签),也可以由电子标签主动发送某一频率的信号(称为有源标签),由阅读器读取信息,然后送计算机进行处理。整个识别工作无须人工干预,在恶劣环境中也能工作。而且,阅读器还可以识别高速运动的物体,并可同时识别多个标签,操作快捷方便。图118是高速公路不停车收费系统ETC(electronic toll collection)的示意图,它通过安装在车辆挡风玻璃上的电子标签与收费站天线之间的数据通信,借助互联网访问车主的银行账户,达到车辆不必停车而能自动交费的目的。

图118RFID在车辆自动收费系统中的应用

RFID技术的应用领域很多。例如物流和供应管理、生产制造与装配、航空行李处理、邮件/快运包裹处理、文档追踪与图书馆管理、动物身份标识、门禁控制与电子门票、道路自动收费等。

第2章计算机组成原理

第2章计算机组成原理数字电子计算机是20世纪人类最伟大的发明创造之一。经历了大半个世纪的发展,计算机

已经成为最重要的一种信息处理工具,它不仅承担着信息加工、信息存储的任务,而

且信息的传递、感测、识别、控制和显示等也都离不开计算机。本章主要介绍计算机硬件的组成及其工作原理。

2.1计算机的组成与分类

2.1.1计算机的发展与作用

1. 计算机的发展

从20世纪40年代数字电子计算机诞生以来,计算机已经走过了大半个世纪的发展历程。在微电子

技术的进展和各种应用需求的强力推动下,其发展速度之快,大大超出人们的预期。

计算机硬件的发展受到所使用电子元器件的极大影响,过去很长时间,人们都按照计算机主机所使用的元器件为计算机产品划代。表21是第1至4代计算机主要特点的对比。

在20世纪50年代至70年代,计算机的应用模式主要是依赖于少数大型计算机的“集中计算模式”,80年代由于个人计算机的广泛使用而演变为“分散计算模式”,90年代起由于互联网的发展,使计算机的应用进入了“网络计算模式”。在这种模式下,用户不仅使用自己的计算机进行信息处理,而且还与网络中的其他计算机协同进行信息处理。现在,几乎人人都使用计算机,人人都上网,人们已经到了离开计算机和互联网就寸步难行的地步。

表21第1至4代计算机的对比

代别年代使用的主要元器件使用的软件类型主要应用领域

第1代20世纪40年代中期至50年代末期CPU:电子管

内存:磁鼓使用机器语言和汇编语言编写程序科学和工程计算

第2代20世纪50年代中、后期至60年代中期CPU:晶体管

内存:磁芯使用FORTRAN、COBOL等高级程序设计语言编程开始广泛应用于数据处理领域

(续表)

代别年代使用的主要元器件使用的软件类型主要应用领域

第3代20世纪60年代中期至70年代初期CPU:中、小规模集成电路(SSI,MSI)

内存:SSI,MSI的半导体存储器操作系统、数据库管理系统等普遍使用在科学计算、事务处理与分析、工业控制等领域得到广泛应用

第4代20世纪70年代中期以来CPU:大、超大规模集成电路(LSI、VLSI)

内存:LSI、VLSI的半导体存储器软件开发工具和平台、分布式计算软件等开始广泛使用计算机应用深入到各行各业,家庭和个人普遍使用计算机

自20世纪90年代开始,计算机的发展进一步加快,学术界和工业界早就不再沿用“第x

代计算机”的说法。人们正在研究开发的计算机系统,主要着力于计算机应用的智能化,它以知

识处理为核心,模拟或部分替代人的智力活动为目标,在芯片技术、大数据和人工智能的推动下,这个目标有望逐步实现。

2. 计算机的作用和影响

计算机得以飞速发展的根本原因,除了微电子技术等使计算机性价比不断提高之外,还归功于计算机作为信息处理工具的通用性以及由此带来的计算机应用的广泛性。

计算机是一种通用的信息处理工具。使用计算机进行信息处理具有如下一些特点:① 速度极快。② 通用性强,不仅能进行复杂的数学运算,而且能对文字、图像和声音等多种形式的信息进行获取、加工、转换、存储、展现等处理。③ 存储容量大、存取速度高。④ 具有互连、互通和互操作的特性,通过网络计算机不仅能交流与共享信息,还可与网络上的其他计算机协同完成复杂的信息处理任务。⑤ 体积小、功耗低、方便携带,甚至可以穿戴,计算机很容易嵌入在其他机电设备中,使之数字化、智能化,促进产品升级换代。

目前,计算机正以非凡的渗透力与亲和力深入人类活动的各个领域,对人类社会的进步与发展产生巨大的影响。

计算机应用于科学研究,大大增强了人类认识自然及开发、改造和利用自然的能力,促进了现代科学技术的发展。

计算机应用于工农业生产,显著提高了人类物质生产水平和社会劳动生产率,促进了经济的飞跃发展。

计算机应用于社会服务,全面扩展和改善了服务范围与质量,提高了工作效率,推动了社会进步。

计算机应用于教育文化,为人类传承并创造知识与文化提供了现代化工具,改变了人们创造和传播文化的方式和方法,大大扩展了人类文化活动的领域,丰富了文化的内容,提高了文化质量。

计算机进入办公室和家庭,已经并还将改变人们的工作和生活方式。

计算机科学技术对于一个国家发展政治、经济、科技、教育、文化、国防等方面的催化作用和强化作用,具有难以估量的意义。

虽然计算机和网络正在迅速地、不可逆转地改变着世界,但是,先进信息技术给我们带来进步和机遇的同时,也会带来一些新的社会问题和引发某些潜在的危机。例如,个人隐私受到威胁,网络欺诈和计算机犯罪增加,知识产权保护更加困难,计算机系统崩溃将带来不可预测的后果,不良和有害信息肆意传播和泛滥,大量电子垃圾污染环境、破坏生态,长期沉迷于计算机游戏和网络聊天会给青少年生理和心理带来严重危害等等,政府、学校和社会组织对此必须予以足够重视,并采取相应的对策。

2.1.2计算机的逻辑组成

数字计算机经过70多年的发展,功能不断增强,应用不断扩展,结构也变得越来越复杂。但无论是通用的台式机、服务器,还是智能手机和数码相机中使用的计算机,甚至是银行IC卡和身份证中的计算机,它们的基本组成和工作原理都是大体相同的。

计算机系统由硬件和软件两部分组成。计算机硬件是计算机系统中所有实际物理装置的总称

。例如,处理器芯片、存储器芯片、底板、机箱、键盘、

鼠标器、显示器、打印机、硬盘等,它们都是计算机的硬件。计算机软件是指在计算机

中运行的各种程序及其处理的数据和相关的文档。程序用来指挥计算机硬件自动进行规定的操作,数据则是程序所处理的对象,文档是软件设计报告、操作使用说明等,它们都是软件不可缺少的组成部分。

从逻辑上(功能上)来讲,计算机硬件主要包括中央处理器(CPU)、主存储器、辅助存储器、输入设备和输出设备等,它们通过总线互相连接。图21是计算机硬件逻辑组成的示意

图。习惯上人们把CPU和主存储器作为计算机的主体部分,把输入/输出设备和辅助存储器等称为计算机的“外围设备”,简称“外设”。

图21计算机硬件的逻辑组成所谓逻辑组成或逻辑结构,是指功能(或概念)上的结构,而非实际的物理结构。

1. 输入设备

“输入”(input)是把信息送入计算机的过程。作为名词使用时,指的是向计算机输入的

内容。输入可以由人、外部环境或其他计算机来完成。用来向计算机输入信息的设备通称为

“输入设备”。输入设备有多种,例如键盘、鼠标器、触摸屏、麦克风、传感器以及条码、磁卡、IC卡的扫描器或读卡器等。不论信息的原始形态如何,输入到计算机中的信息都使用二进位来表示。

2. 中央处理器

负责对输入信息进行各种处理(例如计算、转换、分类、识别、检索等)的部件称为“处理器”。

处理器能高速执行指令完成二进制数据的算术、逻辑运算和数据传送操作,它的结构很复杂。超大规模集成电路的出现,使得处理器的所有组成部分都可以制作在一块面积仅为几个平方厘米的半导体芯片上。因为体积很小,所以也把它称为“微处理器”(microprocessor)。

一台计算机中往往有多个处理器,它们各有其不同的任务,有的用于显示,有的用于通信。其中承担系统软件和应用软件运行任务的处理器称为“中央处理器”(CPU),它是任何一台计算机必不可少的核心组成部件。其他处理器的任务是协助CPU工作,统称为“协处理器”。

CPU的任务很繁重,为了提高处理速度,一台计算机可以包含几个或者几十个甚至几

百个、几千个CPU。这种使用多个CPU实现高速处理的技术称为“并行处理”。现在,个人计算机(PC)、平板电脑、智能手机等都普遍采用集成有2个、4个甚至更多CPU在同一芯片内的所谓“多核”CPU芯片,性能得到了显著提高。

3. 主存储器和辅助存储器

计算机能够把程序和数据(包括原始数据、中间运算结果与最终结果等) 储存起来,具有这种功能的部件就是“存储器”。

计算机中的存储器分为主存储器(也称为工作存储器,手机中称为运行内存,简称主存,英语为memory)和辅助存储器(简称辅存,英语为storage) 两大类。主存的存取速度快而容量相对较小(因成本较高),大多是易失性存储器;辅存存取速度稍慢而容量相对很大,它们都是非易失性存储器。

主存储器与CPU高速连接,按字节编址(每个字节均有地址,CPU可直接访问任一字节),它用来存放已经启动运行的程序代码和需要处理的数据。CPU工作时,它所执行的指令及处理的数据都是从主存中取出的,产生的结果一般也存放在主存中。所以,主存储器也称为计算机的工作存储器。

辅助存储器能长期存放计算机系统中几乎所有的信息,即使断电信息也不会丢失。辅存的容量很大但存取速度相对较慢,它按数据块进行编址(不能也不需要按字节编址),计算机执行程序时,辅存中的程序代码及相关的数据必须预先传送到主存,然后才能被CPU运行和处理。

早期计算机中的主存储器(磁芯存储器、MOS存储器)总是与CPU紧靠一起安装在主机柜内,而辅助存储器(磁盘机、磁带机等)大多独立于主机柜之外,因此主存储器俗称为“内存”,辅助存储器俗称为“外存”,并一直沿用至今。

PC个人电脑问世后,辅助存储器与主存储器均在同一机箱中,已无内外之分,不过由于辅助存储器仍使用传统的硬盘,所以将之称为外存尚不致引起混淆。但智能手机出现后,其辅助存储器使用的是半导体集成电路芯片制成的“闪存”(而非机械硬盘),再将其称为“外存储器”已经欠妥,于是不同厂商各自使用了不同的名称,给用户带来了混淆。

除非另有说明,本书对主存、内存和RAM按目前习惯不做严格区分。但传统的外存储器(外存)一词下面将不再使用,一律改用辅助存储器(辅存),或直接使用硬盘、闪存、U盘、光盘等名称。

4. 输出设备

“输出”(output)表示把信息送出计算机,作为名词使用时,指的是计算机所产生的处理结果。计算机的输出可以是文本、语音、音乐、图像、动画等多种形式。

负责完成输出任务的是输出设备,多数输出设备的功能是把计算机中用“0”和“1”表示的信息转换成为人可直接识别和感知的信息形式。例如在PC和手机中,显示器(显示屏)是输出文字和图形的设备,扬声器是输出语音和音乐的设备。

输入设备和输出设备通称I/O(input/output)设备,这些设备是计算机与外界(人、环境或其他设备)联系和沟通的桥梁,用户或外部环境通过I/O设备与计算机系统互相通信。

5. 总线与I/O接口

总线(bus)是用于在CPU、主存、辅存和各种输入/输出设备之间传输信息并协调它们工作的一种部件,由传输线和控制电路组成。有些计算机把用于连接CPU和主存的总线称为CPU总线(或前端总线、高速总线),把连接主存和I/O设备(包括辅存)的总线称为I/O总线。为了方便地更换与扩充I/O设备,计算机系统中的I/O设备一般都通过标准的I/O接口(如USB接口)与控制器连接,然后再与I/O总线相连。总线和I/O接口的数据传输速率很重要,对计算机整体性能有较大影响。

2.1.3计算机的分类

计算机的分类有多种方法。一种是按其内部逻辑结构进行分类,如16位机、32位机或64位计算机等。另一种是按计算机的性能和用途进行分类,目前大多把计算机分成下面的五大类。

1. 巨型计算机

巨型计算机(supercomputer)也称超级计算机,它采用大规模并行处理的体系结构,包含有数以千万计的CPU。它有极强的运算处理能力,浮点运算速度达到每秒千万亿次(或亿亿次),比当前个人电脑的处理速度高出了3个数量级,大多使用在国防、科研、气象预报、石油勘探、航空航天、生物医药等领域。我国研制成功的“神威·太湖之光”巨型计算机,其峰值计算速度达每秒12.54亿亿次,持续计算速度为每秒9.3亿亿次,它包含40960个自主开发的SW26010处理器(每个处理器芯片有260个CPU核),内存总容量达1310TB。2016~2017两年内连续4次在全球巨型机500强排行榜中名列首位[图22 (a)]。

图22巨型计算机和大型计算机

2. 大型计算机

大型计算机(mainframe)指运算速度快、存储容量大、通信联网功能强、可靠性很高、安全性好、有丰富的系统软件和应用软件的计算机。它采用虚拟化技术同时运行多个操作系统,因此不像是一台计算机,更像是多台不同的(虚拟)计算机,因而可以替代数以百计的普通服务器,用于为企业或政府的海量数据提供集中的存储、管理和处理,承担主服务器(企业级服务器)的功能,可以几年甚至一二十年不间断运行,在信息系统中起着核心作用。它同时为大量终端设备执行信息处理任务,即使同时有成千上万个终端提出处理请求,其响应速度快得能让每个终端用户感觉好像只有他一个人在使用计算机一样。美国IBM公司目前拥有大型机的大部分市场,图22(b)是该公司推出的System z10 BC大型计算机的照片。

3. 服务器

服务器(server)原本只是一个逻辑上的概念,指的是网络中专门为其他计算机提供资源和服务的那些计算机,巨、大、中、小、微各种计算机原理上都可以作为服务器使用。但由于服务器往往需要具有较强的计算能力、高速的网络通信和良好的多任务处理功能,计算机生产厂商专门开发了用作服务器的一类计算机产品。与普通的PC相比,服务器需要连续工作在7×24小时(每周7天,每天24小时)的环境中,对可靠性、稳定性和安全性等要求更高。

根据不同的计算能力,服务器又分为工作组级服务器(家用服务器)、部门级服务器和企业级服务器。我国浪潮集团是国内最大的服务器制造商和服务器解决方案提供商。

4. 个人计算机

个人计算机也称个人电脑、PC,早期称为微型计算机,它们是20世纪80年代初由于单片微处理器的出现而开发成功的。个人计算机的特点是体积小巧,结构精简(主机与外设组合在一起),功能丰富,使用方便,通常由使用者自行操作使用,并由此而得名。

个人计算机分成台式机和便携机(笔记本电脑)两大类,前者在办公室或家庭中使用,后者体积小、重量轻,便于外出携带,性能接近台式机,但价格稍高。近几年开始流行一些更小更轻的超级便携式计算机,如平板电脑、智能手机等,它们摒弃了键盘,采用多点触摸屏进行操作,功能多样,有通用性,能无线上网,人们可以随身携带作为通信、工作和娱乐的工具(图23)。

需要注意,智能手机和平板电脑实质上也是个人计算机的一个品种,但它们的软硬件结构、配置和应用有许多特点,与PC并不兼容。所以人们在很多场合提及PC时,往往专指那些使用微软公司Windows操作系统和Intel(或AMD)公司CPU芯片的台式机和笔记本电脑,而把智能手机、平板电脑等排除在外。

图23个人计算机:平板电脑、智能手机智能手机具有个人电脑的几乎所有功能,它也是一种典型的嵌入式计算机。、笔记本与台式机

还要说明的是,平板电脑与智能手机除了尺寸大小不同,硬件、软件、应用等几无区别,本书此后的行文中如不特别指明,凡论及智能手机均包括平板电脑在内。

5. 嵌入式计算机

上面所介绍的几类计算机都属于通用计算机,它们具有多用途和可扩展性。还有另外一类计算机,它们并不以计算机产品的面貌出现,但计算机却起着核心和关键的作用。此类产品很多,如数控机床、电话交换机、数码相机、电视机、机顶盒、信用卡、U盘、银行卡、SIM卡等,这些产品中的计算机大多用途专一、专业性强,此类计算机通称为嵌入式计算机。

嵌入式计算机是内嵌在其他设备中的功能专用的计算机,它们安装在其他产品中,执行着特定的任务。由于用户并不直接与计算机接触,它们的存在往往不被人们所知晓。

嵌入式计算机最早应用于工业和军事领域,如机器人、数控机床、汽车、导弹、航天器等。随着微电子技术的发展,集成电路的集成度越来越高,芯片中不仅包含微处理器,而且把输入/输出控制与接口电路和存储器(部分)也都集成在芯片中,甚至把相关的模拟电路、数字/模拟混合电路和无线通信使用的射频电路等也都集成在单个芯片中,这样的超大规模集成电路差不多包含了整个计算机的硬件系统,因此人们称它为片上系统或系统级芯片(system on chip,SoC或SOC)。

片上系统(SoC)的大批量生产推进了嵌入式计算机的广泛应用。自20世纪90年代开始,嵌入式计算机促进了各种各样消费电子产品的快速发展和更新换代,例如手机、电视机、游戏机、照相机、音响、录放像机、微波炉、通信设备等。嵌入式计算机已成为计算机市场中最有活力增长最快的计算机品种之一。现在,世界上90%以上的计算机都以嵌入方式在各种设备里运行。以汽车为例,一辆汽车中有几十甚至上百个嵌入式计算机,它们的计算能力加起来可能比一台普通商用电脑的计算能力还强。

除了复杂程度不同,嵌入式计算机的逻辑结构和工作原理与通用计算机很相似。需要注意的是,许多嵌入式计算机都把软件固化在芯片中,所以它们的功能和用途一般不再轻易改变。另外,嵌入式计算机大多能满足实时信息处理、低功耗、适应恶劣工作环境等要求。它们一般不追求过高的性能,够用即可,所以市场上还有许多4位、8位、16位的嵌入式计算机在使用。这些都是嵌入式计算机与通用计算机不同的一些特点。表22是通用计算机(如台式电脑)与嵌入式计算机(如卡片相机)的简单对比。

表22通用计算机与嵌入式计算机的比较

CPU内存储器辅助存储器功耗接口软件

通用

计算机32位、64位,当前以64位为主几至几十GB以硬盘为主,容量达TB量级几十至几百瓦数量多,种类丰富操作系统庞大,应用软件丰富

嵌入式

计算机8位、16位、32位,部分使用64位几十KB、几MB,很少超过几个GB以闪存和EEPROM为主,容量范围大功耗小,仅几瓦一般很少,甚至没有操作系统精巧甚至没有,应用软件单一

复习题

(1) 计算机逻辑上由哪些部分组成?各部分的主要功能是什么?

(2) 使用计算机进行信息处理有哪些特点?计算机的作用体现在哪些方面?

(3) 从性能和用途来说,计算机分成哪些类型?分别适用于哪些部门和领域?

(4) 个人计算机的特点是什么?有哪些品种?它们的发展趋势如何?

(5) 什么是嵌入式计算机?你有几个嵌入式计算机,它们有哪些应用和特点?

(6) 目前流行的PC和智能手机,它们使用的CPU和存储器有什么差别?

2.2CPU的结构与原理

CPU是计算机必不可少的核心部件,它负责执行程序。下面2.2.1和2.2.2中所说的CPU指芯片中的CPU核(CPU core),C实际的CPU芯片中除1个或多个CPU核之外,还包含有高速缓存、存储控制器甚至图形处理器(GPU)等其他部件。CPU核和CPU芯片通常都以CPU相称,读者需根据上下文进行区分。

2.2.1CPU的作用与组成

迄今为止,我们所使用的计算机大多是按照匈牙利数学家冯·诺依曼(J.von Neumann)提出的“存储程序控制”原理进行工作的,即一个问题的解算步骤(程序)连同它所处理的数据都使用二进位表示,并预先存放在存储器中。程序运行时,CPU自动从内存中一条一条地取出指令和相应的数据,按指令操作码的规定,对数据进行运算处理,直到程序执行完毕为止(图24)。

图24程序在计算机中的执行过程

CPU的根本任务是执行指令,它按照指令的要求完成对数据的基本运算和处理。CPU的结构如图25所示,原理上它主要由三个部分组成。

(1) 寄存器组。它由十几个甚至几十个寄存器组成。寄存器的速度很快,它们用来临时存放参加运算的数据和运算得到的中间(或最后)结果。需要运算器处理的数据预先从内存传送到寄存器;运算结果不再需要继续参加运算时就从寄存器保存到内存。

图25CPU的组成及其与内存的关系

图26算术逻辑部件与寄存器组

(2) 运算器。用来对二进制数据进行加、减、乘、除或者与、或、非等各种基本的算术运算和逻辑运算,所以也称为算术逻辑部件(ALU)。通常,参加运算的数据来自寄存器,运算结果也送回寄存器保存。图26是D寄存器内容与F寄存器内容相加,并把和数写入B寄存器的示意图。为了加快运算速度,运算器中的ALU可能有多个,有的负责完成整数运算,有的负责完成实数(浮点数)运算,有的还能进行一些特殊的运算处理。

(3) 控制器。这是CPU的指挥中心。它有一个指令计数器,用来存放CPU正在执行的指令的地址,CPU按照该地址从内存读取所要执行的指令。多数情况下,指令是顺序执行的,所以CPU每执行一条指令后它就加1(因而也称为指令计数器或程序计数器)。控制器中还有一个指令寄存器,它用来保存当前正在执行的指令,通过译码器解释该指令的含义,控制运算器的操作,记录CPU的内部状态等。

为了提高CPU的处理速度,实际的处理器结构要比上面介绍的复杂许多。尽管如此,几十年来大、中、小、微计算机CPU的工作原理和基本结构并没有实质性的改变。

2.2.2指令与指令系统

如上所述,用计算机完成某个任务(如发微信)必须运行相应的程序(如微

信App)。在

操作码操作数地址

图27指令的格式

计算机内部,程序是由一连串指令组成的,指令是构成程序的基本单位。指令与数据一样也采用二进位表示,它用来规定计算机执行什么操作。多数情况下,指令由两个部分组成(图27):

(1) 操作码。指出计算机应执行何种操作的一个命令词,例如加、减、乘、除、逻辑加、逻辑乘、取数、存数、移位、跳转等,每一种操作分别使用不同的二进制代码表示,称为操作码。

(2) 操作数地址。给出该指令所操作(处理)的数据或者指出数据所在位置(在哪个寄存器或在内存的哪个单元)。操作数地址可能是1个、2个甚至3个,这需要由操作码决定。

尽管计算机可以运行非常复杂的程序,完成多种多样的功能,然而,任何复杂程序的运行总

是由CPU一条一条地执行指令来完成的。CPU执行每一条指令都还要分成若干步,每一步仅仅完成一个或几个非常简单的操作(称为微操作)。指令的执行过程大体如下:

(1) CPU的控制器从存储器读取一条指令并放入指令寄存器。

(2) 指令寄存器中的指令操作码经过译码,决定该指令应进行何种操作、操作数在哪里。

(3) 根据操作数的位置取出操作数。

(4) 运算器(ALU)按照操作码的要求,对操作数完成规定的运算,并根据运算结果修改或设置处

理器的一些状态标志。

(5) 把运算结果保存到指定的寄存器,需要时将结果从寄存器保存至内存单元。

(6) 修改指令计数器,决定下一条需要执行的指令的地址。

不同指令的功能不同,所处理的操作数类型、个数和来源也不一样,执行时的步骤和复

杂程度也有差别。特别是CPU需要通过总线去访问存储器时,指令执行过程就比较复杂一些。

每一种CPU都有它自己独特的一组指令。CPU所能执行的全部指令称为该CPU的指令系统(指令集)。现在,PC和智能手机CPU的指令系统中有数以百计的不同指令,它们分成许多类,例如在Core处理器中共有七大类指令,即数据传送类、算术运算类、逻辑运算类、移

位操作类、位(位串)操作类、控制转移类、输入/输出类。每一类指令(如数据传送类、算术运算类)又按照操作数的性质(如整数还是实数)、操作数长度(16位、32位、64位、128位等)等区分为若干不同的指令。

不同公司生产的CPU各有自己的指令系统,一般并不相同。例如,现在大部分PC都使用Intel公司的微处理器作为CPU,而许多智能手机使用的则是英国ARM公司设计的微处理器,它们的指令格式和具体指令有很大差别,再加上操作系统也不相同,因此PC上的程序代码不能直接在智能手机上运行,反之也是如此。但有些PC使用AMD公司的微处理器,它们与Intel处理器的指令系统基本一致,因此可以相互兼容。

20世纪70至80年代计算机发展史上最重大的事件之一,是出现了微处理器——将CPU的全部运算和控制电路集成在单个芯片中。现在无论是巨型机还是个人计算机,大型机还是嵌入式计算机,它们的CPU都采用微处理器,区别在于所使用微处理器的指令系统、微架构和性能不同而已。由于集成电路技术进步神速,微处理器自1971年问世以来,一直处于不断的发展与变化之中。有关微处理器的发展及应用情况,可参看阅读材料2.1。

2.2.3CPU的性能指标

计算机的性能在很大程度上是由CPU决定的。CPU的性能主要表现在程序执行速度的快慢,而程序执行的速度与CPU相关的因素有很多,例如:

●指令系统。指令的类型、格式、功能和数目会影响程序的执行速度。PC电脑使用的CPU其指令系统复杂,智能手机的CPU指令系统相对简单,后者更有利于提高速度和降低功耗。

●字长(位数)。字长指的是CPU中通用寄存器/定点运算器的宽度(即二进制整数运算的位数)。由于存储器地址是整数,整数运算由定点运算器完成,定点运算器的宽度也就决定了地址码位数的多少。而地址码的位数则决定了CPU可访问的最大内存空间,这是影响CPU性能的一个重要因素。中、低端应用(如洗衣机、微波炉、数码相机等)的嵌入式计算机大多是8位、16位或32位的CPU,中、高端智能手机和PC使用的CPU早些年大多是32位处理器,现在使用的都是64位CPU。

●主频(CPU时钟频率)。指CPU中电子线路(门电路)的工作频率,它决定着CPU芯片内部数据传输与基本操作的速度快慢。一般而言,执行1条指令需要1个或几个时钟周期,所以主频越高,执行一条指令需要的时间就越少,程序运行的速度就越快。20世纪80年代初PC机CPU的主频不超过10MHz,现在个人计算机和高端智能手机的CPU主频都在1~4GHz之间。CPU的速度不仅与主频有关,而且与每个时钟周期能完成几条指令有关,而这又与CPU的微架构密切相关。

●高速缓存(cache)的容量与结构。程序运行过程中高速缓存有利于减少CPU访问内存的次数。通常,cache容量越大、级数越多,其效用就越显著。

●逻辑结构(微架构)。CPU包含的定点运算器和浮点运算器数目、有无数字信号处理功能、有无指令预测功能、流水线结构和级数等都对程序运行的速度有影响,甚至对某些特定应用有很大的影响。

●CPU核的个数。为提高CPU芯片的性能,现在CPU芯片往往包含有2个、4个、6个甚至更多CPU核,每个核都是一个独立的CPU,有各自的1级和2级cache,共享3级cache和前端总线。在操作系统支持下,多个CPU核并行工作,核越多,CPU芯片整体性能越高。需要说明的是,由于算法和程序的原因,n个核的CPU性能绝不是单核CPU的n倍。

本章阅读材料2.2将介绍CPU常用术语和提高CPU性能所采取的一些措施。

多年来,度量CPU性能使用的指标有MIPS(百万条定点指令/秒)、MFLOPS(百万条浮点指令/秒)和TFLOPS(万亿条浮点指令/秒)。但应用程序执行速度不仅与CPU、内存有关,而且与硬盘、存储器、操作系统等也有密切关系,再加上实际应用又千变万化,因此除了巨型机、大型机之外,个人计算机一般并不使用上述指标来衡量其性能,而是面向应用进行综合性能测试后给出评分。

复习题

(1) CPU的作用是什么?原理上由哪三部分组成?与内存是什么关系?

(2) 什么是指令?什么是指令系统?指令与程序是什么关系?

(3) CPU是怎样执行一条指令的?分为哪些基本步骤?

(4) 计算机之间的兼容性是什么含义?苹果手机与华为手机兼容吗?为什么?

(5) 程序运行的速度与CPU哪些因素有关?你能大体理解CPU主要参数的含义吗?

2.3主板、内存和I/O

各种类型的计算机其硬件主要由CPU/SoC芯片、存储器、总线及I/O接口和相关的I/O设备所组成,本节对主板、内存和I/O控制进行介绍。

2.3.1主板、芯片组与BIOS

1. 主板

无论是台式机、笔记本电脑还是智能手机,CPU/SoC芯片、存储器芯片、总线和I/O控制器等电路都是安装在印制电路板上的,除了芯片和电子元件之外,电路板上还安装了多种用作I/O接口的插头插座,这种电路板就称为计算机的主板(或母板)。

以台式PC为例,主板上通常安装有CPU插座、芯片组、存储器插座、扩充卡插座、显卡插座、BIOS芯片、CMOS存储器、辅助芯片和若干用于连接外围设备的I/O接口(图28)。

图28台式PC主板示意图

CPU芯片和内存条分别通过主板上的CPU插座和内存条插座安装在主板上。PC常用外围设备通过扩充卡(例如声音卡、显示卡等)或I/O接口与主板相连,扩充卡借助卡上的印刷插头插在主板上的PCI或PCIE总线插座中。随着集成电路的发展和计算机设计技术的进步,许多扩充卡的功能已经部分或全部集成在芯片组和主板上(例如,串行口、并行口、声卡、网卡等控制电路),因而主板的结构越来越简化。

主板上还有两块特别有用的芯片:一块是闪速存储器(flash memory),其中存放的是基本输入/

输出系统(BIOS),它是PC启动时最先运行的软件,没有它机器就无法启动;另一块芯片是CMOS存储器,其中存放着与计算机系统相关的一些参数(称为“配置信息”),包括当前的日期和时间

、开机口令、已安装的光驱和硬盘的个数及类型、加载操作系统的顺序等。CMOS芯片是一种易失性存储器,它由主板上的纽扣电池供电,所以计算机关机后也不会丢失所存储的信息。

2. 芯片组

芯片组(chipset)是PC各组成部分相互连接和通信的枢纽,它既实现了PC总线控制的功能,又提供了各种I/O接口及相关的控制。没有芯片组,CPU就无法与内存、扩充卡、外设等互相连接。

芯片组安装在PC主板上,原先一共有两片集成电路:北桥芯片和南桥芯片。北桥芯片是存储控制中心,用于高速连接CPU、内存条、显卡,并与南桥芯片互连;南桥芯片是I/O控制中心,主要与PCI总线插槽、USB接口、硬盘接口、音频编解码器、BIOS和CMOS存储器等连接,CPU的时钟信号也由芯片组提供。随着集成电路技术的进步,北桥的大部分功能(如内存控制、显卡接口等)已经集成在CPU芯片中,其他功能则合并至南桥芯片,所以现在只需要1块芯片(称为单芯片的芯片组)即可完成系统所有硬件的连接。目前广泛使用的Core i7/i5/i3、赛扬、奔腾等CPU芯片都是如此,图29是芯片组与主板上各个部件互连的示意图,它有一定的代表性。

图29CPU、芯片组与主板其他部件的连接

从图29可以看出,CPU芯片使用高速通路直接连接内存储器和独立显卡,并通过DMI与单芯片的芯片组X99连接。DMI实质上就是2.3.3中要介绍的PCIE总线,它采用点对点的通信方式, DMI 2.0提供4条通路,每条通路的传输速率是2GB/s,总带宽可达8GB/s。X99芯片包含有PCIE、USB、SATA等的控制电路,借助扩充插座和I/O接口可以连接多种多样的外围设备,在系统中起着重要的交通枢纽的作用。

需要注意的是,有什么样功能和速度的CPU,就需要使用什么样的芯片组。芯片组是与CPU芯片及外围设备配套和同步发展的。

智能手机的主板上并没有芯片组,扩展功能有限,外设接口很少,必需的一些控制电路已经集成在SoC芯片中了。

3. BIOS

BIOS的中文名叫作基本输入/输出系统,它是存储在主板上闪速存储器中的一组程序。由于存放在闪存中,即使机器关机,它的内容也不会改变。每次机器加电时,CPU总是首先执行BIOS程序,它具有诊断计算机故障及加载操作系统并启动其运行的功能。

BIOS主要包含四个部分的程序:加电自检程序,系统盘主引导记录的装入程序,CMOS设置程序和基本外围设备的驱动程序。有关计算机操作系统的启动过程在第3章再介绍。

2.3.2内存储器

1. 存储器的层次结构

计算机和智能手机中有多种不同类型的存储器。通常,存取速度较快的存储器成本较高,速度较慢的存储器成本较低。为了使存储器的性能/价格比得到优化,计算机中各种存储器往往组成一个层状的塔式结构(图210),它们相互取长补短,协同工作。

(注:后备存储器的存取时间包括换带、换盘的机械操作时间在内)图210存储器的层次结构

2. DRAM、SRAM和ROM

内存储器由半导体集成电路构成,具有高速读写和按字节随机存取的特性,也称为随机存取存储器(RAM),断电时信息会丢失,属于易失性存储器。RAM目前多采用MOS型半导体集成电路芯片制成,根据其保存数据的机理又可分为DRAM和SRAM两种(图211):

图211半导体存储器的类型及其在计算机中的应用

(1) DRAM(动态随机存取存储器)。芯片的电路简单,集成度高,功耗小,成本较低,适合用作内存储器的主体部分(称为主存储器或主存,即手机中的运行内存)。但它的速度比CPU慢,为了匹配CPU速度,出现了多种不同结构的DRAM,以改善其性能。

(2) SRAM(静态随机存取存储器)。与DRAM相比,它的电路较复杂,集成度低,功耗较大,制造成本高,价格贵,但工作速度很快,与CPU速度相差不多,适合用作高速缓冲存储器cache(目前大多与CPU集成在同一芯片中)。

除了易失性的RAM存储器之外,半导体存储器的另外一类是非易失性存储器。其中EEPROM(电可擦可编程只读存储器)能按“位”擦写信息,但速度较慢、容量不大,由于价格便宜,在低端产品(如IC卡)中用得较多。另一种flash memory(快擦除存储器,或闪速存储器,简称闪存)是EEPROM的改进,它是一种新型的非易失性存储器,速度快、容量大,能像RAM一样写入信息。它的工作原理是:在低电压下,存储的信息可读但不可写,这时类似于ROM;而在较高的电压下,所存储的信息可以更改和删除,这时又类似于RAM。

flash存储器有两类:或非型(NOR flash)和与非型(NAND flash)。NOR flash以字节为单位进行随机存取,存储在其中的程序可以直接被CPU执行,可用作内存储器(例如存储BIOS程序的flash存储器);NAND flash以页(块)为单位进行存取,读出速度较慢,通常应将程序或数据先成批读入到RAM中再进行处理,但它在容量、使用寿命和成本方面有较大优势,大多作为存储卡、U盘或固态硬盘(SSD)等辅助存储器使用,智能手机中所谓“手机存储”“机身存储”之类的辅助存储器,都是NAND型闪速存储器。

3. 主存储器大多数情况下,人们并不严格区分主存、内存和RAM三个不同的名称,而是根据使用场合理解其含义。

服务器、PC、智能手机等的主存储器主要是由DRAM芯片组成的。它包含有大量的存储单元,每个存储单元可以存放1个

字节(8个二进位)。存储器的存储容量就是指它所包含的存储

单元的总和,单位是 MB(1MB=220字节)或GB(1GB=230字节)。每个存储单元都有一个地址,CPU按地址对存储器的内容进行访问(图212)。

图212主存储器的结构与工作原理

存储器的存取时间(access time)指的是从CPU给出存储器地址开始到存储器读出数据并送到CPU(或者是把CPU数据写入存储器)所需要的时间。主存储器存取时间的单位是纳秒(ns,1ns=10-9s)。

由于CPU的速度很高,而且越来越高,而DRAM芯片所组成的主存储器速度比CPU要慢一个数量级以上。从主存储器取数或存数时,CPU必须停下来等待,这显然难以发挥CPU的高速特性。解决这个矛盾通常采取如下三个措施:

(1) 采用cache(高速缓冲存储器)。cache是将SRAM存储电路直接制作在CPU芯片内的一种小容量高速存储器,其存取速度几乎与CPU一样快。计算机在启动执行程序时,预先将数据和指令从主存成批读出存入cache。当CPU需要读取数据或指令时,先检查cache中有没有,若有,就直接从cache中读取,而不用访问主存,这就大大提高了CPU的效率(参见阅读材料2.2)。

(2) 改进存储器芯片的结构和控制。DRAM存储电路的工作频率通常在100~200MHz之间,很难再大幅提高。考虑到CPU芯片中都内置有cache存储器,运行程序时,只有当CPU在cache中找不到相应的指令或数据才需要访问DRAM存储器。因而CPU对DRAM的访问大多以cache的一行(至少64个字节)为单位进行突发式读写,即连续地读(或写)以64为倍数的一连串相邻地址的字节。因此DRAM存储器的结构可采取多个存储阵列交叉并行工作,设置内部缓冲,进行多位预取等,使这种突发式读写操作能高速度地进行。现在服务器、PC和智能手机等广泛使用的DDR3/DDR4 SDRAM(第3代/第4代双倍速率同步DRAM)存储器就是基于上述原理开发出来的。

(3) 改进CPU与主存芯片的连接,加快CPU与主存之间的数据传输。例如Intel CPU芯片(Core i7/i5/i3、奔腾、赛扬等)中都集成了存储器控制电路,使CPU与主存储器直接连接,不再需要使用北桥芯片转接。此外,CPU芯片与存储器之间的数据传输方式为64位并行(64根数据线),有些还能支持双通道甚至四通道进行数据传输(参见图29),从而使CPU与主存储器之间的最高传输速率可达每秒几十个GB。

台式PC主存储器在物理结构上由若干内存条组成,内存条是把若干片DRAM芯片焊在一小条印制电路板上做成的部件。内存条必须插入主板上的内存条插座中才能使用。DDR3和DDR4均采用双列直插式(DIMM)内存条。PC主板上一般都配备有2个或4个DIMM插座。

智能手机等移动终端设备现在使用的主存储器也是由DDR SDRAM存储芯片构成的。为减少能耗,一般选用低功耗的存储芯片(LPDDR3/LPDDR4)。另外,由于受体积限制,存储芯片都直接焊装在主板上,用户不能更换也无法扩充其容量。

2.3.3I/O总线与I/O接口

1. I/O操作和I/O总线

I/O操作的任务是将输入设备输入的数据送入计算机内存,或者将数据从内存读出送到输出设备。I/O操作是CPU执行I/O指令启动I/O控制器完成的。I/O指令指出启动哪个设备,执行何种操作,数据传送到内存什么位置(或从内存什么位置读出数据送到I/O设备),传输多少数据,等等。从这个角度来说,辅助存储器与内存储器之间的数据传输也属于I/O操作,硬盘、U盘、光盘、通信网络等也可看作I/O设备。

在CPU指挥下,计算机的I/O设备可以同时工作,即多个I/O设备可分别同时与内存进行数据传输。计算机中用于在I/O设备与内存之间传输数据的部件(传输线路及其控制器)称为I/O总线(I/O bus)。

I/O总线的主要任务是高速传输数据,总线的带宽(bandwidth,即单位时间内可传输的最大数据量)是衡量I/O总线最重要的性能指标。PC使用的I/O总线经历了多次技术演变,从第1代的ISA总线、EISA总线发展为第2代的PCI总线、PCIX总线,再到现在广泛使用的第3代PCIExpress(简称PCIE或PCIe)总线,带宽越来越高,性能越来越好。

PCIE是PCI总线的改进,它以点对点的方式进行数据的串行传输。PCIE包括×1、×4、×8和×16等规格,分别表示有1、4、8或16个传输通路,每个通路的数据传输速率为1GB/s(3.0版本)或2GB/s(4.0版本),n个通路则可使带宽提高n倍。

台式PC电脑中,PCIE总线呈现为树状结构[图213(a)]。其主控制器是“树根”,它有若干分支,有的分支通过PCIE×16插座连接显卡及显示存储器,有的分支通过交换器(switch)连接主板上的若干PCIE×1(和/或PCIE×4)插座,有的分支通过桥接器连接主板上第2代总线PCI/PCIX插座,所有分支均连通树根(主控制器)再与CPU芯片及内存连接。

图213PCIE总线

PCIE最大的意义在于它的通用性,它把整个I/O统一起来了,增加了计算机的可移植性和模块化。以图29为例,PCIE主控制器集成在Core i7/i5/i3 CPU芯片中,它的1个分支连接PCIE×16插座(最多可以2个),用以插入显卡;交换器和桥接器则在芯片组X99中,交换器最多可连接8个PCIE×1插座,用以插入扩充卡。此外,X99中还使用适配电路使硬盘接口SATA(最多10个)和USB接口(最多14个)与PCIE相通。X99本身则借助DMI接口(实为4通路的PCIE)与CPU中的主控制器高速连接。

PCIE总线的传输性能很高,目前第3和第4版产品已广泛使用,PCIE×1即可满足主流声卡、网卡和多数辅助存储器对数据传输带宽的要求,而PCIE×16能提供高达16GB/s和32GB/s的带宽,可更好地满足高性能独立显卡对高数据传输速率的需求。

除了数据传输速率高的优点之外,由于是串行接口,PCIE插座的针脚数目也大为减少,这样就降低了PCIE插头/插座的体积和成本[图213(b)]。此外,PCIE也支持高级电源管理和热插拔。目前PCIE×1和PCIE×16已经成为台式PC电脑主板的标配。

2. I/O接口——USB

I/O设备大多是独立的物理实体,它们在需要时才与主机连接。用于连接I/O设备的连接器(connector)也称为插头/插座。主机上一般是插座,它通过数据线与I/O设备连接,也可以通过WiFi、蓝牙或红外线连接。计算机中用于连接I/O设备的连接器以及用于实现I/O通信规程的控制电路就称为I/O设备接口,简称I/O接口。

通用计算机可以连接许多不同种类的I/O设备,以前不同设备使用不同的I/O接口,类型繁多。现在除了显示器和硬盘还有自己的专用接口之外(分别在本章2.5.1和2.6.1中介绍),其他设备几乎都使用USB接口进行连接。

USB是英文universal serial bus的缩写,它是一种通用的总线式串行传输接口。一个USB接口借助USB集线器(hub)以树状方式可连接多个设备同时进行I/O操作(集线器最多5级、设备最多127个),它们以主从方式进行工作,即所有数据传输操作都由主设备(host)主动发起,从设备(slave)负责应答。通常,主机是主设备,外设是从设备。带USB接口的外设可以自己供电,也可通过USB接口由主机供电。

USB接口的最大特点是支持“即插即用”(PnP)和“热插拔”。在操作系统的支持下,用户把I/O设备插入USB接口之后,计算机会自动识别该设备,加载所需的驱动程序,修改系统的配置使其正常工作。USB接口还支持热插拔,即不需要计算机关机,只要I/O设备已经停止工作,就可以进行插拔,给用户带来了很大方便。

在USB接口中,数据的传输是通过差分信号以串行方式进行的。USB 2.0使用1对双绞线进行半双工传输,最高有效数据传输速率可达480Mb/s(60MB/s)。性能更好的USB 3.0增加2对双绞线用于全双工高速数据传输,最高有效传输速率可达5Gb/s(625MB/s),现已广泛采用。最新的USB 3.1版,其最高有效传输速率可达10Gb/s(1.25GB/s),苹果公司的MacBook笔记本电脑、华为的高档智能手机等已经开始采用。

USB接口使用的连接器不需要螺钉固定,可方便地进行插拔。但连接器规格有多种,按用于主机还是用于外设有A型、B型之分,按形状大小有标准型、小型(mini)和微型(micro)之分,随着USB版本的升级它们又有区别,这给用户造成了混乱和不便。表23是USB接口的版本及常用连接器类型的比较。

表23USB接口的版本及常用的连接器

USB 2.0USB 3.0USB 3.1

特点带宽:480Mb/s;

供电:4.4~5.25V,100~500mA带宽:5Gb/s;供电:

+5V,150~900mA带宽:

10Gb/s

标准A标准B小型B微型B标准A微型BUSBC

插头

插座

说明PC主机使用PC外设使用数码产品手机等移动终端PC主机使用外置硬盘、U盘、蓝光光驱等各种设备的通用连接器

注:图形比例与实际产品有差异。

USB接口有多个版本,早期的1.0版和1.1版已很少使用,现在普遍使用的是USB 2.0版,其微型B连接器(MicroB)已经逐步替代Mini连接器,几乎已成为智能手机等便携式设备的标配。

USB 3.0除了速度是USB 2.0的10倍之外,电源供电能力也提升到900mA。USB 3.0的连接器有一定兼容性,即2.0标准A插头也可以插入3.0标准A插座工作(反之,3.0标准A插头也可以插入2.0标准A插座工作),2.0微型B插头也能插入3.0微型B插座工作(反之则不可)。

USB 3.1是基于USB 3.0改良后推出的USB接口的新版本,最高传输速度由USB 3.0的5Gb/s提升为10Gb/s,供电能力最大为100W。

与USB 3.1版一起推出的一种新型连接器称为“TypeC”(也称为USBC),它的外形比2.0微型B连接器略大,正反两面各有12个触点,不再需要区分插头和插座的方向,正反均可插入,为用户提供了方便。更为重要的是,它有多种工作模式,不仅支持USB 3.1版,而且支持3.0/2.0/1.1等各种版本,不仅用于主设备,也可用于从设备;它还支持高品质的音视频信号输出功能,有望取代HDMI接口。

近两年TypeC连接器在智能手机中的应用已日趋广泛。需要说明的是,一些手机虽然使用了TypeC连接器,但USB接口电路可能还是2.0或3.0版,而非31版。

3. 智能手机的I/O接口

大多数智能手机之类的移动终端设备,都采用USB作为它们的I/O接口,以“从设备”的身份与PC电脑(“主设备”)相互连接,实现数据传输和软件下载安装。尽管在某些特定软件(如手机助手)的支持下,PC的键盘、鼠标等也可操控智能手机,但智能手机仍然只是PC的一个I/O设备。

近些年来,越来越多的智能手机采用USB 2.0 OTG接口,这种接口扩展了传统USB 2.0的功能,使得智能手机具有双重身份:它们既可作为“从”设备(I/O设备)连接到PC(“主控设备”),由PC对其进行控制、访问、数据传输和充电,又可以让智能手机本身作为“主控设备”,去连接U盘、打印机、鼠标、键盘等“从”设备,以达到扩充辅助存储器容量、方便输入/输出的目的。注意,USB 2.0 OTG接口使用的微型连接器中,增加了1个用于识别是“主控”设备还是“从”设备的引脚(ID),当使用普通的USB连接线进行连接智能手机时,它是“从”设备;若使用专门的OTG连接线,它就成为“主控”设备了。

苹果公司的iPhone、iPad没有USB接口,它使用的闪电(Lightning)接口有8个引脚,数据线的插头正反两个方向均可插入使用,非常方便。借助数据线可连接电脑传输数据和安装软件,连接充电器进行充电,连接音响设备播放音乐。也可以通过专门的基座连接各种外设,以扩充iPad/iPhone的功能。一些第三方厂商还开发了各种适配器,借助于这些适配器,iPad、iPhone可以与数码相机、读卡器、U盘、移动硬盘、键盘、鼠标、投影仪、电视机、音响等多种设备连接。

除了上述USB接口或Lightning接口之外,几乎所有智能手机还配置了无线传输方式的I/O接口,如蓝牙、NFC(近场通信)等,它们可以用来连接耳机、键盘、鼠标器、智能手表/手环、IC卡、音箱、数码相机、打印机等,为移动终端设备提供了较好的扩展性,有关蓝牙和NFC的介绍可参看阅读材料2.4。

复习题

(1) 台式PC的机箱内安装了哪些部件?主板上安装了哪些部件和器件?你能识别这些部件和器件吗?

(2) 什么是芯片组?它与I/O总线(如PCIE)是什么关系?

(3) PC和智能手机中有哪些存储器?华为手机中的运行内存和机身存储分别是什么?

(4) 什么是内存条?你使用的PC内存条容量多大,与CPU是如何连接的?

(5) 什么是USB接口?有哪些不同的版本,分别使用何种连接器?

2.4常用输入设备

输入设备用于向计算机输入命令、数据、文本、声音、图像和视频等信息,它们是计算机系

统必不可少的重要组成部分。本节介绍键盘、鼠标器、触摸屏、扫描仪、数码相机和传感器等常用的输入设备。

2.4.1字符与命令输入设备

1. 键盘

键盘是计算机最常用也是最主要的输入设备。用户通过键盘可以将字母、数字、符号等送入计算机,用来向计算机发出命令和输入中西文字与数据。

计算机键盘上有一组印有不同符号标记的按键,按键以矩形排列安装在电路板上。这些按键

包括数字键(0~9)、字母键(A~Z)、符号键、运算键以及若干控制键和功能键。表24是PC键盘中部分常用控制键的主要功能。

表24PC键盘中部分控制键的作用

控制键名称主要功能

Altalternate的缩写,它与另一个(些)键一起按下时,将发出一个命令,其含义由正在运行的程序决定

Ctrlcontrol的缩写,它与另一个(些)键一起按下时,将发出一个命令,其含义由正在运行的程序决定

Delete删除光标右面的一个字符,或者删除一个(些)已选择的对象

End一般是把光标移动到行末

Escescape的缩写,经常用于退出一个程序或操作

F1~F12共12个功能键,其功能由操作系统及运行的应用程序决定

Home通常用于把光标移动到开始位置,如一个文档的起始位置或一行的开始处

Insert输入字符时可以有覆盖方式和插入方式两种,Insert键用于在两种方式之间进行切换

(续表)

控制键名称主要功能

Num Lock数字小键盘可以像计算器键盘一样使用,也可作为光标控制键使用,由本键在

两者之间进行切换

Page Up使光标向上移动若干行(向上翻页)

Page Down使光标向下移动若干行(向下翻页)

Print Screen记录当时的屏幕映像(截屏),将其复制到剪贴板中

PC电脑的键盘上左右各有1个印有微软Windows图标的键,俗称Win键,它与字母键组合使用能快捷启动一些常用功能,以提高操作效率。

键盘上的按键大多是电容式的。电容式键盘的优点是:击键声音小,无触点,不存在磨损和

接触不良问题,寿命较长,手感好。为了避免电极间进入灰尘,按键采用密封组装,键体

不可拆卸。

用户按下每个按键时,它们会发出不同的信号,这些信号由键盘内部的电子线路转换成相应

的二进制代码,然后通过键盘接口(USB或PS/2)送入计算机。

无线键盘采用蓝牙、红外线等无线通信技术,它与电脑主机之间没有物理连线,而是通过无线电波或红外线将输入信息传送给计算机上安装的专用接收器,距离可达几米,因而操作使用比较灵活方便。

智能手机使用的是“软键盘”(虚拟键盘)。当用户需要使用键盘输入信息时,屏幕上会出现类似于ASCII键盘的一个图像,用户用手指触摸其中的按键即可输入相应的信息,不使用时虚拟键盘可从屏幕上消失。

2. 鼠标器

鼠标器(mouse)简称鼠标,它能方便地控制屏幕上的鼠标箭头准确地定位在指定的位置处,并通过按键进行各种操作。它的外形轻巧,操纵自如,尾部有一条连接计算机的电缆,形似老鼠,故得其名。由于价格低,操作简便,用途广泛,目前它已成为台式PC必备的输入设备之一。

当用户移动鼠标器时,借助于机电或光学原理,鼠标移动的距离和方向将分别变换成脉冲信号输入计算机,计算机中运行的鼠标驱动程序把接收到的脉冲信号再转换成为鼠标器在水平方向和垂直方向的位移量,从而控制屏幕上鼠标箭头的运动。Windows中鼠标箭头的常见形状及含义如表25所示。

表25Windows中鼠标箭头的常见形状及含义

鼠标箭头形状含义鼠标箭头形状含义

标准选择调整窗口垂直大小

文字选择调整窗口水平大小

帮助选择窗口对角线调整

后台操作窗口对角线调整

程序忙移动对象

鼠标器通常有两个按键,称为左键和右键,它们的按下和放开,均会以电信号形式传送给主

机。至于按动按键后计算机做些什么,则由正在运行的软件决定。除了左键和右键之外,鼠

标器中间还有一个滚轮,可以用来控制屏幕内容进行上、下移动,它与窗口右边框滚动条的功能相当。当你看一篇比较长的文章时,向后或向前转动

滚轮,就能使窗口中的内容向上或向下移

动。

鼠标器的结构经过了几次演变,现在流行的是光电鼠标。它使用一个微型镜头不断地拍摄鼠标器下方的

图214光电鼠标器

图像,经过一个专用的微处理器(数字信号处理器DSP)对图像颜色或纹理的变化进行分析,计算出鼠标器的移动方向和距离。光电鼠标器的工作速度快,准确性和灵敏度高(分辨率可达800dpi以上),几乎没有机械磨损,很少需要维护,也不需要专用鼠标垫。除了玻璃、金属等光亮表面外,几乎在任何平面上均可操作。图214是光电鼠标的正面和底面的照片。

鼠标器与主机的接口主要有两种:PS/2接口和USB接口。现在,使用蓝牙通信的无线鼠标也已逐步流行,作用距离有的可达10m。

为了节省空间,笔记本电脑使用轨迹球、指点杆和触摸板等替代鼠标器的功能。轨迹球类似于一个倒置的鼠标器,用户用手指移动球体就能控制屏幕上鼠标箭头的位置,其下方的两个按键,功能相当于鼠标的左右键。指点杆的形状很像橡皮铅笔上的橡皮头,它

安装在笔记本电脑键盘的正中间,是一个压力敏感装置,用户以手指触动指点杆时,屏幕上的鼠标箭头将会按手指的用力方向移动。触摸板也是笔记本电脑中鼠标器的一种替代设备,它是安装在键盘下方的一块矩形小平板,是一种压力和运动的敏感装置,当用户的手指在其表面移动时,屏幕上的鼠标箭头也同步地随着手指的移动而移动,从而达到控制鼠标箭头的目的。

与鼠标器作用类似的设备还有操纵杆(joystick)和触摸屏。操纵杆由基座和控制杆组成,它能将控制杆的物理运动转换成数字电子信号向主机输入,控制杆上的按钮则用于发出动作命令。操纵杆在飞行模拟、工业控制、技能培训和电子游戏等应用领域中很受用户欢迎。

3. 触摸屏

现在,便携式数字设备如智能手机、电子书阅读器、GPS定位仪等广泛使用触摸屏(图215)作为其输入设备。触摸屏兼有鼠标和键盘的功能,可以手写汉字和西文字母输入,深受用户欢迎。除了移动终端设备之外,博物馆、医院等公共场所的多媒体电脑或查询终端也已广泛使用触摸屏。

图215触摸屏

触摸屏是在液晶面板上覆盖一层透明的触摸面板,它对压力很敏感,当手指或塑料笔尖施压其上时会有电流产生以确定压力源的位置,并可对其触摸位置进行跟踪,用以取代鼠标器。触摸面板附着在液晶屏上,不需要额外的物理空间,具有视觉对象与触觉对象完全一致的效果,实现无损耗、无噪声的控制操作。

智能手机使用的“多点触摸屏”与传统电阻型(压感式)的单点触摸屏不同,它大多基于电容传感器原理,可以同时感知屏幕上的多个触控点。用户除了能进行单击、双击、平移等操作之外,还可以使用双手(或多个手指)对指定的屏幕对象(如一幅图像、一个窗口等)进行缩放、旋转、滚动等控制操作。这种新鲜感十足的操控设计已经成为吸引用户的一个亮点。

除了上述键盘、鼠标器、触摸屏等人工输入字符和命令的设备之外,借助扫描仪、摄像头、话筒、读卡器等也可以向计算机/智能手机输入字符和命令,此类方法称为自动识别输入,特点是速度快、效率高,但技术更复杂一些。详情可参看第5章阅读材料5.2。

2.4.2图像输入设备

1. 扫描仪

扫描仪是将原稿(图片、照片、底片、书稿)的影像输入计算机的设备。按扫描仪的结构

来分,扫描仪可分为手持式、平板式、胶片专用和滚筒式等几种。

手持式扫描仪工作时,操作人员用手拿着扫描仪在原稿上移动。它的扫描头比较窄,只适用于一行一行地扫描文字稿。

平板式扫描仪主要扫描反射式原稿,它的适用范围较广,单页纸可扫描,一本书也可逐页扫

描。它的扫描速度、精度、质量比较好,已经在家用和办公自动化领域得到了广泛应用。

胶片扫描仪和滚筒式扫描仪都是高分辨率的专业扫描仪,它们在光源、色彩捕捉等方面均具

有较高的技术性能,光学分辨率很高,这种扫描仪多数都应用于专业印刷排版领域。

扫描仪是基于光电转换原理而设计的,上述几种类型的扫描仪工作原理大体相同,只不过是

结构和使用的感光器件不同而已。现以平板式扫描仪为例,介绍它的工作原理(图216)。

图216CCD扫描仪工作原理

扫描仪工作时,将被扫描的原稿正面朝下放置在扫描仪玻璃板上。扫描仪采用高亮度的

光束照射图像,由电机牵动的扫描头沿着原稿移动,并接收从原稿反射回来的光束。由于

黑色、白色、彩色的不同以及灰度的区别,反射回来的光强度也有不同,这种反射光被聚焦

后照射在分别装有红、绿、蓝滤镜的三排CCD(电荷耦合器件)感光器件上,通过光电转换产生电流输出。照射光强,电流大,照射光弱,电流小,再经模数转换器(A/D转换器)转换,就变成计算机可以处理的数字信号。这种数字信号还要由专门的软件进行各种校正和平滑处理,得到的图像数据以指定的文件格式(如TIF或JPG文件)存储在计算机中。

扫描仪的主要性能指标包括:

(1) 扫描仪的光学分辨率。它反映了扫描仪扫描图像的清晰程度,用纵向和横向每英寸的取样点(像素)数目(dpi)来表示。普通家用扫描仪的最高分辨率可达到1600~3200dpi,使用时可根据需要自行设置。

(2) 色彩位数(像素深度)。它反映了扫描仪对图像色彩的辨析能力,色彩位数越多,

反映的色彩就越丰富,得到的数字图像效果也越真实。色彩位数可以是24位、36位、42位、48位等,分别可表示224、236、242、248种不同的颜色。使用时可根据应用需要选择黑白、灰度或彩色工作模式,并设置灰度级数或色彩的位数。

(3) 扫描幅面。指允许被扫描原稿的最大尺寸,例如A4、A3、A1、A0等。

(4) 与主机的接口。办公或家用扫描仪大多采用USB接口与主机连接。

实际使用时,分辨率的设置、色彩类型和位数的选择、扫描窗口大小的设定等都会影响到输入图像的质量和数据量大小。

2. 数码相机/摄像头

数码相机(digital camera,简称DC)是广泛使用的图像输入设备。与传统照相机相比,数码相机不需要使用胶卷,能直接将照片以数字形式记录下来,并

输入电脑进行存储、处理和显示,或通过打印机打印出来,或与电视机连接进行观看。

数码相机的镜头和快门与传统相机基本相同,不同之处是它不使用光敏卤化银胶片成像,而

是将影像聚焦在成像芯片(CCD或CMOS)上,并由成像芯片转换成电信号,再经模数转换(A

/D转换)变成数字图像,经过必要的图像处理和数据压缩(大多采用JPEG标准,参见5.2.2节)之后,存储在相机内部的闪速存储器中。其中成像芯片是数码相机的核心。图217是数码相机的成像过程。

图217数码相机的成像过程

采用CCD(或CMOS)芯片成像时,CCD芯片中数以亿计的CCD像素(元件)排列成1个矩形成像区,每个CCD像素均可感测影像中的一个点,将其光信号转换为电信号。显然,CCD像素越多,影像分解的点就越多,最终所得到的图像分辨率(清晰度)就越高,图像的质量也越好。所以,CCD像素的数目是数码相机一个重要的性能指标。以华为M30 Pro手机为例,其2个主摄像头的像素数目均为4 000万,前置摄像头也达到3 200万像素。

经过CCD芯片成像并转换得到的数字图像,存储在数码相机的存储器中。数码相机的存储器大多采用由闪速存储器组成的存储卡,如MMC卡、SD卡、记忆棒(memory stick)等,即使关机也不会丢失信息。存储卡的容量和存取速度也很重要,在照片分辨率和质量要求相同的情况下,存储卡容量越大,可存储的照片就越多。

从计算机角度看,数码相机其实是一种嵌入式计算机。图218是数码相机的组成结构,其前端由镜头、CCD或CMOS图像传感器及驱动电路(TG)、取样控制器(CDS)、模数转换器(ADC)等组成,所获取的数字图像信号送后端进行处理;后端的CPU用于完成数字图像处理(如色彩处理、分辨率转换、JPEG编码/解码、视频MPEG4编码/解码等)和声音的录制与播放,外围电路则负责存储卡的读写、液晶显示屏控制、TV视频输出、USB接口控制等。此外还有一个8位微控制器(通用MCU),它负责进行操作控制,如镜头的自动变焦、快门控制、闪光灯控制等。

图218数码相机的组成结构

现在,智能手机的摄影/摄像功能越来越丰富,性能堪比一般的数码相机,拍摄的照片可立即进行识别、编辑和通过互联网进行传输,深受用户的欢迎。

2.4.3传感器

传感器(transducer/sensor)是一种检测装置,它能感知被测量的信息,并将其变换成电信号输入计算机,供计算机进行测量、识别、转换、存储、显示或传输等处理。

以高端智能手机为例,除了前面已经介绍的触摸屏、摄像头、微型话筒之外,它还配置了其他多种传感器,以便自动采集设备自身和周边环境的信息。例如:

●指纹传感器。自动采集用户指纹,实现对用户的身份认证。手机上通常采用半导体电容(或电感)式传感器,在一块集成有成千上万半导体器件的平板上,手指贴在上面与其构成电容(电感)器的另一极,由于手指表面凹凸不平,接触平板时与平板的间距大小不一,形成的电容/电感数值也就不一样,设备将这些数据进行汇总,就完成了指纹的采集。

●环境光感应器。它能感知设备使用时周围环境的光线明暗,自动调整屏幕的显示亮度,这不仅可以节省能耗延长电池寿命,而且对保护眼睛也有利。

●近距离传感器(proximity sensor)。通过红外线进行测距,当用户接听电话或者装进口袋时,传感器可以判断出手机贴近了人脸或衣服而关闭屏幕的触控功能,以防止误操作。

●气压传感器。主要用于检测大气压,感知当前高度以及辅助GPS定位。

●三轴陀螺仪。它能感知手机X、Y、Z三个方向的位置变化,自动调整屏幕以横向还是纵向进行显示。

●重力传感器(加速度感应器)。它能感知用户晃动手机的速度、角度、方向和力量的大小,陀螺仪和加速度感应器在玩游戏时很有用。

●磁力计(电子罗盘)。主要作用是电子指南针,辅助GPS定位等。

●3D触摸传感器。它嵌在液晶屏的背光层,可测量出用户触摸屏幕的力量大小。它与振动器结合,可向用户提供力反馈。

上述传感器大多以微型组件的形式安装在手机主板上,它们自动地不间断地进行工作,采集各种数据提供给手机。通常,气压传感器、重力感应器、陀螺仪、电子罗盘等所采集的数据都提供给一个“运动协处理器”进行处理,以减轻CPU的负担。即使手机处于睡眠状态(CPU停止工作),运动协处理器也可以收集、处理和存储传感器的数据,这也是一些用于健康检测和运动跟踪的软件的工作基础。现在许多智能手机的SoC芯片中,都有运动协处理器集成在其中。

复习题

(1) 列举PC键盘上常用的控制键和它们在Windows环境下的功能。

(2) 鼠标器是如何控制鼠标箭头在屏幕上移动的?使用鼠标器的右键和滚轮有什么好处?

(3) 简述扫描仪的工作原理。你用过扫描仪输入图片吗?

(4) 数码相机的主要性能指标有哪些?一台4 000万像素的数码相机可以拍摄多高分辨率的照片?若存储容量为2GB且不进行数据压缩,一次最多可以拍摄这样的照片多少张?

(5) 智能手机中有哪些传感器,各有什么作用?

2.5常用输出设备

2.5.1显示器与显示卡

显示器是计算机必不可少的一种图文输出设备,其作用是将数字信号转换为光信号,使文字与图形在屏幕上显示出来。没有显示器,用户便无法了解计算机的处理结果和所处的工作状态,也很难进行操作。

计算机显示器通常由两部分组成:显示器这里显示器专指CRT或LCD,但不少情况下提到显示器时,还包含其控制器(显卡),需根据上下文理解。和显示控制器。显示器是一个独立设备;显示控制器在PC中过去多半做成扩充卡的形式,习惯上也叫作显示卡(显卡)、图形卡或者视频卡。现在智能手机的SoC芯片和PC的CPU芯片中,已经包含有以图形处理器GPU为中心的显示控制模块,这种做法称为集成显卡,既降低了成本,也缩小了设备的体积。

1. 液晶显示器

计算机使用的显示器主要有两类:CRT显示器和液晶显示器(LCD)。

CRT显示器由于笨重、耗电,还有辐射,现在几乎全部被液晶显示器所取代,只有很少数台式PC还在使用。

液晶显示器是借助液晶对光线进行调制而显示图像的一种

显示器。液晶是介于固态和液态之间的一种物态,它既具有液体的流动性,又具有固态晶体

排列的有向性。它是一种弹性连续体,在电场的作用下能快速地展曲、扭曲或者弯曲,从而将背光发出的光线进行有规则的折射,然后经过滤层的过滤在屏幕上显示出来。

与CRT显示器相比,LCD具有工作电压低,电磁辐射小,功耗少,不闪烁,适于大规模集成电路驱动,体量轻薄,易于实现大画面显示等特点,现在已经广泛应用于计算机、手机、数码相机、数码摄像机、电视机等设备。

现在有些台式机和笔记本电脑仍在使用传统的软液晶屏,而智能手机则已进入了IPS硬屏时代。IPS液晶屏不会因触摸而出现水纹,也不因外力按压而引起色差变化,响应速度快,功耗也低,因而成为触摸屏的首选。

显示屏的像素密度也越来越高,例如6英寸左右(对角线)手机屏幕分辨率低的可达1600×720,高的可达2640×1200,每英寸的像素数目均超过300。

除了电脑专用的LCD显示器之外,现在液晶电视机也可作为电脑和手机的外接显示器使用。通过电脑的VGA、DVI或者HDMI接口与电视机进行连接,或者通过无线局域网(WiFi)借助DLNA、Miracast等技术,就可将电脑或智能手机的图像和声音传输至电视机和投影机进行输出。

下面是关于LCD显示器的一些主要性能参数。

(1) 显示屏的尺寸。与电视机相同,计算机和智能手机的屏幕大小也以显示屏的对角线长度来度量,台式PC使用的显示器一般为15~32英寸;手机的液晶屏幕大多在6英寸左右,平板电脑的液晶屏幕多为7~10英寸。传统显示屏的宽度与高度之比一般为4∶3,现在多数液晶显示器的宽高比为16∶9或16∶10,它与人眼视野区域的形状更为相符。

(2) 显示器的分辨率。分辨率是衡量显示器的一个重要指标,它表示整屏最多可显示像素的多少,一般用水平分辨率×垂直分辨率来表示,例如1024×768、1280×1024、1440×900、1920×1080、1920×1200等。现在有一些所谓“2K/3K/4K”的显示器(或电视机),其中几K就是指水平分辨率达到或者接近1024的几倍。例如老产品的分辨率多为1920×1080、1920×1200,它们属于2K显示器;可显示全高清视频节目;现在主流产品的分辨率为4096×2160、4096×3112、3840×2160、3656×2664,都属于4K显示器的范畴,可播放或收看超高清视频节目。

(3) 刷新速率。刷新速率指所显示的图像每秒钟更新的次数。理论上刷新频率越高,图像的稳定

性越好,不会产生闪烁和拖尾现象。PC显示器和手机屏幕的刷新速率一般在60Hz以上,高的可达90 Hz甚至120 Hz。

(4) 响应时间。响应时间反映了LCD像素点对输入信号反应的速度,即由暗转亮或由亮转暗的速度。响应时间愈小愈好,一般为几到十几ms之间。响应时间小的显示器在观看高速运动画面时不会出现尾影拖拽的现象。

(5) 色彩、亮度和对比度。液晶本身并不能发光,因此背光的亮度决定了它的画面亮度。一般而言,亮度越高,显示的色彩就越鲜艳,效果也越好。对比度是最亮区域与最暗区域之间亮度的比值,对比度小时图像容易产生模糊的感觉。

(6) 背光源类型。LCD显示器采用透射显示,其背光源主要有荧光灯管和白色发光二极管(LED)两种,现在大多使用LED背光,它在显示效果、节能、环保等方面均优于荧光灯管,显示屏幕也更为轻薄。

(7) 辐射和环保。显示器工作时会产生一定的电磁辐射,可能导致信息泄漏,

影响信息安全。因此,显示器必须达到国家显示器能效标准和通过MPRⅡ和TCO认证(电磁辐射标准),以节约能源、保证人体安全和防止信息泄漏。

近几年一些高端手机开始使用一种称为OLED(有机发光二极管)的显示屏。OLED与传统的LCD显示方式不同,它无须背光灯,采用非常薄的有机材料涂层和玻璃基板(或柔性有机基板),电流通过时这些有机材料就会发光。OLED显示屏可以做得更轻薄,可视角度更大,色域更广、耗电量也小,但与LCD相比还有一些不足之处需要进一步改善。

2. 显示卡(显示控制器)

PC的显示控制器过去多半做成插卡的形式,它与显示器、CPU及RAM的相互关系如图219所示。为了降低成本,现在显示控制功能已经越来越多地集成在CPU芯片中,除了某些要求较高的应用之外,一般不再需要独立的显卡。

图219显示器、显示卡、CPU及RAM的关系

显示卡主要由显示控制电路、图形处理器(GPU)、显示存储器和接口电路四个部分组成。显示控制

电路负责对显示卡的操作进行控制,包括对液晶显示器进行控制,如光栅

扫描、同步、画面刷新等。主机接口电路负责显示卡与CPU和内存的数据传输。由于经常需要将

内存中的图像像素数据成批地传送到显示存储器,相互间的连接方法和数据传输速度十分重要。现在的显卡一般都采用PCIE×16高速接口。

显卡生成的图像要送到LCD或电视机屏幕显示,那就离不开显卡的输出接口。常用的输出接口是VGA接口(也就是DSub15接口),它把显卡转换后的R、G、B三基色模拟信号输出到LCD显示器或液晶电视机进行显示。另一种DVI接口是全数字的视频接口,它直接将显卡产生的数字视频信号传输给显示器,与VGA接口相比,避免了信号转换时的失真,确保了图像质量。

为了传输高清晰度或超高清晰度视频信号,显卡还配置了HDMI接口。HDMI接口既传送数字图像信号,也同时传送多声道数字音频信号,目前已广泛使用于电视机、机顶盒、DVD播放机、数字音响设备、游戏机、PC电脑等。

HDMI接口以数字形式传输未经压缩的视频信号,每个像素为24比特,每帧画面均逐行传输,音频信号最多可包含8个声道。HDMI有多个版本:1.4版的最高数据传输速率为10.2Gb/s(可支持4K视频@帧频24Hz),2.0版为18Gb/s(可支持2K视频@60Hz),最新的2.1版为48Gb/s(可支持4K视频@120Hz、8K视频@60Hz)。

HDMI接口使用的连接器共19针,它有几种不同大小。A型(标准型)普遍使用于电视机和机顶盒,C型(mini型)适合便携设备,D型(micro型)则用于智能手机和平板电脑。

HDMI数据线(电缆)质量对高清视频的传输有较大影响,传输距离也不宜过长。此外,千万不要热拔插,否则很容易将HDMI接口的芯片烧毁。

独立显卡中有高性能的图形处理器(GPU)负责高速图像处理和图形绘制,还配置了专门的显示存储器。PC集成显卡中的GPU包含在CPU芯片中,显示存储器则与主存储器合二为一,因而性能与独立显卡有明显差距。智能手机使用的也是集成显卡,其GPU和CPU一起集成在SoC芯片中。有关显示卡和GPU的结构、原理与功能,可参看阅读材料2.5的介绍。

2.5.2打印机

打印机也是PC的一种主要输出设备,它能把程序、数据、字符、图形打印在纸上。目前使

用较广的打印机有针式打印机、激光打印机和喷墨打印机三种。

1. 针式打印机

针式打印机是一种击打式打印机,它的工作原理主要体现在打印头上。打印头安装了若干根

钢针,有9针、16针和24针等几种。钢针垂直排列,它们靠电磁铁驱动,一根钢针一个电磁

铁。当打印头沿打印纸横向运动时,由控制电路产生的电流脉冲驱动电磁铁,使其螺旋线圈产生

磁场吸动衔铁,钢针在衔铁的推动下产生击打力,顶推色带,就把色带上的油墨打印到纸

上而形成一个墨点;当电流脉冲消失后,电磁场减弱,复位弹簧使钢针和衔铁复位。打印完

一列后,打印头平移一格,然后打印下一列(图220)。打印头安装在字车上,字车由步

进电机牵引的钢丝拖动,做水平往返运动,使打印头在两个方向都能打印。

图220针式打印机工作原理

针式打印机的打印质量不高、工作噪声大,现已被淘

汰出办公和家用打印机市场。但它使用的耗材成本低,能多层套打,特别是平推打印机,因

其独特的平推式进纸技术,在打印存折和票据方面,具有其他种类打印机所不具有的优势,

在银行、税务、证券、邮电、商业等领域中还在继续使用。

另一种击打式打印机是热敏打印机,它的结构与针式打印机相仿,但打印原理不同。它在打印头上以行、列或矩阵的形式安装有半导体加热元件,使用的热敏打印纸上则覆盖了一层涂有热敏材料的透明膜。打印时打印头有选择地在热敏纸的一些位置上加热,热敏材料经高温加热的地方瞬间即变成黑色(也可以是蓝色或其他颜色),从而在纸上产生文字、符号和图形。

热敏打印技术最早使用在传真机上。由于打印速度快、噪音低,打印清晰,使用方便,热敏打印机目前在超市POS机、ATM柜员机、医疗仪器中得到广泛应用。

2. 激光打印机

激光打印机是激光技术与复印技术相结合的产物,它是一种高质量、高速度、低噪声、价格

适中的输出设备。

激光打印机由激光器、旋转反射镜、聚焦透镜和感光鼓等部分组成。激光器采用半导体

激光二极管,在它的两极加上大小不同的电压就会发出强度变化的激光束,这称为电源调制

。计算机输出的“0”“1”信号加在激光二极管上,就能得到一系列被调制的脉冲式激光

。激光束经棱镜反射后聚焦到感光鼓,感光鼓表面涂有光电转换材料,于是,计算机输出的

文字或图形就以不同密度的电荷分布记录在感光鼓表面,以静电形式形成了“潜像”。之后

,感光鼓表面的这些电荷会吸附上厚度不同的炭粉,最后通过温度与压力的联合作用,把表

现文字或图形的炭粉黏附在纸上。激光能聚焦成很细的光点,炭粉又很细,因此激光打印机的分辨率

较高,印刷质量相当好。激光打印机的结构与工作原理如图221所示。

(a) 结构

(b) 工作原理

图221激光打印机的结构与原理

激光打印机与主机的接口过去以并行接口为主,现在大多已改用USB接口。

激光打印机分为黑白和彩色两种,其中低速黑白激光打印机已经普及,而彩色激光打印机的价格还比较高,适合专业用户使用。

3. 喷墨打印机

喷墨打印机也是一种非击打式输出设备,它的优点是能输出彩色图像,经济,低噪音,打印

效果好,使用低电压不产生臭氧,有利于保护办公室环境。在彩色图像输出设备中,喷墨

打印机已占绝对优势。

喷墨打印机所使用的耗材是墨水,理想的墨水应不损伤喷头

,能快干但又不在喷嘴处结块,防水性好,不在纸张表面扩散或产生毛细渗透现象,在普通

纸张上打印效果要好,不因纸张种类不同而产生色彩偏移现象,黑色要纯,色彩要艳,图像

不会因日晒或久置而褪色,墨水应无毒、不污染环境、不影响纸张再生使用等。因为有上述许

多要求,所以墨水成本高,而且消耗快,这是喷墨打印机的不足之处。

用于打印数码相机所拍摄照片的照片打印机,主要使用喷墨式打印机。喷墨打印机不局限于四种颜色的墨水,现在已有六色甚至九色墨盒的喷墨打印机,其颜色范围早已超出了传统CMYK的局限,印出来的照片质量已经可以媲美传统冲洗的相片。

4. 打印机的性能指标

打印机的性能指标主要是打印精度、打印速度、色彩数目和打印成本等。

(1) 打印精度。打印精度也就是打印机的分辨率,它用dpi(每英寸可打印的点数)来表

示,是衡量图像清晰程度最重要的指标。300dpi是人眼分辨文本与图形边缘是否有锯齿的

临界点,再考虑到其他一些因素,因此360dpi以上的打印效果才能基本令人满意。针式打

印机的分辨率一般只有180dpi,激光打印机的分辨率最低是300dpi,有的产品为400d

pi、600dpi、800dpi,甚至达到1200dpi。喷墨打印机分辨率一般可达300~360dpi

,高的能达到1000dpi以上。

(2) 打印速度。针式打印机的打印速度通常使用每秒可打印的字符个数或行数来度量。激光打印机和喷墨打印机是一种页式打印机,它们的速度单位是每分钟打印多少

页纸(PPM),家庭用的低速打印机大约为4 PPM,办公使用的高速激光打印机速度可达到10

PPM以上。

(3) 色彩表现能力。这是指打印机可打印的不同颜色的总数。对于喷墨打印机来说,最初只使

用3色墨盒,色彩效果不佳。后来改用青、黄、品红、黑(称为CMYK)4色墨盒,虽然有很大改善,但与专

业要求相比还是不太理想。于是又加上了淡青和淡洋红两种颜色,以改善浅色区域的效果,

从而使喷墨打印机的输出有着更细致入微的色彩表现能力。

(4) 其他。包括打印成本、噪音、可打印幅面大小、功耗及节能指标、可打印的拷贝数目、与主机的接口类型等。

5. 3D打印机

3D打印机不是在纸上打印平面图形,而是打印生成三维的实体。与传统的减材制造工艺(切削、钻孔等)相反,这是一种“增材制造”过程。物件在计算机中设计成型后,将其分割成一系列的数字切片,这些切片传送到3D 打印机上,后者会将这些薄型切片通过特殊胶水逐层堆叠起来,形成一个3D物品。

3D打印有几种不同的技术,一种是熔融沉积技术,运用粉末状金属或塑料等可黏合材料,通过逐层堆叠的方式来构造物体。另一种是选择性激光烧结技术,该技术利用粉末材料打印成型,打印机先在铺设好的打印层上扫描出零件截面,然后用高强度的激光器将材料粉末烧结在一起,得到坚硬成型的零件。还有一种类似于立体平版印刷技术,它与选择性激光烧结技术相似,但使用的材料是液态树脂。

3D打印不仅能生产栩栩如生的工艺玩具,还能制造出复杂的机械零件、假牙、假肢和仿生耳等。3D打印技术除了软件之外关键是使用的材料,理论上塑料、金属、陶瓷、沙子等材料经过特殊处理都可以用来做打印的“墨水(粉)”,这方面的研究和开发应用已经受到人们的密切关注。

2.5.3声音和力反馈输出

1. 声音输出

为了进行操作提示和播放语音及音乐,个人电脑、手机、MP3播放器等都需要输出声音。扬声器(喇叭)、耳机和音箱是常用的三种声音输出设备。

智能手机大多内置了双扬声器,接打电话的时候使用前置的扬声器,听歌和看电视使用后置的两个扬声器。一些平板电脑对扬声器的外放效果进行了优化,不仅数量增加到四个,而且拥有了更大的音腔,还配备了碳纤维振膜,大幅增加了音频输出功率。

音箱都是外置的,有普通音箱和数字音箱之分,普通音箱接收的是声卡重建后的模拟音频信号,数字音箱则可直接接收数字音频信号,由音箱自己完成声音重建,这样可以避免模拟音频信号在传输中发生畸变和受到干扰,声音的质量更有保证。手机大多采用蓝牙技术无线连接音箱。

2. 力反馈输出

手机中有一个微型振动马达,它在开/关手机、虚拟键盘输入、电话和微信来电(来信)通知等场合,会产生力反馈使手机振动,提醒用户知晓。有些手机中的Taptic Engine精密震动部件,还能使用户在使用触摸屏进行操作时,获得触碰反馈的真实感觉(称为3D Touch技术)。

复习题

(1) 计算机和智能手机使用的液晶显示器有哪些重要的性能参数?

(2) 显示卡有哪四个组成部分?作用是什么?它与主机和显示器的连接分别采用何种接口?集成显卡与独立显卡有什么区别?

(3) 简述激光打印机的工作原理。它采用哪种接口与主机相连接?

(4) 与激光打印机相比,喷墨打印机有哪些优缺点?

(5) 智能手机的力反馈输出有什么作用?

2.6辅助存储器

计算机传统的辅助存储器是硬盘、光盘,它们已经使用了几十年。近十多年来,U盘和存储卡的普及,为大容量信息存储提供了更多的选择。

2.6.1硬盘存储器

几十年来,硬盘存储器一直是计算机最重要的辅助存储器。由于微电子、材料、机械等领域的先进技术不断地应用到新型硬盘中,硬盘的容量不断增大,性能不断提高。下面介绍硬盘的组成、原理、与主机的接口和主要性能指标。

1. 组成与原理

硬盘存储器由磁盘盘片(存储介质)、主轴与主轴电机、移动臂、磁头和控制电路等组成,

它们全部密封于一个盒状装置内,这就是通常所说的硬盘。

硬盘的盘片由铝合金或玻璃材料制成,盘片的两面都涂有一层很薄的磁性材料,通过磁性材料粒子的磁化来记录数据。磁性材料粒子有两种不同的磁化方向,分别用来表示记录的是“0”还是“1”[图222(a)]。盘片表面由外向里分成许多同心圆,每个圆称为一个磁道,盘面上一般都有几千个磁道,每条磁道还要分成几千个扇区,每个扇区的容量一般为512字节(硬盘容量小于2 TB)或4 KB(硬盘容量超过2 TB)。盘片两侧各有一个磁头,用于读写盘上的数据,盘片两面都可记录数据[图222(b)]。

图222磁记录原理与磁道和扇区的划分

通常,一块硬盘由1至5张盘片(1张盘片也称为1个单碟)组成,所有盘片上相同半径处的一组磁道称为“柱面”。所以,硬盘上的数据位置需要使用三个参数来定位:柱面号、扇区号和磁头号。硬盘中的所有单碟都

固定在主轴上。主轴底部有一个电机,当硬盘工作时,电机带动主轴,主轴带动盘片

图223硬盘盘片与驱动器的组成

高速旋转,其速度为每分钟几千转甚至上万转。盘片高速旋转时带动的气流将盘片两侧的磁头托起。磁头是一个质量很小的薄膜组件,它负责盘片上数据的写入或读出。移动臂用来固定磁头,并带动磁头沿着盘片的径向高速移动,以便定位到指定的柱面。这就是硬盘的组成和基本工作原理(图223)。

盘片转动速度特别快,信息记录密度很高,磁头悬浮在高速转动的盘片两侧,间距很小(大约0.01μm),又不能与盘片接触,这就要求硬盘在无灰尘、无污染的环境中工作。因此,硬盘的盘片、磁头、驱动机构及其控制电路等全部组装在一起构成一个密封的组合件。

磁盘盘片的直径为3.5英寸、2.5英寸和1.8英寸等,有些甚至更小。3.5英寸和2.5英寸的硬盘分别用于台式PC和笔记本电脑,微型硬盘用于数码摄像机、MP3和MP4播放器等设备。

硬盘上的数据读写速度与机械运动有关,完成一次读写操作比较慢,大约需要10ms左右。为此,硬盘通过将数据暂存在一个比其速度快得多的缓冲区中来加快它与主机交换数据的速度,这个缓冲区就是硬盘的高速缓存(cache)。硬盘的高速缓存由DRAM芯片构成。在读硬盘中的数据时,磁盘控制器把盘片上读出的数据先存放在缓存中,再由缓存成批向主机传送。在向硬盘写数据时,主机送出的数据先传送到缓存,然后再从缓存写入盘片。由于DRAM的速度比磁介质快很多,也就加快了数据传输的速度。

硬盘与主机的接口是主机与硬盘驱动器之间的信息传输通道。固定安装在PC机箱中的硬盘其接口是串行ATA(简称SATA)接口,它以高速串行的方式传输数据,传输速率高达150MB/s(SATA 1.0)、300MB/s(SATA 2.0)或600MB/s(SATA 3.0)。由于是串行传输,线缆数目大大缩减,有利于机箱内散热。

2. 主要性能指标

衡量硬盘存储器性能有以下主要技术指标。

(1) 容量

硬盘的存储容量以千兆字节(GB)或太字节(TB)为单位。目前PC硬盘单碟容量大多为几百GB至1TB,硬盘中的存储碟片一般有1至4片,其存储容量为所有单碟容量之和。作为PC的辅助存储器,硬盘容量自然是越大越好。

(2) 平均存取时间

硬盘存储器的平均存取时间由硬盘的旋转速度(每分钟7200转、5400转或4200转)、磁头的寻道时间和数据的传输速率所决定。硬盘旋转速度越高,磁头移动到数据所在柱面越快,对于缩短数据存取时间越有利。目前这两部分时间大约在几至几十ms之间。

(3) 缓存容量

高速缓冲存储器能有效地改善硬盘的数据传输性能,理论上讲cache是越快越好、越大

越好。目前硬盘的缓存容量大多为几十至几百MB。

(4) 数据传输速率

数据传输速率分为外部传输速率和内部传输速率。外部传输速率(接口传输速率)指主机从(向)硬盘缓存读出(写入)数据的速度,它与采用的接口类型有关,现在采用SATA 3.0接口的硬盘传输速率为6 Gb/s(约600 MB/s);内部传输速率指硬盘在盘片上读写数据的速度,通常远小于外部传输速率。一般而言,当单碟容量相同时,转速越高内部传输速率也越快。

总之,在选购硬盘时,存储容量、平均存取时间、缓存大小、内部传输速率、接口类型等都是需要考虑的因素。

3. 移动硬盘

除了固定安装在机箱中的硬盘之外,还有一类硬盘产品,它们的体积小,重量轻,采用USB接口,可随时插上计算机或从计算机拔下,非常方便携带和使用,称为“移动硬盘”。

移动硬盘通常采用2.5英寸的硬盘加上特制的配套硬盘盒构成。一些超薄型的移动硬盘,厚度仅1个多厘米,比手掌还小一些,重量只有200~300g,存储容量可以达到1TB甚至更高,工作时噪音小,环境安静。

移动硬盘的优点:

(1) 容量大。适合携带图片库、数据库、音像库、软件库的需要。

(2) 兼容性好,即插即用。由于采用了通用的USB接口,移动硬盘可

以与各种电脑连接,通常不用安装驱动程序,

即插即用,并可以热插拔(注意,需要在其停止读写操作之后)。

(3) 速度快。USB 2.0接口传输速率是60MB/s,USB 3.0的传输速率高达400MB/s,与主机传输数据时,读写一个GB数量级的大型文件理论上只需要几分钟就可完成(实际还取决于软件等多种因素),特别适合视频和音频文件的存储与交换。

(4) 体积小,重量轻,由主机供电,无须外接电源。USB移动硬盘体积仅手掌般大小,重量只有200g左右,无论放在

包中还是口袋内都十分轻巧方便。

(5) 安全可靠。有的移动硬盘具有防震功能,在剧烈震动的情况下盘片会自动停转,并将磁头复位

到安全区,防止盘片损坏。

4. 硬盘使用注意事项

硬盘的正确使用和日常维护非常重要,否则会出现故障或缩短使用寿命,甚至殃及所存储的数据,给工作带来不可挽回的损失。硬盘使用中应注意以下问题:

(1) 硬盘正在读写时不能关掉电源,因为硬盘高速旋转时突然断电将导致磁头与盘片猛烈摩擦,从而损坏硬盘。

(2) 保持使用环境的清洁卫生,注意防尘;控制环境温湿度,防止高温、潮湿和磁场对硬盘的影响。

(3) 防止硬盘受震动。硬盘在进行读写操作时,一旦发生较大的震动,就可能造成磁头与盘片相撞,导致盘片数据区损坏(划盘),丢失硬盘内的文件信息。因此在工作时严禁搬动硬盘。

(4) 及时对硬盘数据进行整理,包括目录的整理、文件的清理、磁盘碎片整理等。

(5) 防止计算机病毒对硬盘的破坏,对硬盘定期进行病毒检测和数据备份。

2.6.2U盘、存储卡和固态硬盘

目前广泛使用的移动存储器除了移动硬盘之外,还有U盘、存储卡和固态盘(SSD)等,它们的存储部件都是使用闪速存储器芯片构成的。

1. 闪存芯片

闪速存储器是一种半导体集成电路存储器,其存储单元的工作机理基于隧道效应,即使断电后也能永久保存其中的信息,属于非易失性存储器。与硬盘相比,闪存的抗震性更好,能耐受高压高温,即使浸在水中也问题不大。闪存没有机械运动部件,信息存取速度较快,工作时无噪音,尺寸小,轻便。

闪存的不足之处是它的写入过程较复杂,写入速度慢于读出速度,且写入次数有限制;数据损坏后难以修复;性价比与传统硬盘相比仍有一定差距。

闪存有两大类型:NOR型闪存和NAND型闪存。两者存储单元的互连方法有所不同,外部接口也不一样,因而其性能各异,用途也不相同。

NOR型闪存可以按字节地址随机读取任一存储单元的内容,但写入前必须以块为单位先进行抹除。它适合用来存储需要运行而不要经常更新的程序代码,例如PC的BIOS程序或机顶盒、路由器中的固件等,用以取代容量小、速度慢的EPROM与EEPROM只读存储器。

NAND型闪存比NOR型闪存的存储密度高,每个比特的成本也低,它具有较快的抹写速度,可抹除次数高出NOR闪存10倍。但NAND 闪存不能按字节随机读写,只能像硬盘那样以数据块为单位存取信息。NAND型闪存的主要用途是取代磁介质存储器(如硬盘)。现在广泛使用的U盘、存储卡、固态硬盘等都采用NAND型闪存芯片构成,手机中的辅助存储器也都是NAND型闪存。

随着半导体制造工艺的发展,闪速存储器芯片容量越来越大,工作电压也从最初12V一步步下降到5V、3.3V、2.7V、1.8V。闪存每个存储单元从存储1个比特(称为SLC闪存)发展为每个存储单元存储2个以上比特(称为MLC闪存),现在尤以每个存储单元存储3个比特的闪存(称为TLC)最流行。智能手机、U盘大多采用MLC或TLC型的NAND闪存芯片。

2. 存储卡

存储卡是在闪存芯片基础上做成的固态存储器,形状为扁平的长方形或正方形,细小轻巧,插拔方便,最先在数码相机上使用。存储卡的种类较多,现在广泛使用的有SD卡、MMC卡、CF卡和MS卡(memory stick)等,它们在手机等各种便携式数码设备中广泛使用,台式PC配置了读卡器之后也可使用存储卡。

目前使用最广泛的是SD卡,除了标准卡之外,还有尺寸更小的Mini SD卡和Micro SD卡(又称为TF卡)(图224)。SD卡的容量目前分4档,即SD(8MB~2GB)、SDHC(大于2GB~32GB)、SDXC(大于32GB~2TB)和SDUC(大于2TB~128TB)。按照其数据读写速率SD卡又分成若干等级: Class 2、Class 4、Class 6、Class 10(代表写入速度分别约为2MB/s、4MB/s、6MB/s和10MB/s)。SDXC卡采用了新的接口:UHSI、UHSII、UHSIII和Express,读写速度更高。不同速率等级的SD卡适合不同的应用(如高清摄像机需要使用高等级的SD卡),价格也有显著差别。

华为Mate 20系列开始支持超微型存储卡NM卡(nano memory card)作为扩充存储器,NM卡采用新的存储格式,比传统Micro SD卡尺寸更小。

图224SD卡和MMC卡

MMC卡(multimedia card,多媒体存储卡)与标准SD卡大小差不多,可以插入SD卡插槽中使用,它由控制电路和闪存芯片两部分组成[图224(c)]。MMC技术标准是开放的,其他厂商可免费使用。SD卡是在MMC卡技术中加入加密技术后发展而成的,现在比MMC卡用得更广泛。

2016年之前手机等数码产品中闪存芯片大多采用eMMC(embeded multimedia card)接口标准。eMMC规定在NAND闪存芯片的基础上,加上MMC存储卡的控制电路,采用统一的BGA封装[球栅阵列封装,图224(d)],直接焊接在主板上使用。该接口的数据读写速度在52~125MB/s左右。

现在手机和数码相机中闪速存储器大多已采用UFS(universal flash storage)接口标准,它与eMMC的最大区别是将并行接口改为串行接口,工作频率提高,大幅加快数据传输速率。UFS 2.0速度可以达到600MB/s(单通道)或1.2GB/s(双通道),而UFS 3.0的速度则更高。

3. U盘

U盘(又称为优盘、闪存盘)是目前广泛使用的移动存储器之一,它通过USB接口与电脑连接,实现即插即用。U盘由外壳和机芯两部分组成,外壳可以是塑料或金属制成,机芯是一小块印制电路板,上面安装了控制芯片、NAND闪存芯片、晶体振荡器、LED指示灯、电容、电阻、写保护开关等(图225)。

图225U盘的结构及其控制芯片

U盘中的控制芯片是一个以8位CPU为中心的嵌入式计算机,它能支持多种不同厂商的闪存芯片,具有超强的实时纠错能力,采用硬件与软件(数据智能备份与恢复技术)协同的双重数据安全防护,防止由于异常插拔或断电对数据的破坏。

U盘的容量可以从几百MB到几百GB,有些容量更大。它能安全可靠地保存数据,使用寿命长达数年之久。U盘还可以模拟光驱和硬盘启动系统工作。当Windows操作系统受到病毒感染时,U盘可以同光盘一样,起着引导和加载操作系统的作用。

4. 固态硬盘(SSD)

固态硬盘(solid state disk或solid state drive,简称SSD,准确的技术名称应为固态驱动器),它也是基于NAND型闪速存储器构成的一种辅助存储设备,其目的是在计算机中代替传统的硬盘。由于其接口规范、功能及使用特性与普通硬盘完全相同,外形和尺寸起初也保持一致,所以人们把这类存储器称为“固态硬盘”。

SSD的结构并不复杂。其主体是一块印制电路板,上面安装了NAND闪存芯片、控制芯片、缓存芯片等。闪存芯片往往有多片以达到较大的容量;控制芯片的作用与存储卡和U盘中的控制电路相仿,但功能更多也更复杂,不同控制芯片在数据处理算法和对闪存芯片的读写控制上区别很大,导致不同固态硬盘的性能有明显差距;缓存芯片使用DRAM组成,它与硬盘中的cache作用相同,用来辅助主控芯片进行数据处理,有些低端固态硬盘无缓存芯片。SSD与主机连接一般采用SATA2、SATA3或PCIE接口,也可使用USB 3.0连接(图226)。

图226固态硬盘的组成

与常规硬盘相比,固态硬盘具有读写速度快、功耗低、无噪音、抗震动等优点。但价格较高,容量较低(目前容量大多为几十到几百GB),一旦硬件损坏,数据较难恢复,耐用性(寿命)也相对较短。

为此,一些高端PC尝试使用混合硬盘(SSD+HDD)的方案,即一块小容量固态硬盘(几十GB)用于休眠和文件的高速缓存;另一块大容量的机械硬盘用于海量数据存储,它们协同工作以提高系统的整体性能。

2.6.3光盘存储器

自20世纪70年代初光存储技术诞生以来,光盘存储器获得迅速发展,产生了CD、DVD和BD三代光盘存储器产品。

光盘存储器成本不高,容量较大,还具有很高的可靠性,不容易损坏,在正

常情况下是非常耐用的。这是因为光盘的读出头离盘面有几毫米距离,这比磁头与磁盘表面

的距离至少大1000倍,所以光盘不易划破。即使盘面有指纹或灰尘存在,数据仍然可以读出

。光盘的表面介质也不易受温湿度的影响,便于长期保存。光盘存储器的缺点是读出速度和

数据传输速度比硬盘慢得多。

1. 光盘存储器的结构与原理

光盘存储器由光盘片和光盘驱动器两个部分组成。光盘片用于存储数据,其基片是一种耐热的有机玻璃,直径大多为120mm(约5英寸),用于记录数据的是一条由里向外的连续的螺旋状光道。光盘存储数据的原理与磁盘不同,它通过在盘面上压制凹坑的方法来记录信息,凹坑的边缘处表示“1”,而凹坑内和凹坑外的平坦部分表示“0”,信息的读出需要使用激光进行分辨和识别。

光盘驱动器简称光驱,用于带动盘片旋转并读出盘片上的(或向盘片上刻录)数据,其性能指标之一是数据的传输速率。内置于机箱的光驱与主机的接口现在大多为SATA接口,外接光驱使用USB接口与主机连接。

2. 光驱的类型

光盘存储器技术在21世纪初发展很快,现在已基本稳定。光盘驱动器按其信息读写能力,分成只读光驱和光盘刻录机两大类型;按其可处理的光盘片类型,又进一步分成CD只读光驱和CD刻录机(使用红外激光)、DVD只读光驱和DVD刻录机(使用红色激光)、DVD只读光驱与CD刻录机结合在一起的组合光驱(所谓的“康宝”),以及大容量蓝色激光光驱BD。由于DVD驱动器均能兼容CD光盘的读出,单纯的CD只读光驱和CD刻录机目前市场已很少见。

(1) DVD只读光驱(DVDROM)。DVD不仅用作计算机的辅助存储器,而且也是一种家用数字音像设备。DVD只读光驱具有向下兼容性,它既能读CD光盘又能读DVD光盘,但不能在光盘上写入信息。

(2) 组合光驱(“康宝”)。组合光驱的英文是CDRW/DVDROM COMBO,它既有DVD只读光驱的功能,可以读出CD和DVD盘片,又有CD光盘刻录机的功能,可以刻录CDR和CDRW盘片,在PC中得到普遍使用。

(3) DVD光盘刻录机。它能对DVD光盘进行信息读出和写入,而且还兼容CD光盘的读写。但DVD光盘刻录机的规格国际上并没有完全统一,它有3类共5种(DVDRAM;DVDR、DVDRW;DVD+R和DVD+RW)。幸运的是目前市场上许多DVD光盘刻录机能够兼容上述大部分或全部规范(例如SuperMulti类光盘刻录机),有些还能支持双层刻录。

(4) 蓝光光驱(BD)。DVD驱动器的光头用红色激光(波长为650nm)读取或写入信息,而蓝光光驱则利用波长更短(405nm)的蓝色激光在光盘上读写信息。波长越短的激光,能够在单位面积上记录或读取更多的信息,因此,蓝光极大地提高了光盘的存储容量。目前,一张蓝光盘的存储容量可达25GB,是现有单面单层DVD盘容量的5倍。蓝光光驱也有只读蓝光光驱(BDROM光驱)和蓝光刻录机(BD刻录机)之分,它们都可以兼容此前出现的CD和DVD光盘产品。

3. 光盘片的类型

光盘片是光盘存储器的信息存储载体(介质),按其存储容量目前主要有CD盘片、DVD盘片和蓝色激光盘片三大类,按其信息读写特性又可进一步分成只读盘片、一次可写盘片和可擦写盘片三种。

(1) CD光盘片

CD光盘片主要用来存储高保真数字立体声音乐(称为CD唱片),由于存储容量有限,U盘出现之后把它作为辅助存储器使用意义不大。它有只读(CDROM盘)、可写一次(CDR盘)和可多次读写(CDRW盘)三种不同类型。

市场上那些已经在盘片上压制了软件或视听节目的成品CD盘是不能再添加或改写信息的,它们属于只读光盘。

使用光盘刻录机可以将信息写入CDR光盘,但写过后只能读出和添加信息,不能抹除和修改。这种盘片在聚碳酸酯片基上喷涂了一层染料层和一层反射层,光头根据刻写的数据是0还是1而发射不同功率的激光束,激光束照射处染料受热分解,使介质的反射特性发生变化,从而记录了数据。由于染料层分解后不能复原,盘片所刻录的数据不能修改。

CDRW也叫可擦写盘片,在这种盘片上写入的信息可以多次改写,擦写次数可达几百次甚至上千次之多。由于容量太小,此类光盘已很少使用。

(2) DVD光盘片

DVD盘片与CD盘片的大小相同,但它有单面单层、单面双层、双面单层和双面双层共4个品种。DVD的道间距比CD盘小一半,且信息凹坑更加密集,它利用聚焦更细(1.08μm)的红色激光进行信息的读取,因而盘片的存储容量大大提高。表26是各种不同DVD光盘的存储容量及其名称。

表26各种不同DVD光盘的存储容量

DVD光盘类型120mm DVD存储容量(名称)80mmDVD存储容量(名称)

单面单层(SS/SL)4.7 GB (DVD5)1.46 GB (DVD1)

单面双层(SS/DL)8.5 GB (DVD9)2.66 GB (DVD2)

双面单层(DS/SL)9.4 GB (DVD10)2.92 GB (DVD3)

双面双层(DS/DL)17 GB (DVD18)5.32 GB (DVD4)

DVD盘的每一面有一个或两个记录层。双层盘实际上是将两片盘重叠在一起,表面层是半透明半反射层,透过它可以读取隐藏层的数据。光头在读不同记录层的数据时,其焦点会自动进行调整。

与CD光盘片一样,可刻录信息的DVD光盘片也分成一次性记录光盘(DVDR或DVD+R)和可复写光盘(DVDRAM、DVDRW或DVD+RW)两大类,工作原理也大体相似。需要说明的是,可刻录DVD光盘片的规格国际上并没有完全统一,用户在购买DVD刻录光盘片时务必选择适合自己刻录机可刻录格式的盘片,否则将不能顺利工作。

(3) 蓝光光盘

蓝光光盘(bluray disc,简称BD)是目前比较先进的大容量光盘片,单层盘片的存储容量为25GB,双层盘片的容量为50 GB,是全高清晰度影片的理想存储介质。新的3层和4层蓝光盘容量分别达到100 GB和128 GB。与DVD盘片一样,BD盘片也有BDROM、BDR和BDRE之分,它们分别适用于只读、单次刻录和多次刻录三种不同的应用。

复习题

(1) 硬盘存储器由哪些部分组成?它怎样工作?使用硬盘需要注意哪些事项?

(2) 硬盘存储器有哪些主要的性能指标?怎样提高硬盘的数据传输速率?

(3) 闪速存储器有什么特点?它在智能手机中起什么作用?如何扩充其容量?

(4) U盘是什么?使用时需要注意什么?SD存储卡有哪些不同的品种和类型?

(5) CD、DVD和BD光盘片的存储容量是多少?它们分别有哪些类型?

自测题2

一、 是非题

1. 计算机的性能与CPU的工作频率密切相关,因此CPU主频为3GHz的计算机,比另一台CPU主频为1.5GHz的计算机在完成相同任务时速度快1倍。

2. 计算机运行程序时,CPU所执行的指令和处理的数据都直接从磁盘中取出,处理结果也直接存入磁盘。

3. 内存储器在CPU内部,辅助存储器在CPU外部。

4 RAM代表随机存取存储器,ROM代表只读存储器,关机后前者所存储的信息会丢失,后者

则不会。

二、选择题

1 下面关于微处理器的叙述中,不正确的是()

(A) 微处理器通常以单片集成电路制成

(B) 它具有运算和控制功能,但不具备数据存储功能

(C) 目前PC中使用最广泛的CPU是Intel公司Core(酷睿)系列微处理器

(D) 当前智能手机中的CPU大多采用英国ARM公司的ARM处理器架构

2 下面关于PC中CPU的叙述错误的是()

(A) 为了暂存中间运算结果,CPU中包含几十个甚至上百个寄存器,用来临时存放数据

(B) CPU是PC中不可缺少的组成部分,它担负着运行系统软件和应用软件的任务

(C) 所有PC的CPU都具有相同的指令系统

(D) PC中至少有1个CPU芯片,其中包含1个或多个CPU核

3 下面是关于计算机内存储器的一些叙述:

① 内存储器由DRAM芯片或NAND闪存芯片组成

② CPU可按字节地址随机存取内存储器的内容

③ 目前市场上销售的智能手机其内存容量多数已达1GB以上

④ 台式PC内存容量一般可扩充,手机内存容量一般不可扩充

其中正确的是()

(A) 仅①和③(B) 仅②③和①(C) 仅①和④(D) 仅②③和④

4 CPU的运算速度与许多因素有关,下面哪些是提高运算速度的有效措施?(

① 增加CPU中寄存器的数目

② 提高CPU的主频

③ 增加高速缓存(cache)的容量

④ 改进芯片组的设计

(A) 仅①和③(B) 仅①②和③

(C) 仅①和④(D) 仅②③和④

5 在PC中,SATA(串行ATA)接口主要用于()

(A) 打印机与主机的连接(B) 显示器与主机的连接

(C) 图形卡(显卡)与主机的连接(D) 硬盘与主机的连接

6 下面是关于目前流行的台式PC主板的叙述:

① 主板上通常包含CPU插座和芯片组

② 主板上通常包含存储器(内存条)插座

③ 主板上通常包含PCI和/或PCIE总线插座

④ 主板上的SATA连接器用于连接硬盘和光盘

其中正确的是()

(A) 仅①和③(B) 仅①②和③

(C) 仅①和④(D) ①②

③和④

7 下面关于USB接口的叙述中,错误的是()

(A) USB 3.0的数据传输速度要比USB 2.0快得多

(B) USB具有热插拔和即插即用功能

(C) 主机不能通过USB连接器向外围设备供电

(D) USB连接器有多种不同的形状和大小

8 下面哪一类设备不属于计算机的输入设备?()

(A) 麦克风(B) 摄像头(C) 指示灯(D) 传感器

9 数码相机中CCD或CMOS芯片的像素数目与图像分辨率密切相关。假设一个数码相机的像素数目为200

万,则它所拍摄的数字图像能达到的最大分辨率为多少? ()

(A) 800×600(B) 1024×768

(C) 1280×1024(D) 1600×1200

10 显示器是PC不可缺少的一种输出设备,PC通过显示控制卡(显卡)控制其工作。在下面有关PC显卡的叙述中,正确的是()

(A) 显卡与液晶显示器的连接大多采用PCIE接口

(B) 目前显卡可支持的分辨率大多达到1024×768,但可显示的颜色数目还不超过65536种

(C) 显示屏上显示的信息预先都被保存在显示存储器中,在显卡的控制下一帧一帧地送到屏幕上进行显示

(D) 独立显卡与主机的接口大多是USB 2.0

三、填空题

1 PC硬件在逻辑上主要由CPU、内存储器、辅助存储器、输入/输出设备与 等五类主要部件组成。

2 扫描仪是将图片、照片或文稿输入到计算机的一种输入设备,工作过程主要基于光电转换原理,其用于光电转换的电子器件大多是。

3 硬盘的存储容量是衡量其性能的重要指标。假设一个硬盘有2个碟片,每个碟有2面,每个面有10000个磁道,每个磁道有1000个扇区,每个扇区的容量为512字节,则该磁盘的存储容量标称为GB。

第2章阅读材料

2.1微处理器的发展与应用

从20世纪70年代初微处理器诞生开始,它始终按摩尔定律在不断发展,其结构、性能、工艺、晶体管数目和工作频率等每一至两年就会发生变化。下面简要介绍用作计算机CPU的微处理器的发展与现状。

1. 发展概述

20世纪70年代的微处理器其运算器和寄存器宽度仅为4位或8位。当时影响颇大的美国苹果公司的AppleⅡ微型计算机,其CPU采用的是主频为1MHz的8位微处理器。

80年代出现了16位微处理器,代表产品是Intel公司的8086。1982年美国IBM公司研制的IBM PC个人计算机采用8086作为CPU,这是国际上第一次提出个人计算机的概念。它强调了这种计算机属于个人专用,而非多个用户共享使用。

20世纪80年代末、90年代初出现了32位微处理器,如Intel公司的80386和80486微处理器。以80386、80486为CPU的PC电脑,开始采用具有图形用户界面的Windows操作系统,可执行多任务处理。由PC组成的局域网开始推广,个人计算机的应用进入办公和商业领域。

1993年Intel公司研制成Pentium(奔腾)微处理器,它在单个芯片上集成了310万个晶体管,使用273个引脚的封装,主频达100MHz,运算速度已超过100MIPS(MIPS表示每秒钟可完成100万次整数运算),性能开始超过60年代的大型计算机。

此后微处理器继续发展,Intel公司先后推出了Pentium Pro(高能奔腾)以及Pentium Ⅱ、Pentium Ⅲ和Pentium 4微处理器。它们的时钟频率已达GHz水平,不但能高速处理数值和文字信息,而且适合三维图形显示、音频视频信号处理和网络计算等多方面的应用。有些高档的CPU甚至还扩充了64位整数处理功能,把内存地址空间扩大到264。

进入21世纪后,随着CPU芯片复杂度的增加和工作频率的提高,芯片的功耗和散热问题就成为制约CPU性能进一步提高的瓶颈。而集成电路制造工艺和封装水平的发展,允许在一个集成电路芯片中包含更多的晶体管电路。因此人们不再把提高主频作为改善微处理器性能的研发重心,而是考虑在一个芯片中集成2个或多个CPU核,让多个CPU同时进行工作,通过并行处理技术来提高系统的性能,从而出现了双核和多核的处理器芯片。现在PC电脑、智能手机、服务器和巨型计算机等使用的CPU芯片都是多核微处理器。

表27是40多年来Intel公司有代表性的微处理器芯片技术参数的比较,从中可见微处理器技术的发展过程。

表27Intel公司微处理器主要技术参数比较

处理器

主要参数808680386奔腾奔腾Ⅱ奔腾4酷睿2

(双核)Core i7

980x

(6核)Core i7

5960X

(8核)Core i9

9990XE

(14核)

推出时间(年)197819851993~

19961997~

19982000~

20082006~

2011201020142019

主频(MHz)4.77~

1016~

3360~

200233~

3331500~

38001060~

3500333035004 000

(续表)

处理器

主要参数808680386奔腾奔腾Ⅱ奔腾4酷睿2

(双核)Core i7

980x

(6核)Core i7

5960X

(8核)Core i9

9990XE

(14核)

前端总线频率

(MHz)4.77~

1016~

3350或6666400~

1066800~

1600DDR3

1066

(3通道)DDR4

2133

(4通道)DDR4

2666

(4通道)

外部数据

线数目163264646464646464

最大物理内存1MB4GB4GB地址线

36地址线

36地址线

3624GB64GB128GB

L1 cache容量无无8KB

+8KB16KB

+16KB16KB

+16KB2×

(32KB

+32KB)6×

(32KB

+32KB)8×

(64KB

+64KB)14×

(64KB

+64KB)

L2 cache容量无无无0.5MB0.25~

2MB2~

6MB6×

256KB8×

256KB14×

1 024 KB

L3 cache容量无无无无4~

16MB8~

16MB12MB20MB19.25 MB

内核数目1111126814

晶体管数目(万)2.927.5310750420029100~

41000117000260000不详

制造工艺(nm)>2 0001 500~

1 000800~

350350~

250130~

9065,

45322210

热功耗(W)156065130140255

芯片引脚数目40132273或

296242478或

775775136620112 066

2. PC和服务器使用的微处理器

在台式PC和笔记本电脑领域中,现在Intel公司x86架构的64位微处理器芯片占据着市场的绝大部分份额,目前其主流CPU芯片是酷睿(Core)系列,它又分为Core i9/i7/i5/i3等子系列,主要面向商业应用和中高端消费应用领域。此外还有奔腾(Pentium)系列和赛扬(Celeron)系列处理器,它们与酷睿处理器保持兼容,但性能低于酷睿,适合一般性的应用。

Intel公司的竞争对手美国AMD公司是一家既生产CPU芯片,又生产芯片组、图形处理器和闪速存储器芯片的跨国公司,它的CPU芯片也采用x8664架构,与Intel处理器保持二进制兼容,实际运行性能并不逊色,价格比较实惠(表28)。

表28当前大型机/服务器和个人计算机中使用的微处理器

应用需求CPU技术特点代表性微处理器

中高端

台式PC

和笔记本

电脑多媒体应用占90%以上,侧重计算、图形和交互处理的性能,提供较高性能的娱乐和工作平台

以Intel公司的x64架构的处理器为主,字长64位;主频2.5~4GHz,芯片含4~8个核,多线程,每个核含两级cache,多个核共享3级cacheCore i9、i7、i5系列(Intel

公司)

FX系列、A10系列(AMD 公司)

(续表)

应用需求CPU技术特点代表性微处理器

经济型

台式PC

和笔记本

电脑

一般商业应用和普通家用,侧重高性/价比

Intel公司x64架构的处理器,一般包含2个核,主频较低(2GHz左右), cache容量较小,一些高端处理器的功能(如超线程、虚拟化等)可能不支持

赛扬(Celeron)系列

奔腾(Pentium)系列

Core i3系列(Intel公司)

速龙系列、A8/A6系列(AMD公司)

大型机/

服务器

以商业事务处理和互联网Web服务为主,通常连续工作在7×24小时的环境里,需要有99.999%以上的可靠性和高可用性

大多采用RISC指令系统,字长64位甚至128位;主频高达4GHz左右,含8~12个核,多线程,每个核包含两级cache,芯片内集成了多个核共享的3级cache

POWER系列(IBM公司);

SPARC系列(ORACLSUN公司、富士通公司);

志强(Xeon)系列(Intel公司,x86架构)皓龙系列(AMD公司,x86架构)

大型机/服务器以商业事务处理和互联网Web服务为主,它通过网络为数以千、万计的客户机服务,需要较高的网络通信和计算能力(高吞吐率)。在大型机/服务器应用领域,IBM公司的POWER处理器和ORACL(SUN)公司的SPARC处理器都采用RISC指令系统,支持64位计算,被广泛用于大型机和服务器中。Intel公司的志强(Xeon)系列处理器(x86架构)在中、小型服务器市场的占有率也在不断上升。

3. 智能手机使用的微处理器

与笔记本电脑相比,智能手机具有更好的便携性,它们要求所使用的CPU功耗低,续航时间长,体积小、功能丰富,成本低廉。目前,绝大多数智能手机使用的CPU都是64位的ARM处理器架构,它与存储控制器、I/O控制器以及其他一些协处理器集成在同一个芯片上,称为SoC(片上系统,也称为系统级芯片)。

SoC是电子设计自动化水平提升和集成电路制造技术从微米、亚微米进入到深亚微米(几十纳米)后的产物。智能手机使用的SoC实际上是一个“处理器包”,它把CPU和若干不同用途的协处理器封装成为单个芯片[图227(a)]。华为和苹果公司手机的SoC芯片由厂商根据产品定位和性能需求自行设计,然后由集成电路生产厂代为加工生产。由于面向市场需求专门定制,所以电路紧凑、功耗小,性价比很高。

图227华为麒麟970 SoC芯片

图227(b)是华为Mate 10和P20智能手机中使用的麒麟970 SoC芯片,它由华为海思集成电路公司自主研发设计,台积电公司(TSMC)代工生产。970 SoC芯片中除了8个CPU核之外,还包括BP(基带处理器,即图中的MODEM,负责通信)、GPU(图形处理器)、DSP(数字信号处理器)、ISP(图像信号处理器)、感知信号处理器i7等模块。它最重要的特色是有1个神经网络协处理器NPU(寒武纪1A),由中科院寒武纪公司设计并授权,浮点运算性能可以达到1.92TFLOPS,相比使用4个CortexA73 CPU处理同样的人工智能任务,性能可提高25倍。

其他智能手机也有各自的SoC芯片。例如苹果手机iPhone 11/Pro和iPhone SE使用的是Apple A13仿生芯片,小米、OPPO和三星手机使用高通公司的骁龙芯片。表29给出了当前几种高端智能手机使用的SoC芯片的对比,这些SoC结构和组成大体类似, CPU都采用ARM公司的64位处理器ARMv8A架构,但苹果A13和骁龙865自行设计了CPU核的微架构,华为海思采用ARM公司的公版微架构,其性能和技术参数并不完全相同,SoC芯片中集成的协处理器模块的配置和性能也互有区别。

表29几种高端智能手机SoC芯片的对比

SoC名称麒麟990 5G麒麟970苹果 A13 仿生高通骁龙865

指令系统ARMv8A(64位)

CPU核:

(个数x名称)

@主频4×CortexA76

@2.86/2.36GHz

4×CortexA55

@1.95GHz4×CortexA73

@2.4GHz

4×CortexA53

@1.8 GHz2×高性能核

@2.65 GHz

4×低能耗核

@1.8 GHz4×CortexA77

1(2.84 GHz)+3(2.42 GHz)

4×CortexA55

@1.8 GHz

RAM控制器4×16位LPDDR42×32位LPDDR42×LPDDR44×16位

2×LPDDR5

GPU16×MaliG76

(600 MHz)12×MaliG72

(850 MHz)4核GPU

(自主设计)Adreno 650视觉处理子系统(包括 GPU,VPU和DPU)

AI协处理器神经网络处理器NPU(2大1小)神经网络处理器NPU8核神经网络引擎人工智能平台

Hexagon 685 DSP

图像处理器双ISP 5.0双ISPimage processorSpectra480 ISP

其他协处理器i5传感器处理器i7传感器处理器M11运动协处理器 安全处理单元SPU

移动通信

(基带处理器)巴龙5G NR

2.3 Gbps下行

1.25 Gbps上行

4G LTE Cat. 19LTE(4G)

Cat 18/13(无)X555G/LT Modem

LTE Cat 22

制造工艺

(制造厂)7 nm EUV(台积电),103亿晶体管10 nm (台积电)

55亿个晶体管7 nm(台积电)

85亿个晶体管 7 nm(台积电)

发布时间2019,Q42017,Q42019,92020

应用产品华为Mate30/Pro

华为P40/Pro华为P20/Pro

华为Mate10iPhone 11/Pro

iPhone SE小米、OPPO,三星等

除上述手机SoC芯片之外,中国台湾联发科(Mediatek)、美国英伟达(NVIDIA)等公司也是设计制造手机SoC的知名厂家,其产品各有特色,在多种品牌的手机中使用。Intel公司为了参与手机等移动终端设备的市场竞争,它与Google公司合作在x86平台上运行安卓系统,并把早先的x86架构的超低电压的凌动(Atom)CPU改造为Atom SoC系列,在联想、中兴、宏碁、华硕等公司的平板电脑、智能手机产品中使用。由于与x86 CPU兼容,还能运行Windows操作系统。

4. 嵌入式计算机使用的微处理器

嵌入式计算机应用领域十分宽广,它使用的微处理器也多种多样,包括功能简单的4位、8位或16位微控制器,也包括具有强大图形图像和流媒体处理能力的32位或64位微处理器或数字信号处理器。据统计,全球各种类型微处理器芯片年产量达数百亿片之多,其中用于通用计算机的仅2%左右,其余98%均用于嵌入式计算机。在各种类型的微处理器中,32位和64位处理器虽然是技术发展的主流,但销售数量仅占全部微处理器的10%左右,其余大多数还是8位或16位的低端处理器。例如Intel公司的8051、Atmel公司的AVR、Microchip公司的PIC等,它们在过程控制、机电一体化产品、智能仪器仪表、家用电器、网络及通信设备等方面得到了广泛应用。

微处理器是各种类型的嵌入式计算机的核心部件,其功耗、体积、成本、可靠性、速度、处理能力、电磁兼容性等性能指标均受到应用产品的制约。据不完全统计,全球用于嵌入式计算机的处理器芯片的品种超过1000种,流行的产品有几十个不同的系列。产品系列虽多,但其中的CPU核(特别是32位或64位核)使用最多的当属英国ARM公司的ARM处理器。2015年, ARM处理器的出货量达到150亿之多, 95%的智能手机、90%的硬盘驱动器、40%的数字电视机和机顶盒都使用了ARM处理器。

2.2CPU常用术语解释

CPU是计算机的核心,是各种数码产品的“引擎”。在选购计算机等各种数码产品和阅读相关资料时,经常会接触到关于CPU的一些名词术语。下面简单介绍若干常用CPU术语的含义(正文中已有解释的不再重复)。

1. 指令系统(指令集)和处理器架构

CPU是按照指令进行工作的。每一种CPU都有它自己的一组指令。CPU所能执行的全部指令称为该CPU的指令系统,也称为指令集(instruction set)。指令集与程序设计密切相关,也是构建CPU的主要依据,所以也称为CPU的指令集架构(instruction set architecture,ISA),简称CPU架构。

Intel公司早期的16位、32位处理器使用的指令系统是IA32(也称为x8632)。现在生产的64位处理器保留了IA32的全部指令,扩充了许多新指令,特别是处理64位数据的指令,新的指令系统称为x8664(或者称为Intel 64)。现在,Core i9/i7/i5/i3、奔腾、赛扬、志强等都是x8664架构的处理器。

智能手机中的CPU则不然,它们大多采用ARM架构的微处理器。20多年来,ARM处理器指令系统经历了一系列的修改和扩充,形成了8个版本,每个版本又有若干变种(版本号之后用字母表示)。前七个版本适用于16位或32位微处理器,第8版(ARMv8A)则使用于64位的微处理器。由于ARM架构与x86架构互不兼容,在PC个人电脑上运行的软件下载到手机上将无法运行,反过来也是如此。

2. 处理器的微架构

处理器的微架构(micro architecture)是指处理器的组成、结构以及指令在处理器中如何执行等具体的实现方案和技术,如运算器(ALU)数目,指令执行流水线的条数与级数,cache存储器的级数和容量,多线程的支持能力,存储控制和I/O接口等。关于处理器微架构的知识在“计算机组成”(computer organization)课程中有更详细的介绍。

相同指令集的处理器,其物理组成和逻辑结构可以有多种不同方案,也就是说,相同架构的处理器可以使用多种不同的微架构来实现,这既取决于对处理器性能和成本的要求,也取决于集成电路的工艺水平。

例如,Intel公司的酷睿和志强、奔腾、赛扬处理器,它们都是x8664架构的64位微处理器。

但它们的微架构和制造工艺各不相同,性能也有明显差别。

ARM公司的处理器情况相仿。目前高端智能手机中使用的CPU几乎都是ARMv8A架构的64位处理器,ARM公司提供了CortexA53、CortexA57、CortexA72、CortexA35四种微架构的设计方案(俗称公版架构),华为即购买了其中CortexA53和CortexA72两种微架构的授权;而苹果公司和高通公司只买了ARM公司ARMv8A指令集的授权,处理器的微架构是自行设计的,然后再委托台积电、三星等集成电路厂家制造。这两种不同的做法取决于公司自身的研发实力、财力和产品开发周期等多种因素,各有利弊。

3. 多核处理器

微处理器有30多年的历史了。为了提高处理器的性能,其指令系统不断扩充和增强,工作频率(主频)不断提高,一些型号的处理器主频已经超过4GHz。然而,继续再提高处理器的主频遇到了很多困难,主要是因为提高主频后芯片功耗过大,散热问题难以解决。

另一方面,随着集成电路制造及封装技术的进步,现在已经有能力在一个集成电路芯片中集成多个处理器。同一CPU芯片中的每一个处理器人们称它为CPU核、内核或简称核(core),集成在1个CPU芯片中的每个核均可独立工作,它们在操作系统的协调下,分别执行不同的指令流(并行处理),从而提高了CPU的总体性能。

与服务器和个人电脑一样,现在几乎所有智能手机的CPU也都采用多个处理器核。从上面的表29可以看出,华为990芯片的CPU由8个处理器核组成,苹果A13芯片中CPU有6个核。只要软件设计得好,CPU中核的个数增多,CPU的性能就会相应提高。

4. 超线程

传统的CPU只有1个处理器核,每个核也仅有一个指令流在其中执行。随着芯片的集成度不断提高,处理器核开始包含多个执行部件。例如Intel的Haswell微架构处理器中有6个独立的执行部件(如地址计算部件、整数运算器、浮点数运算器等),这就为同时执行2个或多个指令流(线程)创造了条件。Intel公司把这种技术称为hyper threading——超线程。采用超线程技术之后,虽然硬件只是1个处理器核,但软件看到的却好像有多个处理器,可同时运行多个线程,从而减少了软件运行中的等待时间,提高了多任务操作系统并发执行多线程的能力。

当然,并发执行的两个线程只是共享处理器核中的执行部件,如果它们同时需要使用同一个部件(例如浮点运算器),其中一个线程必须暂停,直到该部件空闲后才能继续运行。

酷睿CPU芯片大多提供超线程功能,即芯片中的每一个处理器核均可同时运行2个线程,奔腾和赛扬CPU芯片中的处理器核则大多不支持超线程功能。

5. cache存储器

处理器核的工作速度很快,DRAM存储器的速度比较慢(差一个数量级),从存储器取数或向存储器存数时,处理器需要停下来等待,这显然难以发挥处理器的高速特性。解决的方法是采用cache存储器。

cache是一种高速缓冲存储器,简称快速缓存或缓存、快存,它直接制作在CPU芯片内,而且采用SRAM存储电路,其速度几乎与处理器核一样快。处理器在运行程序时,会将最近一段时间可能使用的指令和数据预先成批读出送入SRAM构成的cache存储器。运行程序的过程中,每当处理器需要从内存读取指令或数据时,先检查cache中有没有,若有,就从cache中读取,而不用访问DRAM存储器。

采取这种做法的原理是:在一段时间内,处理器所执行的指令和处理的数据往往集中于存储器的局部范围之内。把这一段时间可能被频繁访问的指令和数据预先从DRAM存储器读到cache中,则处理器在这段时间内将不再或很少去访问速度较慢的DRAM内存,因而大大加快了程序的运行速度。

cache的一个重要指标是命中率,即处理器需要的指令或数据在cache中能直接找到的概率。cache容量越大,访问cache的命中率就越高,cache的级数越多,命中率也越高。

表210是前述几种处理器核的cache存储器的比较。它们的共同点是每个核中的第1级cache(L1)都分为数据cache(Dcache)和指令cache(Icache),不同之处是L2 cache和L3 cache并非每个核都有,有些CPU芯片中L2、L3 cache是被所有核共享的。

表210几种处理器核的cache存储器比较

处理器核L1 IcacheL1 DcacheL2 cacheL3 cache

Inteli7 5960x64KB64KB256KB/核20MB (8核共享)

Intel赛扬G182064KB64KB256KB/核2MB (2核共享)

ARM CortexA7248KB32KB0.5~4MB (4核共享)无

ARM CortexA5364KB64KB128KB (4核共享)无

Apple Twister64KB64KB3MB (2个核共享)4MB (2核共享)

处理器在执行指令过程中需要操作数和指令时,首先访问L1 cache,如果不在L1 cache中,则自动转去访问L2 cache,如果L2中也没有该数据或指令,再访问L3 cache,如果仍然找不到的话,它就通过存储控制器访问主板上安装的DRAM存储器,从其中成批地(一次至少64字节)读入所需要的数据或指令。

6. 功耗与电源管理

32位/64位的CPU芯片是极其复杂的一个电子电路系统,它包含有几亿甚至几十亿个晶体管,工作频率又很高(1~4GHz),因而功耗较大。以Intel公司酷睿CPU芯片为例,它们的满负荷功耗小则几十瓦,大则超过100瓦。CPU工作时芯片发热,温度升高,如不及时散热则工作异常,甚至芯片被烧毁。为此台式PC的CPU芯片一般都安装了专门的散热风扇以降低芯片的温度。大型机/服务器等甚至还使用水冷或液氮冷却的方法进行散热。

智能手机等移动终端设备受到体积、重量和电池供电等多种因素的限制,对CPU/SoC芯片的功耗提出了严格的限制。ARM处理器由于采用RISC架构,又考虑到上网、聊天、照相等应用的控制流不复杂,执行效率不必很高,所以在处理器的微架构设计中简化了硬件逻辑,流水线、分支预测等都比较简单,减少了晶体管数目,同时又对电源管理做了特别设计(如处理器在待机时以极低的主频运行,暂时关闭闲置的CPU核和协处理器等;又如SoC芯片中可以集成异构的处理器核,当手机工作负荷不重,则由低功耗的核运行,若工作负荷增加,再启动高性能核运行),因而芯片的功耗大为降低,一般会比台式PC所用CPU芯片的功耗低一个数量级。

2.3智能手机

1. 发展概述

手机是移动电话(mobile phone)的简称,它是个人移动通信系统的终端设备。按照移动通信网的技术划分,手机相应地也分为1G手机(俗称“大哥大”,模拟手机)、2G手机(GSM或CDMA手机)、3G手机(分3种制式)、4G手机(分TDDLTE和FDDLTE)和5G手机;如果按照手机的功能划分,可分为笨手机(dumb phone)、功能手机(feature phone)和智能手机(smart phone)三大类。笨手机只能用来打电话,很少有其他功能。功能手机除了电话功能之外,还具有收发短信、通讯录、计算器、收音、录音、日历与时钟、简单游戏和手电筒等功能,有些还可以拍照和播放MP3等。智能手机的功能比功能手机更丰富多样,它可以像PC个人电脑一样接入互联网,下载安装第三方软件,不断扩充功能。

智能手机可以认为是电话+电脑+数码相机+电子书+音视频播放器+导航仪+……, 它既是手机,又是电脑、相机,还是身份证和钱包. 一般认为,智能手机有如下一些技术特点:

 具有无线接入移动电话网和互联网的能力;

 具有功能强大的通用操作系统,软件丰富,操作方便;

 用户可安装、卸载和更新应用软件,与通用计算机保持数据兼容;

 具有文字、图像、音频、视频处理的多媒体信息处理功能。

实际上,智能手机就是一台可以随身携带的真正的个人多媒体电脑。与台式PC相比,除了屏幕较小,不带键盘和没有大容量硬盘以外,其他如CPU速度、内存容量等已相差不多。不仅如此,智能手机还有许多传统PC所不具备的能力,如4G/5G移动通信、环境感知、位置服务等。

2. 智能手机的硬件结构

智能手机对硬件的要求很高。例如,需要使用高速度、低功耗、具有较强多媒体信息处理能力的64位CPU芯片;需要有容量较大的内存和辅助存储器;需要有分辨率高面积较大的触摸式显示屏;需要有多种无线通信和联网功能;还需要配备大容量电池等。

以苹果公司的iPhone 6s/6s plus手机为例,其电路结构如图228所示。整个硬件系统的核心是2块SoC芯片,一块是高通公司的基带处理器(baseband processor),它负责音频信号的A/D和D/A转换,在信号发送时把音频信号压缩编码成供发射的基带信号;接收时把收到的基带信号解码为音频信号。同时,它也负责地址信息(手机号、网站地址)、文字信息(短信文字、网站文字)、图片和视频信息的编/解码;三个射频信号收发器负责调制/解调、信道编/解码等功能。另一块SoC芯片是苹果公司设计、三星电子代工生产的片上系统Apple A9,它以主频为1.85 GHz的双核Twister CPU (ARMv8A架构)为中心,负责运行iOS操作系统和各种应用程序(App),对整个手机进行控制和管理,该芯片还包括图形处理器GPU、图像处理器、音频处理器、定时控制、电源管理和多种I/O接口电路等模块。

图228iPhone 6s/6s plus手机的电路结构图

图229iPhone 6s手机的主板和IC芯片

图229是iPhone 6S手机拆解之后主板(10层印制电路板)的照片,上面是朝向显示屏的一面,下面是它的背面,仅供参考。为了节省空间,2GB容量的LPDDR4内存芯片与A9 SoC芯片相互叠在一起,这种技术称为堆叠式封装(package on package, PoP)。

其他智能手机的结构与图228和图229相仿,不同的是,苹果手机使用了两块SoC芯片,其中一块是Apple A9,另一块是高通公司用于移动通信的SoC;而华为手机只使用1块SoC,因为华为自行设计的移动通信模块(基带处理器)与CPU、GPU等都集成在同一SoC芯片中,这不仅缩小了主板体积,也有助于节省功耗。

2.4无线I/O接口——蓝牙和NFC

智能手机等移动终端设备,由于体积的限制,它们大多采用无线通信方式与外设进行连接。常用的无线I/O接口有两种:蓝牙和NFC,它们可以连接鼠标、键盘、打印机、耳机、音箱、手环、智能手表等。即使是台式电脑,在USB接口插入一个蓝牙适配器之后,原先用于连接鼠标、键盘、打印机、音箱的电缆线就不需要了。

1. 蓝牙

蓝牙是一种短距离无线通信技术,最早由瑞典爱立信公司提出,IEEE曾将它作为个人无线区域网协议(802.15.1)的标准,现今由蓝牙技术联盟负责监督蓝牙规范的开发、认证管理和商标保护。蓝牙技术自1999年推出1.0版后,经过多次演变,目前最新的版本是蓝牙5.0版。

蓝牙使用的通信波段为2.4~2.4835GHz。2.4GHz是全球范围内工业、科学和医疗(ISM)使用的短距离无线电频段。蓝牙使用跳频技术(每秒跳1600次),它将传输的数据分割成数据包,通过40个蓝牙频道分别传输数据包(第一个频道始于2.402GHz,间距2MHz,至2.48GHz)。

蓝牙的最高数据传输速率在1~24Mb/s之间(版本越高速率越高),传输距离一般在10m之内(版本越高传输距离越远),但它与传输条件、天线配置和电池状态等有关。蓝牙5.0在低功耗模式下具备更快更远的传输能力,传输速率为2Mb/s,支持室内定位功能,与WiFi结合可以实现精度小于1m的室内定位。蓝牙技术针对物联网进行了底层优化,以更低的功耗和更高的性能为智能家居服务。

蓝牙采用主从方式进行通信。每一对设备进行通信时,必须一个为主设备,另一个为从设备。主设备以跳频的方式去寻呼周围处于可被查找状态的蓝牙设备,从设备则以固定时间间隔扫描有无寻呼信号,当扫描到有寻呼信号时便会响应该寻呼信号,然后主设备输入从设备的 PIN码(有一些设备不需要)进行配对。配对的设备建立连接后,即可进行双向的数据通信,从设备还会记录下主设备的信任信息(称为绑定),以便在下次寻呼时不再需要重新配对。在通信状态下,主设备和从设备均可主动断开连接。

上述配对—连接—传输数据的过程中,配对其实就是一个认证的过程。因为任何无线通信技术都存在被监听和破解的可能,为了保证蓝牙通信的安全,必须先认证(配对)再连接,然后进行数据传输。为使用方便,蓝牙2.1之后的版本采用安全简易配对(SSP)方法,可区分三种情况进行不同的配对处理:

(1) 即刻工作(just works)。对于蓝牙耳机、音箱、手环、智能手表等没有输入界面的设备,几乎无须用户操作即可配对(一般过程为:① 手机等主设备开启蓝牙,搜索附近可用的蓝牙设备;② 打开耳机或音箱等从设备,长按蓝牙键若干秒,使进入配对模式;③ 在主设备上选择需连接的从设备;④ 手机显示连接成功,进入工作状态)。

(2) 数值对比(numeric comparison)。如果两个蓝牙设备都有显示屏,且至少一个设备用户能输入“是/否”(例如两个手机),则可在双方设备上分别显示一个6位数字,如果两个数字相同,就在可接受输入的设备上确认配对。

(3) 万能钥匙(passkey entry)。此方法可用于一个有显示屏的设备和一个有数字键盘输入的设备(例如1个手机和1个蓝牙键盘),或两个有数字键盘输入的设备。第一种情况下,显示屏上显示6位数字,用户可在另一设备的键盘上输入该数字。第二种情况下,两个设备需同时在键盘上输入相同的6位数字。

蓝牙设备可以在主/从两个角色之间切换:平时工作在从模式,等待其他主设备来连接,需要时,可转换为主模式,向其他设备发起呼叫。一个蓝牙主设备理论上可同时与7个蓝牙从设备进行通信。

蓝牙技术具有许多特点:功耗低、体积小、便宜,很容易集成在其他设备中;延迟时间短(最短可在3ms内完成连接并开始传输数据);可靠性高(所有数据包都使用24位CRC校验,抗干扰能力强);安全性好(使用AES128 CCM加密算法进行数据包加密和认证)。特别是蓝牙4.0版之后的低功耗蓝牙(简称BLE),它不工作时可以休眠,只在需要执行动作的时候才唤醒,功耗很小,已经大量使用在娱乐、运动、保健、家居、医疗、车载等领域中,各种可穿戴智能设备如手表、手环、手套、帽子、跑鞋、血压计、心电监测仪等都采用低功耗蓝牙技术。现在iOS系统、Android系统、Windows8/10系统等都已经提供对蓝牙技术的支持。

2. 近场通信NFC

近几年一种称为NFC(近场通信,近距离通信)的应用正在手机中推出。NFC由非接触式射频标签(RFID)技术演变而来,它是一种近距离高频无线通信技术,工作频率为13.56MHz,通信距离仅限10cm之内,传输速度有106kb/s、212kb/s和424kb/s三种。

NFC技术与现在广泛使用的校园卡、公交卡之类的非接触式IC卡保持兼容(ISO 14443即Mifare标准和FeliCa标准的IC卡),芯片中含有加/解密逻辑电路,安全性好。内置了NFC芯片的设备(如某些手机)有3种工作模式:

(1) IC卡仿真模式(card emulation)。此时手机就当作一张非接触式IC卡使用,以替代信用卡、银行卡、公交卡、门禁卡,校园卡等。这种方式的优点是机卡合一,手机没联网也可以工作。

图230NFC(近场通信)的应用

(2) 读卡器模式(reader/writer mode)。此时NFC手机可作为非接触IC卡的读卡器使用。例如,在相应软件的支持下,查询公交卡、校园卡中的余额,从展览会海报的电子标签(RFID)上读取更进一步的内容介绍等,此时NFC起着数据采集的作用。

(3) 点对点模式(P2P mode)。此模式用于数据交换,两个NFC手机紧靠一起,实现数据点对点传输,例如传输音乐、交换照片或者同步通信录等。

现在,NFC技术已经配置在许多4G、5G手机中。2016年2月,基于NFC的手机支付功能Apple Pay(苹果支付)在中国上线。用户事先将信用卡或借记卡的信息存储在苹果iPhone手机中,付款时将手指放在手机的指纹识别传感器上,手机靠近支持NFC的POS机,1至2s即可完成支付(需要时还应输入银行卡密码)。使用NFC支付不要WiFi,不要接入互联网,也不需要点击进入App,甚至无须唤醒显示屏即可完成支付。目前包括南京在内的一些城市已经开通了使用手机NFC功能刷卡乘坐地铁和公交车的服务,用户只需下载一个App并完成开卡,利用支付宝、微信等充值后就可以使用,即使手机在通话中或锁屏时,甚至在没电的情况下,都可以照常刷卡乘车。

NFC和蓝牙都是短距离通信技术,它们也都集成在智能手机中,虽然两者有不少共同点,但它们的技术性能和应用目标有明显区别,表211是NFC、蓝牙和低功耗蓝牙3种技术的比较。

表211NFC、蓝牙和低功耗蓝牙3种技术的对比

NFC蓝牙低功耗蓝牙

工作频率13.56MHz2.4~2.5GHz2.4~2.5GHz

传输方式点对点单点对多点单点对多点

传输距离<0.1m<10m1m

传输速度106/212/424kbps2.1Mbps1.0Mbit/s

连接时间<0.1s<6s<0.006s

数据加密硬件实现软件实现软件实现

RFID兼容性是否否

功耗<15mA (read)中<15mA (xmit)

2.5显示卡与GPU

1. 计算机绘图的过程

早期个人电脑屏幕上显示的内容主要是文字、数字和符号,显示输出的过程比较简单。随着图形用户界面的操作系统的普及和图像应用的增多,屏幕上显示二维图形图像的内容日益丰富,对画面的分辨率、色彩、生成速度等要求越来越高,显示输出的过程变得复杂起来。

进入21世纪后,随着3D游戏的大量出现和硬件价格的迅速下降,人们对计算机显示输出具有真实感的3D活动图像的要求越来越高,为此必须先在计算机内描述景物的结构、形状与外貌(称为“建模”),然后再根据其描述(模型)和用户的观察位置及光线情况,生成该景物的图像(称为“图像绘制”)。图像绘制阶段中,为了在显示器屏幕上显示出具有色彩、纹理、阴影、层次等具有真实感效果的3D景物的图像,计算机必须高速完成一系列复杂的处理,例如:

(1) 将景物中各个物体的所有表面用大量的小多边形(三角形或四边形)进行近似表示。

(2) 用户选择一个观测位置,并设定取景范围,将景物向成像平面作透视投影[图231(a)]。

(3) 将景物中不在取景范围内的部分裁剪掉,同时,还把景物中所有被遮挡而看不见的部分隐去[图231(b)]。

(4) 根据景物表面材料的性质和环境光源的设定,计算出物体可见面上每一点(像素)的颜色及其亮度[图231(c)]。

(5) 根据景物表面和背景使用的材料,从纹理库中选择合适的纹理映射到物体和背景的表面。

(6) 计算出由于光源投射到物体所产生的本影和半影。

图231从景物模型绘制景物图像的过程举例

由于景物图像中每一个像素的颜色及其亮度都要经过大量计算才能得到,上述图像绘制过程的计算量非常大,必须使用专门设计的微处理器来完成,这就是PC显卡中或CPU/SoC芯片中的图形处理器GPU(又称图形引擎)。

2. 显示卡的组成

显示卡(显卡)是主机与显示器之间的“桥梁”, 它负责将CPU需要输出的图形和文字转换成显示器可接受的位图(bitmap)图像(称为图形绘制或绘图),然后以规定的频率一帧一帧地送至显示器,在显示器屏幕上呈现出用户可见的图像。

显示卡[图232(a)]的核心是绘图处理器(GPU)[图232(b)]。早期的显示卡没有GPU,绘图功能大多由CPU自行完成,所生成的位图数据存储在显卡的显示存储器中,显卡再将它们传输给显示器进行显示。这样既无法提高显示速度,又增加了CPU的工作负担。随着Windows图形用户界面的出现和图形图像应用的普及,这种弊端越来越严重,于是出现了图形处理器GPU。GPU是一种专用处理器,它有一组用于绘图和图像处理的专门指令,如数据块传送、基本图形绘制、区域填色、图案填充、图形缩放、颜色转换等。由于是硬件实现,所以既减轻了CPU的负担,又加快了图形绘制的速度。

图232显卡和GPU芯片

虽然GPU芯片接管了CPU的图形绘制功能,但只有配置了高速大容量的显示存储器才能使GPU芯片的性能充分发挥出来。显示存储器(显存)以前又称为帧存储器或刷新存储器,主要用于存储被显示图像的位图数据,在屏幕每次刷新时显示控制电路将其读出并转换为模拟信号,再经过VGA接口送到显示屏幕去显示。现在,显存不仅用于保存被显示图像的位图,而且还是GPU的工作存储器。在显示3D景物时,其图像是由最基础的材质贴图加上各种特效处理而形成的,因此显存还要保存材质数据、顶点数据和索引数据等,以供GPU芯片处理。

随着电脑游戏的场景越来越复杂,所用的材质也越来越丰富,需要的存储容量也不断增大。因此,显存的容量、速度和数据线宽度直接关系着显卡性能的高低。目前许多显示卡的存储容量已经达到GB量级。为了适应GPU和显示器对显存高速访问的要求,显存大多采用GDDR3、GDDR4或GDDR5存储器组成。GDDR是一种为显卡特别设计的高性能DDR存储器,它比主存中使用的普通DDR时钟频率更高,更适合搭配GPU芯片使用。

独立显卡通过PCIE×16接口插在主板上使用,现在广泛使用的PCIE×16显卡接口,它有16个通道同时串行高速传输数据,速率可以高达40GB/s。

独立显卡有高性能的图形处理器,还有专门的显示存储器。集成显卡的组成虽然在概念上与独立显卡相同,但物理结构上GPU包含在CPU芯片中,显示存储器则与主存储器合二为一,因而性能与独立显卡有明显差距。

3. PC和智能手机中的GPU

图形处理器(GPU)是一种专门用于图形/图像处理的微处理器,它具有图形绘制、图像处理与显示等必需的功能,有些还提供视频播放、视频压缩/解压缩的功能。GPU是专为执行复杂的数学和几何计算而设计的专用处理器,一些GPU的浮点计算性能和结构复杂程度甚至超过了普通的CPU。

考虑到3D景物中每个物体的形状与轮廓在计算机中都是由大量多边形(几十万、几百万个三角形或四边形)近似表示的,其中每个可见面上的每个像素的颜色和亮度均需要由物体的材质和光照条件来确定(称为像素的光照处理或像素的渲染/着色,即shading或lighting),所以GPU在图形绘制过程中需要执行大量的多边形几何变换和像素渲染计算(transform and lighting,T&L)。衡量一个GPU性能的好坏,关键是看它的T&L能力。多边形处理能力越强(主要由浮点运算速度决定),每秒可处理的多边形就越多,多边形数目越多,可表示的场景就越精致和复杂;像素渲染能力越强,每秒可处理的像素数目越多,图像的分辨率就越高,每秒钟可绘制完成的图像帧数也越多。

现在市场上的独立显卡大多采用美国nVIDIA和ATI两种品牌的GPU芯片。以2014年nVIDIA公司推出的图形处理器GeForce GTX 980为例,其芯片中有52亿个晶体管,工作频率为1.12GHz。它包含2048个光照计算处理器、128个纹理映射部件和64个输出部件,浮点运算速度为4612 GFLOP/s,每秒可处理720亿个像素,支持的显示存储器容量可达4GB,在中高端显卡中使用。

台式和笔记本电脑采用集成显卡时,图形处理器GPU与中央处理器CPU集成在同一个芯片中。例如Intel公司的Core i9/i7/i5/i3芯片中,GPU型号为Intel HD Graphics 4xxx、5xxx或6xxx。以HD Graphics 6000为例,它包含有48个执行部件,工作频率为1.0GHz,浮点运算速度为768 GFLOP/s,与独立显卡使用的GPU相比,它的T&L能力明显不如。不仅如此,还因为它没有自己专有的显示存储器,必须与CPU共享内存,所以集成显卡性能明显不及独立显卡,且一定程度上还会影响系统的整体效率。

智能手机的屏幕分辨率现在越来越高,用户对使用智能手机播放高清视频和玩3D游戏的兴趣也越来越浓厚,因此图形/图像处理性能也越来越受到用户的关注。由于智能手机的GPU与CPU集成在同一SoC芯片中,它们共享同一个内存,所以实质上属于集成显卡,性能还无法与独立显卡相比。

智能手机等移动设备上使用的GPU进展很快。目前使用较多的主要有英国Imagination公司的PowerVR系列、英国ARM公司的Mali系列、美国高通公司的Adreno系列等。例如苹果iPhone 6s和6s plus手机中使用的GPU是6核PowerVR GT7600,每个核有8个渲染流水线,每个流水线有4个处理部件(PE),每个PE在每个周期可以完成两次32位浮点数的乘加运算(MAD)。在450MHz工作频率下,其浮点运算速度理论上可达172.8 GFLOP/s,每秒可处理5.4G个像素。又如华为Mate 8手机使用的GPU是ARM公司设计的4核Mali T880,每个核有2条流水线和1个纹理单元,当工作频率为700MHz时,浮点运算速度约为95.2 GFLOP/s,像素处理能力大约每秒9.52G个像素。它们均能很好地支持分辨率为1920×1080的显示器流畅地进行图形显示和图像处理。

第3章计算机软件

第3章计算机软件

计算机系统分为两个基本组成部分,即计算机硬件和计算机软件。硬件是组成计算机的各种物理设备的总称,它在二进制世界里工作,功能虽然简单,速度却奇快无比;软件自始至终指挥和控制着硬件的运行过程,完成各种任务。没有软件,硬件就不知道做什么,计算机也就没有什么用处了。

3.1概述

3.1.1什么是计算机软件

1. 程序

从第2章的介绍中知道,目前的主流计算机都是按照冯·诺依曼“存储程序控制”的思想设计的。程序是告诉计算机做什么和如何做的一组指令(语句),这些指令(语句)都是计算机能够理解并可以执行的一些命令。所以,程序具有以下特点:① 完成某一确定的信息处理任务;② 使用某种计算机语言描述如何完成该任务;③ 存储在计算机中,并在启动运行(被CPU执行)后才能起作用。

计算机的任何一项功能都是计算机执行相应程序来完成的。计算机的通用性和应用的广泛性源自两个因素。首先,它通过执行各种不同的程序来完成各种不同的任务(图31);其次,程序可在需要时装入计算机,不需要时从计算机中卸载。程序多种多样数不胜数,计算机也就“无所不能”了。

图31不同程序完成不同的任务

需要说明的是,计算机中程序所处理的对象和处理后所得到的结果通称为数据(分别称为输入数据和输出数据)。程序必须处理合理、正确的数据,例如音乐播放程序必须输入MP3之类的音频数据,图像处理程序必须输入JPG之类的图像数据,否则不会产生有意义的输出结果。

2. 软件

软件的含义比程序更宏观、更物化一些。手机中的微信、淘宝、图库、联系人、百度等都是软件。一般情况下,软件往往指的是设计比较成熟、功能比较完善、具有某种使用价值的程序。而且,人们不仅把程序也把与程序相关的数据和文档统称为软件。其中,程序当然是软件的主体,单独的数据或文档一般不认为是软件;数据指的是程序运行过程中需要处理的对象和必须使用的一些参数(如三角函数表、英汉词典、通讯录等);软件文档指的是与程序开发、维护及操作有关的一些资料(如设计报告、维护手册和使用指南等)。通常,软件(特别是商品软件和大型软件)必须有完整、规范的文档作为支持。

软件和程序本质上是相同的。因此,在不会发生混淆的场合下,软件和程序两个名称经常可互换使用,并不严格加以区分。

至于“软件产品”,则是软件开发厂商交付给用户用于特定用途的一整套程序、数据及相关的文档(一般是安装和使用手册),它们以光盘或U盘作为载体,也可以免费或经过授权后从网上下载。

软件是智力活动的成果。作为知识作品,它与书籍、论文、音乐、电影、电视一样受到知识产权(版权/著作权)法的保护。软件版权是依法授予软件作者的权利,版权所有者唯一地享有该软件的拷贝、发布、修改、署名、出售等诸多权利。用户购买了一个软件,仅仅得到了该软件的使用权,并没有获得它的版权,因此随意进行软件拷贝和分发都是违法行为。

设立知识产权法的目的是为了确保脑力劳动受到奖励并鼓励发明创造。软件人员、发明家、科学家、作家、编辑、导演和音乐家等依靠他们在思想、观点和表达上的创新而获取收入。保护其权益就能充分发挥他们的创造能力,社会也将从他们的成果中受益。

3. 软件的安装与卸载

PC和智能手机购买时一般都预装了操作系统和若干常用的应用软件,开机即可使用。但人们经常还要使用一些其他软件,这些软件可以从网上下载。例如苹果公司的App Store,华为的应用市场,微软的应用商店,腾讯应用宝,安卓市场等,其中有些需付费购买,有些则可免费下载。

无论是从互联网下载的软件,还是光盘或者U盘中的软件,一般都需要在PC或智能手机上安装之后才能工作。所谓软件安装,就是将程序代码复制到辅助存储器中合适的位置,在系统目录中写入一些必要的应用程序扩展(如DLL),往系统的注册表中添加注册信息,设置环境变量和启动路径等。

Windows中的应用软件往往包含有1个安装程序或安装向导(文件名为setup.exe或install.exe等),用以协助用户安装该软件。智能手机的App从网上下载完毕后,经用户同意就自动安装。安装过程可能包含如下几个步骤:

● 把压缩形式的程序和数据进行解压缩,还原成电脑可读/可执行的二进制文件;

● 输入产品序列号,签署软件使用协议;

● 确定软件安装的选项,选择软件安装路径;

● 确认或拒绝软件所要求的权限。

软件安装完成后,一般都在桌面(屏幕)上留下其图标,询问是否清除安装包,是否立即打开(运行),有些软件还需要进行参数设置,有些则需要注册、登录后才能开始运行。

不再需要使用的软件可以从PC/智能手机中删去,以减少占用的资源(如辅助存储器空间等),这个过程称为软件卸载。卸载是安装的逆过程,注意要把该软件残留的数据一起删除干净。

3.1.2计算机软件的特性

在计算机系统中,软件和硬件是两种不同的产品。硬件是有形的物理实体,而软件是无形的,它具有许多与硬件不同的特性。

(1) 不可见性。软件是原理、规则、算法的体现,它不能被人们直接触摸。程序和数据以二进位编码表示并通过电、磁或光的形式进行存储和传输,人们能看到的只是它的物理载体,而不是软件本身。它的价值也不是以物理载体的成本来衡量的。

(2) 适用性。成功的软件一定能满足某种需求,它或者可以完成传统工具/方法很难完成甚至不可能完成的任务,或者能以更方便、更有效的方式完成该任务。例如,网页搜索软件能为用户快速寻找所需要的信息,支付宝可以方便地帮人们收付款。

(3) 依附性。软件不像硬件产品那样能独立存在,它要依附一定的环境(平台)。这种环境是由特定的计算机硬件、网络和其他软件组成的。没有一定的环境,软件就无法正常运行,甚至根本不能运行。例如在PC上极有价值的一些软件,在智能手机上可能毫无用处;而手机上的软件也没法在PC上运行。

(4) 复杂性。现今,能获得广泛使用的软件都相当复杂,不仅在功能上要满足应用的需求,而且响应速度要快,操作使用要灵活方便,工作要安全可靠,对运行环境的要求要低,还要易于安装、维护、升级和卸载等,所有这些都使得软件的规模越来越大,结构越来越复杂,开发成本也越来越高。当今的软件产品,一般都是由软件公司组织许多软件人员,按照工程的方法进行开发并经过严格测试后完成的。

(5) 易复制性。软件是以二进位表示,以电、磁、光等形式存储和传输的,因而软件可以非常容易且毫无失真地进行复制,这就使软件的盗版行为很难绝迹。软件开发商除了依靠法律保护软件之外,还经常采用各种措施来确保其软件产品的销售量,以收回高额的开发费用并取得利润。

(6) 不断演变性。由于计算机技术发展很快,用户需求又会不断发展和变化,软件投入使用后还需要开发人员不断进行修改和完善,排除错误、扩充功能、适应不断变化的环境,这就导致了软件经常更新和版本升级。例如腾讯公司的微信软件从2011年5月推出正式使用的2.0版后,经过几十次的更新和发展,迄今(2020年5月)已经是7.0.15版。

(7) 有限责任。软件的正确性无法采用数学方法予以证明,目前还没有人知道怎样才能写出没有任何错误的程序,因此软件功能是否百分之百正确,它能否在任何情况下都正确运行,软件厂商无法给出承诺。为此有些软件厂商要求用户在使用软件之前接受有关协议。例如微信软件的使用协议中有如下条款:

“7.2.4你理解并同意腾讯将会尽其商业上的合理努力保障你在本软件及服务中的数据存储安全,但是,腾讯并不能就此提供完全保证,包括但不限于以下情形:

7.2.4.1腾讯不对你在本软件及服务中相关数据的删除或储存失败负责;

7.2.4.2…………”

(8) 脆弱性。随着互联网的普及,计算机之间相互通信和共享资源一方面给用户带来许多方便和好处,同时也给系统的安全和软件的可靠运行带来了威胁。其原因一方面是因为软件设计和实现中难免存在漏洞,另一方面也是由于软件不是“刚性”的产品,它容易被篡改和破坏,所以使违法和犯罪行为有机可乘。

3.1.3计算机软件的分类

1. 系统软件和应用软件

按照不同的角度和标准,可以将软件划分为不同的种类。如果从软件功能和作用的角度出发,通常将软件大致划分为系统软件和应用软件两大类。

(1) 系统软件

系统软件泛指那些为了安全有效地使用计算机系统、给应用软件开发与运行提供支持或者能为用户管理和使用计算机提供方便的一类软件,例如基本输入/输出系统(BIOS)、操作系统(如Windows、iOS等)、程序设计语言处理系统(如C语言编译器)、数据库管理系统(如ORACLE、Access等)、通信协议软件、常用的实用程序(如磁盘清理程序、备份程序、杀毒软件等)等都属于系统软件。

系统软件的主要特征是:它与计算机硬件关系密切,能对硬件资源进行统一的控制、调度和管理;系统软件具有基础性和支撑作用,它是应用软件的运行平台。在通用计算机(如PC、智能手机、平板电脑等)中,系统软件是必不可少的,具有很重要的作用。即使是洗衣机、微波炉之类的嵌入式系统中,也安装/固化有一些监控程序(monitor),否则设备将无法启动工作。

(2) 应用软件

应用软件(application software,简称App)泛指那些专门用于为最终用户解决各种具体应用、完成特定任务的软件。由于计算机的通用性和应用的广泛性,应用软件比系统软件更加丰富多样。

计算机工作时,硬件、系统软件和应用软件既有分工又有合作,三者有序配合协同完成预定的任务。图32是计算机运行财务管理软件时,用户按下“P”键后计算机打印工资报表的过程。

图32计算机硬件、系统软件、应用软件的分工与合作

按照应用软件的开发方式和适用范围,应用软件可再分成通用应用软件和定制应用软件两大类。

① 通用应用软件

生活在现代社会,不论是学习还是工作,不论从事何种职业、处于什么岗位,人们都需要阅读、书写、社交、娱乐和查找信息,有时可能还要做讲演、发消息等。所有这些活动都有相应的软件使之更方便、更有效地完成。由于这些软件几乎人人都需要使用,所以把它们称为通用应用软件。

通用应用软件分若干类。例如文字处理软件、网页浏览软件、游戏软件、音视频播放软件、通信与社交软件、信息管理软件、演示软件、电子表格软件等(表31)。这些软件的用户很多,使用非常频繁,它们设计得很精巧,不同系统和平台有不同的版本(如PC电脑版、iOS版、安卓版等),大多易学易用,许多软件几乎不经培训就能上手,在日常工作、学习和生活中发挥了很大的作用。

注意,表31中同类软件往往有多个,它们由不同的公司开发,功能大体相同,所处理的数据格式大致统一却又有区别,但可以直接或经过转换后交换使用。

表31通用应用软件的主要类别和功能

类别功能流行软件举例

文字处理软件文本编辑、文字处理、桌面排版等WPS Office、Word、Adobe Acrobat等

电子表格软件表格设计、数值计算、制表、绘图等Excel、WPS Office等

演示软件投影片制作与播放PowerPoint、WPS Office等

网页浏览软件浏览网页、信息检索、电子邮件通信等微软IE、搜狐、UC浏览器、Firefox、Safari、Chrome、Edge等

音视频播放软件播放各种音频和视频等数字媒体Microsoft Media Player、Real Player、QuickTime、暴风影音、Winamp等

通信与社交软件电子邮件、聊天、微博、微信等Outlook、QQ、微信、Facebook、Skype、FaceTime、Twitter(推特)等

个人信息管理软件记事本、日程安排、通讯录Outlook、记事本、联系人、备忘录等

购物及支付软件购物、订票、订房、打车、支付手机淘宝、铁路12306、携程旅行等

游戏软件游戏和娱乐下棋、扑克、休闲游戏、角色游戏等

② 定制应用软件

定制(或半定制)应用软件是按照不同领域用户的特定应用要求而专门设计开发的。如超市的销售管理和市场预测系统、汽车制造厂的集成制造系统、学校教务管理系统、医院信息管理系统、酒店客房管理系统等。这类软件专用性强,设计和开发成本相对较高,主要是一些机构用户购买,因此价格比通用应用软件贵得多。

2. 商品软件、共享软件和自由软件/开源软件

如果按照软件权益的处置方式来进行分类,则软件有商品软件、共享软件(shareware)和自由软件(free software)之分。

商品软件的含义不言自明,用户需要付费才能得到其使用权。它除了受版权保护之外,通常还按照软件许可证(license)的规定使用软件。例如,版权法规定用户将一个软件复制到多台机器去使用是非法的,但若购买了多用户许可证,则就允许同时安装在若干台计算机上使用,或者允许所安装的一份软件同时被若干个用户使用。

共享软件是一种“买前免费试用”的具有版权的软件,它通常允许用户试用一段时间,也允许用户进行拷贝和散发(但不可修改后散发)。如果过了试用期还想继续使用,就得交注册费,成为注册用户才行。这是一种为了节约市场营销费用的有效的软件销售策略。

自由软件的创始人倡导软件的“非版权”原则,即在协议规定下用户可共享软件,允许随意拷贝和修改其源代码,允许自由传播,但对软件源代码的任何修改都必须向所有用户公开,还必须允许其他用户享有进一步拷贝和修改的自由。在自由软件精神的启迪下出现了“开源软件”(opensource software)。开源软件指在软件发行的时候必须附上完整的源代码,并在协议规定下用户可以修改和再发布。开源软件并不反对商业收费。许多开源软件都是多人合作义务开发的成果。例如Apache HTTP服务器软件,osCommerce电子商务平台、Mozilla Firefox(火狐狸)浏览器、LibreOffice办公套件、GNU/Linux和Android操作系统的内核等。自由软件/开源软件的发展对于软件共享和技术创新起了很好的促进作用。

除了上述三类软件之外,还有一种免费软件(freeware),它是一种无须付费就可取得的软件,但用户并无修改和分发该软件的权利,其源代码也不一定公开。例如Adobe Reader、Flash Player、360杀毒软件等。大多数自由软件都是免费软件,但免费软件并不全都是自由软件。

现在,苹果公司、谷歌、微软等不少厂商在互联网上开设了应用软件商店(Apple App Store、Google Play和微软应用商店等),向用户提供了数以几十万计的应用软件,其中有需要收费的商品软件,也有大量免费软件。软件商店提供的一站式服务具有快捷下载和安装、快速更新、便于维护和管理等特点,是软件销售模式的一次革命。应用软件商店负责对软件进行审核、发布和营销,其面向全球市场和所采用的利润分配策略(如开发者能得到应用软件销售额中的可观部分),激发了软件研发人员开发更多应用软件的热情,它为智能手机构建了一个丰富多彩的应用软件生态环境。

复习题

(1) 什么是计算机软件?计算机软件有哪些特性?

(2) 什么是共享软件和自由软件?它们的意义何在?

(3) 从功能角度出发,软件分为哪两类?你会使用哪些通用应用软件?

(4) 你的智能手机上安装了哪些软件?哪些是系统软件,哪些是应用软件?

3.2操作系统

操作系统(OS)是计算机中最重要的一种系统软件,它由许多程序模块组成,它们能以有效、合理和安全的方式组织和管理计算机的软硬件资源,科学地安排计算机的工作流程,控制和支持应用程序的运行,并向用户提供用户界面(人机接口),使用户能容易

、方便、有效、安全地使用计算机,确保整个计算机系统高效有序安全地运行。

3.2.1概述

1 操作系统的作用

操作系统主要有以下几个方面的重要作用。

(1) 为计算机中应用程序的运行提供支持和服务

计算机是通过运行应用程序(App)来完成各种任务的。应用程序虽然多种多样,功能各异,但它们的运行过程有许多共同之处。例如,它们都需要从辅助存储器(硬盘或闪存)读出然后再装入内存(RAM);都需要在屏幕上显示信息并从键盘(或触摸屏)上接收用户的输入;需要与其他计算机通信;需要访问文件系统和数据库等等。操作系统的任务之一就是为应用程序提供这些共性的服务,减轻App的工作负担,提高App的效率。

(2) 为计算机中运行的应用程序管理和分配系统资源

计算机中一般总有多个程序在运行,例如在使用Word编辑文档时,还使用媒体播放器播放MP3音乐、杀毒软件正在杀毒、邮件程序正在接收电子邮件等,这些程序在运行时都需要使用系统中的资源(例如占用内存、访问硬盘、在屏幕上显示信息等)。此时,操作系统就承担着硬件和软件资源的调度和分配任务,以避免冲突,保证程序正常有序地运行。操作系统的资源管理功能主要包括处理器管理、存储管理、文件管理、I/O管理等几个方面。

(3) 为用户操作使用计算机提供友善的人机接口

人机接口也称用户接口或用户界面(UI),它的任务是方便用户操作、实现用户与计算机之间的通信(对话)。现在,几乎所有操作系统都向用户提供图形用户界面(GUI),它以矩形窗口的形式显示正在运行的各个程序的状态,用图标(icon)来形象地表示系统中的文件、程序、设备等对象,用户借助点“菜单”的方法来选择要求系统执行的命令或选项,利用鼠标器或触摸屏控制屏幕光标移动,并通过点击启动某个操作命令的执行。使用户能够比较直观、灵活、方便、有效地使用计算机,减少了记忆操作命令的沉重负担。

(4) 为应用程序的开发提供一个高效率的平台

人们常把没有安装任何软件的计算机称为裸机,在裸机上开发应用程序难度大,效率低

,可靠性差。安装了操作系统之后,实际上呈现在应用程序和用户面前的是一台“操作系统虚拟机”

(图33)。操作系统屏蔽了几乎所有物理设备的技术细节,它以规范、高效的方式(例如

系统调用、应用框架、库函数等)向应用程序提供了有力的支持,从而为开发和运行其他系统软件及各种应用软件提供了一个高效率的平台。

图33操作系统的作用和地位

除了上述四个方面的作用之外,操作系统还能处理软硬件错

误、监控系统性能、保护系统安全,等等。总之,有了操作系统,计算机才能成为一个高效、可靠、通用的信息处理系统。

2. 操作系统的组成

现在,无论PC还是智能手机,系统中都安装有操作系统。应用软件必须在操作系统的管理和支持下运行,操作系统是应用软件的运行平台,在系统中起着基础设施的作用。

操作系统是一种功能丰富、技术复杂的软件产品,它们通常由操作系统内核(kernel)和其他许多附加的配套软件所组成,包括图形用户界面程序、常用的应用程序(如日历、计算器、资源管理器、网络浏览器等)和实用程序(任务管理器、磁盘清理程序、杀毒软件、防火墙等),以及为支持应用软件开发和运行的各种软件构件(如应用框架、编译器、程序库等)。图34是操作系统组成的示意图。

图34操作系统的组成和操作系统内核

操作系统内核(kernel)指的是提供任务管理、存储管理、文件管理、通信支持和设备管理等功能的一组软件模块,用于为其他软件(包括应用程序)提供服务。开机后内核通常都驻留在内存中,它以CPU的最高优先级运行,能执行指令系统中的所有指令(包括特权指令),具有直接访问各种外设和全部主存空间的特权,负责对系统资源进行管理和分配。

操作系统内核通常情况下,操作系统内核和操作系统并不严格区分,读者可按照上下文进行理解。并不是完整的操作系统。软件公司还需要在操作系统内核的基础上再进行开发,配置各种程序库和应用框架,设计用户界面,提供常用的应用程序和实用程序,然后才能作为一个完整的操作系统产品提供用户安装使用。以华为智能手机为例,其操作系统由两部分组成:安卓系统(内核及程序库、应用框架等)和华为自行开发的用户界面程序EMUI及若干常用的应用软件。

相同内核的操作系统可以有多种不同的产品。例如,微软Windows操作系统大多使用NT内核,只是版本有差别而已。Windows XP内核是NT5.1,Windows Vista的内核是NT 6.0,Windows7、Windows 8.1和Windows 10的内核分别是NT 6.1、NT 6.3和NT 10.0,服务器操作系统如Windows Server 2003、2008、2012的内核都是NT,就连用于智能手机的Windows Phone 8.1操作系统其内核也是NT 6.3版。

同样,采用Linux内核的操作系统也有许多种,如属于自由软件的GNU/Linux操作系统等。智能手机中广泛使用的Android(安卓)操作系统也是在Linux内核的基础上由Google公司开发而成的。

目前个人电脑和移动终端设备使用的操作系统主要有Windows、iOS和Android(安卓)三种。本节余下内容重点介绍Windows操作系统的内核,有关iOS和Android操作系统的内容可参见阅读材料3.1的介绍。

3 操作系统的启动

操作系统安装后大多驻留在硬盘、NAND闪存之类的辅助存储器中,计算机开机前内存中并没有操作系统。当加电启动计算机时,CPU首先执行主板上固件(如BIOS)中的自检程序,测试计算机主要部件的工作状态是否正常。若无异常情况,CPU继续执行BIOS中的引导装入程序,按照CMOS中预先设定的启动顺序,依次搜寻计算机中的辅助存储器,若找到需要启动的操作系统所在的辅存,则将其第一个扇区的内容(主引导记录)读到内存,然后将控制权交给其中的操作系统引导加载程序,由引导加载程序继续将硬盘中的操作系统装入内存。操作系统加载到内存后,整个计算机就处于操作系统的控制之下,用户就可以正常地使用计算机了。图35(a)是开机后操作系统的加载过程,图35(b)是操作系统加载成功后计算机运行时内存储器中的大致态势。

图35操作系统的加载过程和运行时的内存态势

在PC开机加电自检至执行引导装入程序之间,用户若按下某一热键(如Del键或F1、F2、F8键,不同BIOS的规定不同

),就可以启动BIOS中的CMOS设置程序。CMOS设置程序允许用户对系统的硬件配置信息和有关参数进行修改。CMOS

中存放的信息包括:系统的日期和时间,系统的口令,系统中安装的硬盘、光盘驱动器的数目、类型及参数,显示卡的类型,加载操作系统时访问辅助存储器的顺序等。这些信息非常重要,一旦丢失就会使系统无法正常运行,甚至不能启动。

自Windows 8.1开始,Windows系统支持两种启动模式:一种是上述传统的BIOS启动模式;另一种是UEFI(统一的可扩展固件接口)安全启动模式,后者在启动过程中会检验每个软件的数字签名,确保只使用可信任的软件启动电脑。

不同计算机和不同操作系统的开机启动及OS加载过程大体相似,但具体细节有不少差别。阅读材料3.4介绍了Windows系统和安卓系统的开机启动过程,这对于计算机设备无法正常启动时判断问题何在有一定帮助。

3.2.2多任务处理与处理器管理

1. 什么是多任务处理

从用户角度来看,计算机的功能就是运行App为用户执行任务。任务可以由用户启动(通过点击屏幕上的某个图标或菜单中的某个选项),例如编写文档、播放音乐、收发微信等,任务也可以由外部世界或OS自行启动(例如病毒查杀、微信通知、来电显示等)。

计算机中每个任务都对应着某个程序(如App),计算机执行任务其实就是让CPU运行相应的App,前提是该任务所对应的App已经预先下载并安装在计算机中。一般而言,计算机中的任务总是处于下列3种状态之一:

(1) 未运行状态(not running)。App已经下载并安装在计算机中但还没有被启动时就处于未运行状态,此时除了App驻留在辅助存储器中需要占用一定空间之外,该任务不使用CPU,也不需要内存空间、屏幕和其他资源。

(2) 前台状态(foreground)。当用户用鼠标或手指点击某个任务的图标时,该任务就被OS启动,未运行状态就转变为前台状态。此时App所对应的程序代码已经加载到内存并被CPU执行,显示屏上出现该任务的会话窗,窗口中显示该任务的运行状态、提示信息和运行结果,并可接受用户的输入。

(3) 后台状态(background)。当用户启动另一个任务或者切换到另一个任务时,新任务进入前台运行状态,原先的前台任务就转入后台状态(智能手机在锁屏时前台任务也转为后台任务,解屏时再恢复为前台任务)。处于后台状态的任务其程序仍留在内存中,它可能运行,也可能不运行(后台不运行的状态称为挂起状态,suspended)。

无论是处于前台状态的任务还是后台状态的任务,需要时用户或者OS都可以终止(结束)该任务,收回该任务所占用的资源,使任务回到未运行状态。

人们日常生活中经常会同时进行多项工作,如一边看书一边做笔记,一边搞卫生一边听音乐等。为了适应人们的习惯,也为了提高CPU和其他计算机资源的利用率(因为计算机硬件速度极快,存储容量又很大),所以操作系统一般都能支持多个任务在计算机中同时进行,这种功能称为多任务处理(multitasking)。无论计算机CPU芯片中包含1个CPU核还是多个CPU核,多任务处理就是在OS的指挥和协调下,CPU轮流为每个任务运行其相应的程序(图36),内存要有条不紊地容纳每个程序的指令代码和相关数据,I/O设备能可靠地为所有任务服务,这些都需要OS中相应的模块如处理器管理、存储管理、I/O设备管理等提供支持和保障。

图36多任务处理

2. Windows系统的多任务处理

Windows操作系统启动以后,它就进入了多任务处理状态。这时,除了操作系统本身相关的一些程序在运行之外,用户还可以启动多个应用程序(如电子邮件程序、IE浏览器和Word等)同时工作,它们互不干扰独立运行。用户借助于“Windows任务管理器”可以随时了解系统中有哪些任务正在运行,分别处于什么状态,CPU的使用率(忙碌程度)是多少,存储器使用情况如何等有关信息(图37)。

图37使用Windows中任务管理器查看系统中的任务运行情况

在Windows系统中,每个已启动的任务在屏幕上通常都有一个窗口与之对应,该窗口既用于显示任务的进展状态和处理结果,也用于接收用户的输入。屏幕上只有一个窗口(称为“活动窗口”)能接收用户的输入(击键或按击鼠标),活动窗口通常位于其他窗口的最前面,它的标题栏与非活动窗口颜色深浅不同。活动窗口所对应的任务称为前台任务;活动窗口之外的其他窗口都是非活动窗口,它们所对应的任务均为后台任务。操作系统只把用户输入的信息传送到活动窗口对应的前台任务中去。

Windows中前台任务只能有1个,后台任务的数目原理上可以不受限制。后台任务只要条件具备都可以处于运行状态,如收发邮件、播放音乐等,而且,这些后台任务都可以在屏幕上显示各自的会话窗口,并及时更新其内容。

Windows操作系统采用并发多任务方式支持系统中多个任务的执行。所谓并发多任务,是指不管是前台任务还是后台任务,它们都能分配得到CPU的使用权(尽管时间很短),因而都可以同时运行。需要注意的是,从宏观上看,这些任务是在“同时”执行,而微观上任何一个时间点只有一个任务正在被CPU执行有多个内核的CPU,理论上可以同时有多个任务分别被不同的内核执行。,即多个程序的运行其实是由CPU快速轮流执行的。因此,如果后台运行的是音乐播放、文件打印、计算、收发邮件等任务,前台是需要人工操作的文字处理或交互式绘图任务,则CPU工作效率就很高;而如果同时启动了电子表格、字处理程序和绘图程序,它们都以交互方式工作,只有一个任务可处于前台状态接收用户的输入,其他都在后台一遍遍地查询有无输入而又得不到用户的输入,因此虽然启动了多个任务,但CPU的工作效率却并不高。

为了支持多任务处理,Windows中有一个处理器调度程序负责把CPU分配给各个已经启动且具备了运行条件的任务。调度程序一般采用按时间片轮转(比如1/20秒)的策略,即每个任务都能轮流得到1/20秒的CPU时间运行其程序,在时间片用完之后,调度程序再把CPU交给下一个任务,就这样一遍遍地进行轮转。只要时间片结束,不管任务有多重要,也不管它执行到什么地方,正在执行的任务就会被强行暂时停止执行,直到下一次得到CPU的使用权后再继续执行。

实际上,操作系统本身也有若干程序是与应用程序同时运行的(如图37中的后台进程),它们一起参与CPU时间片的分配。当然,不同程序的重要性不完全一样,它们获得CPU使用权的优先级也不一样,所以处理器的调度需要采用一定的策略。

3. 智能手机的多任务处理

目前智能手机等便携式设备屏幕较小,难以像PC那样支持多窗口显示,存储器容量也比较紧张,CPU性能(如工作频率)又受到限制,再加上电池容量有限,必须把降低功耗放在重要位置,因此与Windows相比,其多任务处理有其自己的特点。

PC的多任务处理确实有多个App在同时运行,即使从前台切换到后台,只要条件具备任务仍继续运行。而智能手机则不同,以iOS系统为例,用户单击Home键时系统退回桌面并将正在运行的任务切换到后台状态并暂停执行(称为“挂起”),如果重新点击该App的图标,它将立刻恢复到退出之前的状态继续运行。若内存容量紧张,OS可以将后台中挂起的任务清理出去(即终止该任务),使前台任务获得更多的存储空间。否则,如果也像PC那样几乎无限制地让许多后台任务继续运行,内存容量就成问题,电池的电量也会很快耗尽(若用户双击Home键,iOS可以显示出处于后台状态的所有任务,点击某个任务则可将它切换为前台运行状态,向上刷屏则可使之退出内存终结该任务)。

这种多任务处理的做法显然有许多不足,iOS的弥补措施是对不同App做不同的处置。即:有些转入后台状态的App进入挂起状态,有些转入后台的App允许继续运行。例如,音频播放、位置检测(如谷歌地图)、IP电话(如Skype)、蓝牙通信、软件下载等App切换到后台后,它们仍可继续运行;还有些App(如Safari浏览器、Mail邮件程序)允许最多申请10分钟的后台运行时间,时间一到就会被OS挂起。这样,用户可以一面浏览网页一面听音乐,一面下载软件一面查看文档,给用户提供了与使用PC类似的多任务处理的体验。

安卓系统的多任务处理与Windows系统更接近一些,被转入后台状态的任务虽然已经从屏幕上退出,但只要条件具备它们仍在后台运行。例如浏览器正在下载文件时被切换到后台,浏览器还会在后台继续下载而不被打断。只有在内存空间告急的时候,安卓系统才会终结该任务释放它所占用的资源。但这种做法最大的问题就是有太多后台任务,有些没必要的任务也在后台运行(甚至是有害的恶意软件),既费电,而且会导致前台任务运行迟钝。

从严格意义上讲,智能手机操作系统的多任务处理,只是一种有限的多任务机制,除了少数例外,大多数程序进入后台状态时,都要交出硬件资源(CPU、屏幕等)。即使是那些必须在后台运行的任务(如通信、音乐播放等),采用的也是一种“守护”模式,它们只在需要使用CPU时(有电话进来时或者进入下一首曲目时),才提交使用CPU的请求,并非一直在通过时间片轮流使用CPU资源。

3.2.3存储管理

1. 存储管理的任务

虽然计算机的内存容量不断扩大,但限于成本和空间等原因,其容量总有限制。在

运行规模很大或需要处理大量数据的程序时,内存往往不够使用。特别是在多任务处理时,存储

器被多个任务所共享,矛盾更加突出。因此,如何对存储器进行有效的管理,不仅直接影响到存储器的利用

率,而且还对系统的性能有重大影响。所以,存储管理是操作系统的一项很重要的任务。

操作系统运行时,内存(RAM)空间一般划分为两大部分:一部分是操作系统区,存放操作系统内核和相关数据;另一部分是用户区,存放正在执行的应用程序和数据。当用户启动某个任务时,OS必须将该任务在辅助存储器中所对应的程序代码及相关数据(例如Word程序和需要编辑的文稿)装入内存,然后才能由CPU运行和处理。由于支持多任务处理,所以系统中有许多任务(有的是前台状态,有的是后台状态),每个任务在内存的用户区中都有各自专属的存储区域(图38)。

图38操作系统运行时内存空间的布局

那么OS如何把内存的用户区分配给各个任务呢?最笨的方法是固定分区方法,即每个任务都分配一个大小固定、位置固定的区域。显然这种方法效率很低,任务数目受限制,任务可用的存储空间也受到约束。另一种方法是可变分区,具体做法是每个任务按需分配各占1个分区,位置可变,大小也可变,这种做法虽然克服了第1种方法的一些限制,但任务有时启动有时终止(终止时要收回分配的内存),任务运行过程中对于存储空间的需要又是动态变化的,有时要增加,用毕则归还,因此内存用户区会不断产生碎片,这些碎片需要回收和合并才能再次使用,降低了内存空间的使用效率。

尽管现在PC和智能手机中内存的容量不断增大,已经达到GB数量级的水平,但仍然不能保证有足够的空间来满足多任务处理的需要。因此,操作系统中存储管理的任务是:

● 为每个任务分配内存空间,任务终止之后再回收内存空间。

● 对内存空间进行保护。例如,保护操作系统所在区域不被应用程序随意访问和修改,保护每个任务的私有区域不被其他任务随意访问和修改等。

● 提供内存空间共享。允许一些存储区域被多个任务共享访问,提高内存的利用率。

● 对内存空间进行扩充,使任务的存储空间不受实际的物理内存容量大小的限制。

2. 虚拟存储技术

操作系统中解决存储管理的有效方案是虚拟存储器(virtual memory, VM)技术,虚拟存储技术也称为虚拟内存技术。它的基本思想如下:内存按固定大小(例如4KB)分成一个个“框”(frame),操作系统则把每个任务所对应的程序及其数据划分为一组连续的“页面”(页的大小与内存的框相同),这些页面就构成一个虚拟存储空间,每个任务在各自的虚拟存储空间中运行,互不干扰,大小则不受内存容量的限制。

当用户启动一个任务向内存装入程序及数据时,操作系统只将当前急需执行的一部分程序和数据页面装入到内存中处于空闲状态的框内,其余页面放在硬盘提供的虚拟内存中(哪些页面装入内存的哪个框中由操作系统记录在“页表”中),然后开始执行程序。

程序执行过程中,CPU查看页表,如果需要执行的指令或访问的数据已经装在内存中,则访问内存进行处理;如果不在物理内存中(称为缺页),则由CPU通知操作系统中的存储管理程序,将所缺的页面从辅存的虚拟内存装入到实际的物理内存,然后再继续执行程序。当然,为了腾出一些框来存放将要装入的程序(或数据),存储管理程序也应将物理内存中暂时不使用的页面调出保存到辅存的虚拟内存中。页面的调入和调出完全由存储管理程序自动完成(图39)。这样一来,从用户(包括程序员)角度来看,计算机所具有的内存容量比实际的内存容量大得多,这种技术称为虚拟存储器。

图39虚拟存储器的工作过程

在Windows操作系统中,虚拟存储器是由计算机中的物理内存(主板上的RAM)和硬盘上的虚拟内存(一个名为pagefile.sys的大文件,称为“页面文件”或“交换文件”)联合组成的。操作系统通过在物理内存和虚拟内存之间来回地自动交换程序和数据页面,达到两个效果:第一,开发应用程序时,每个程序都在各自独立的虚拟存储空间里进行编程,几乎不用考虑物理内存具体位置和容量大小的限制;第二,计算机运行时,用户可以启动许多应用程序运行,其数目不受内存容量的限制(当然,容量小而同时运行的程序很多时,响应速度会变慢,甚至死机),也不必担心它们会发生冲突。

Windows系统中的虚拟内存(pagefile.sys文件)通常位于系统盘的根目录下。用户可以自行设置虚拟内存的大小(一般为物理内存的1~2.5倍),也可以指定虚拟内存放在哪个硬盘(或硬盘分区)中。

iOS操作系统和安卓操作系统的存储管理原理上与Windows系统大同小异,不过由于智能手机的主存储器容量不大(6GB左右),运行中更易发生容量紧张的情况,操作系统需及时把部分任务放到虚拟内存(对于可重新装入的程序和数据,直接从内存清除即可)。与Windows不同的是,安卓系统中虚拟内存不是文件,而是一个称为SWAP的专门的分区。

3.2.4文件管理

1 文件及其属性

计算机(智能手机)中的信息是多种多样的,有的是程序,有的是数据,它们又分为多种不同的类型,不使用时都存放在辅助存储器中,使用时才装入内存供CPU运行和处理。辅助存储器有多种,如硬盘、光盘、U盘、存储卡等,它们大多适合于批量数据的存取而不适合单个字节的存取。怎样才能对计算机中的信息进行统一高效的管理?怎样实现信息资源的共享和保护?解决方案是引入“文件”的概念。

文件是存储在辅助存储器中的一组相关信息的集合。计算机中的程序和数据都组织成为文件存放在辅助存储器中,并以文件为单位进行存取操作。例如一个应用程序、一张照片、一支歌曲等,它们都对应着辅助存储器中的一个文件,并以文件为单位进行存取。不同计算机之间也以文件为单位进行信息交换。

每个文件都有自己特定的名字,称为文件名。为了区分文件的类型,文件名的最后几个(一般是3或4个)英文字母用于指出文件的具体类型,它与文件主名之间用小数点“.”隔开,这几个英文字母称为文件扩展名或文件后缀。例如,Windows中可执行程序的文件扩展名是exe,图像文件的扩展名是jpg,音频文件的扩展名是mp3,视频文件的扩展名是mp4,文本文件的扩展名是txt等(表32)。

表32常用文件类型和扩展名

类别文件类型文件扩展名(类型名)举例

程序

可执行文件(包括App)exe(Windows) , app(iOS) , apk(安卓)

应用程序扩展dll(Windows)

数据

文本/文档文件txt, doc, docx, pdf, ppt, pptx

声音文件wav, mid, voc, mp3, aac, flac, wma

图像文件bmp, jpg, gif, tif, wmf, png, raw

视频文件avi, mpg, mp4, mov, rmvb, mkv, flc, fli

网页文件html, htm, mht, mhtml, xml, jsp, asp, php

从表32中可以看出,同类数据文件(如图像文件、视频文件等)的扩展名通常不止1种,不同扩展名的数据文件其内部格式不同,一般需要使用不同的应用程序进行处理。另外,大多数数据文件在不同操作系统中是通用的,因而PC和智能手机

相互间可交换文档、音乐、图片、视频等各种数据文件,而可执行程序(应用程序)的文件扩展名则各不相同,Windows中称为exe,iOS系统中是app,安卓系统中则为apk。这是因为三个操作系统互不兼容,在PC上运行的应用程序不能在iOS或安卓系统上运行,反之亦然。

用户和App一般都通过文件名来使用文件。在Windows、安卓和iOS中,文件名可以长达200多个中西文字符(含扩展名),用户命名文件时应选择有意义的词或短语,以帮助记忆。

每个文件除了它本身包含的内容(程序代码或数据)之外,为了文件管理的需要,还包含有关于该文件的若干说明信息。大部分操作系统使用的文件说明信息包括:文件主名、文件扩展名、文件在辅助存储器中的位置、文件大小、文件创建时间、修改时间、文件属性等。应该注意的是,文件的说明信息和文件的具体内容是分开存放的,前者集中保存在该文件所属的目录(文件夹)中,后者则保存在磁盘的数据区内(图310)。

图310文件目录和文件内容在辅助存储器中的存放

文件说明信息中的文件属性在文件管理中有重要作用。例如在Windows中,它用于指出该文件是否为系统文件、隐藏文件、存档文件或只读文件。若标注为系统文件,表示该文件是操作系统自身所包含的文件,删除时系统会给出警告,资源管理器若不特别设置为“显示全部文件”(在“文件夹选项”对话框中设置)时不会在文件列表中显示出来;若标注为只读文件则表示该文件只能阅读,不允许进行修改,如进行修改操作系统将给出提示。此外,文件还可以具有“压缩”“加密”和“编制索引”等属性,前两个属性分别用来指出该文件的数据在保存到辅助存储器时是否需要进行数据压缩(为了节省磁盘空间)和数据加密(不让无关用户了解文件的内容),后一个属性可以帮助编制索引,以利于文件的快速查找。

2 文件目录(文件夹)

计算机中有数以千百计的文件,它们都存放在辅助存储器中。为了能方便地查找和使用文件,操作系统、应用软件和用户总是把所有文件分门别类地组织在各个文件目录中(Windows把文件目录称为文件夹)。Windows、安卓和iOS三种操作系统都采用树状结构来组织文件。在这种结构中,每一个磁盘(或磁盘上的每个分区)都有一个根目录(根文件夹),根目录包含若干文件和子目录,这些子目录又可以包含文件和下一级子目录,依次类推而形成了多级的树状文件目录(文件夹)结构。

每个磁盘分区(也称为逻辑驱动器)都是一颗文件树[图311(a)],树干是根目录,树枝是子目录,树叶就是子目录中所存储的文件。计算机中的每个文件都有其确定的位置,用户要指定某个文件时,除了给出它的文件名之外,还必须指出该文件所在的位置。文件的位置由存放文件的驱动器号和文件路径来确定。因此,定位1个文件时需要给出3个参数:

驱动器号(盘符):\文件路径\文件名

其中的文件路径是:从根目录到文件所在目录所顺序经过的一串子目录(用“\”相互隔开)。例如,图311(b)的文件树在B盘中,则文件5在计算机中的位置是:

B:\目录2\目录4\文件5(下划线标出的部分是文件路径)

图311磁盘分区与树状文件目录结构

树状文件目录(文件夹)既可以帮助用户把不同类型和不同用途的文件分类存储,又方便了文件的查找,还允许不同文件夹中的文件使用相同的名字。

与文件相似,每个文件夹有自己的名字,但不使用扩展名。它也有若干与文件类似的说明信息,除了文件夹名字之外,还包括存放

位置、大小、创建时间、文件夹的属性(存档、只读、隐藏,以及“压缩”

“加密”和“编制索引”)等,文件夹的属性刻画了该文件夹中所有文件的共性特征。

使用文件夹的另一个优点是它为文件的共享和保护提供了方便。以Windows操作系统为例,任何一个文件夹均可以设置为“共享”或者为“非共享”,前者表示该文件夹中的所有文件可以被网络上的其他用户(或共同使用同一台计算机的其他用户)共享,后者则表示该文件夹中的所有文件只能由用户本人使用,其他用户不能访问。当文件夹被设置成为共享时,用户还可以规定其他用户的访问权限,例如文件只能读不能修改,或者既可读也可以修改,还可以规定访问文件时是否需要使用口令等。这些措施在一定程度上提高了文件的安全性。

3 文件管理

操作系统中文件管理的主要职责之一是如何在辅助存储器中为创建(或保存)文件而分配存储空间,为删除文件而回收空间,对空闲空间进行分配。这些任务都是由文件管理程序完成的。阅读材料3.1以Windows FAT文件系统为例介绍了如何对硬盘空间进行管理,如何实现对文件的各种操作(如创建、删除、打开、关闭、读、写、重命名等),阅读材料3.2对Windows和Android的文件系统做了简单介绍。

3.2.5设备管理

计算机通常配置有多种输入/输出(I/O)设备,用以输入/输出数值、文本、图像、声音、视频等各种形式的信息。为了方便、有效、可靠地完成输入/输出操作,操作系统中的“设备管理”模块负责对用户或应用程序的I/O操作进行统一的管理。

为便于OS上层软件和应用程序进行I/O操作,设备管理模块对各种物理I/O设备的硬件操作细节进行了屏蔽和抽象,以统一的逻辑I/O设备的形式向OS上层软件和应用程序提供服务。具体做法就是为每个物理设备配置驱动程序,由驱动程序负责把逻辑设备的I/O操作转换为具体物理设备的I/O操作。这样一来,不同规格和性能参数的I/O设备(如各种不同的打印机)通过安装各自的设备驱动程序,就能使系统和应用程序不需要进行任何修改即可直接使用该设备。通常,I/O的生产厂商在提供硬件设备的同时也提供该设备的驱动程序。

为确保I/O设备能有条不紊地为系统中运行的多个任务所共享,设备管理模块还必须解决设备的命名、登记、分配、回收及调度。为了使设备利用率达到最优,设备管理模块将根据每个设备的特点来全局调度和安排设备的操作。例如,对硬盘的多个读写要求可以进行排序,使得每次读写操作的磁头移动距离都尽可能短。对于独占设备(如打印机、绘图仪等),可以采用假脱机(SPOOLing)技术把每一个要打印或绘制的文档,按“先来先服务”的顺序将其存放在队列中,然后以后台运行方式依次进行打印或绘图,这就解决了此类慢速独占设备的共享使用问题。

Windows操作系统中有一个工具程序“设备管理器”,用户可以按类型或按连接方式来寻找系统已安装的设备,查看该设备的有关信息和当前工作状态,也可以修改或重新设置设备的操作环境。

3.2.6常用操作系统介绍

操作系统从20世纪60年代出现以来,早期曾经流行的批处理系统现在已不多见。目前个人计算机使用的操作系统一般都属于单用户多任务处理功能,而安装在网络服务器上运行的“网络操作系统”则具有多用户

多任务处理的能力。一些特殊的应用系统,如军事指挥和武器控制系统、电力网调度和工业控制系统、银行证券交易信息处理系统等,它们对外部事件能快速做出响应,对计算机完成任务有严格的时间约束,具有很高的可靠性和安全性,这些系统所使用的操作系统称为“实时操作系统”。此外,嵌入式计算机应用(这种应用中计算机软硬件只是设备或装置中的一个组成部分,它们是为该设备或装置服务的)越来越普遍,这些应用系统所运行的是一种快速、高效、具有实时处理功能、代码又非常紧凑的“嵌入式操作系统”。下面仅对目前PC和服务器中使用的操作系统作简单介绍。

1 Windows操作系统

Windows操作系统是一种在PC上广泛使用的操作系统。它由美国微软公司开发,支持多任务处理和图形用户界面,使系统效率显著提高,用户操作大为简化。Windows是系列产品,微软公司先后推出了多种不同的版本。

20世纪流行的Windows 9X共有3个产品,Windows 95、Windows 98以及Windows Me,它们都建立在MSDOS基础上,属于16位/32位的混合操作系统。

从1989年起,微软公司开发了一个完全脱离MSDOS的全新Windows内核(称为NT内核)的操作系统——Windows NT,其目标是面向商业用户,它有较高性能,并达到一定的安全性标准。Windows NT的进一步发展是Windows 2000系列,包括工作站版本和服务器版本,后者适用于各种不同规模、不同用途的服务器。

2001年微软公司推出了Windows XP操作系统,它既适合家庭用户也适合商业用户使用。Windows XP具有丰富的音频、视频处理和网络通信功能,最大可以支持4GB内存和两个CPU。此外,它还加强了防病毒功能,增加了一些系统安全措施(例如Internet防火墙,文件加密等)。Windows XP非常成功,虽然微软公司已经从2014年4月开始取消了对XP的所有技术支持,但直到现在还有一些用户仍在使用Windows XP。

2006年底开始,微软公司推出称为Windows Vista的操作系统。由于对硬件配置要求较高,运行速度较慢等原因,用户对Vista的反响远没有达到公司的预期。随即,微软公司在2009年推出了Vista的“改善版”——Windows 7,它在系统启动和程序运行方面比Vista有明显改进,并提供对多个显示卡(屏)的支持,改善了多核处理器的运行效率,用户界面也比XP和Vista有进一步的改进。Windows 7既有32位版也有64位版本,促进了个人电脑从32位系统向64位系统的过渡。

微软公司于2012年推出了Windows 8操作系统。Windows 8既支持PC(x8664架构),也支持平板电脑(x86架构或ARM架构),它提供了对触摸屏的支持,用户界面变化较大,分传统界面和新用户界面(称为Metro界面)两种,可以按用户的喜好自由切换。

新的Windows 8.1版对硬件配置的要求并不比Windows 7高。它有标准版、专业版和企业版之分,另有一个Windows RT版本是专门为采用ARM处理器的平板电脑和智能手机开发的,它并不兼容x86软件,但它附带有专为触摸屏设计的Word、Excel、PowerPoint和OneNote等应用软件。

2015年7月微软发布了Windows 10操作系统,它为所有硬件提供一个统一的平台,能无缝运行于PC(x86架构)、智能手机(ARM架构)、平板电脑(ARM和x86架构)及服务器等多种硬件平台,是跨平台最多的操作系统。

Windows 10提供了新的浏览器软件(Microsoft Edge),支持虚拟桌面,改善多任务管理和窗口功能,采用更加人性化的设备登录方式。不过,它在保护用户隐私方面受到不少用户的指责。Windows 10有家庭版、专业版、企业版、教育版、移动版、移动企业版和物联网核心版七个版本。目前活跃用户数约10亿,2020年6月发布最新版本2004(20H1)。

微软公司宣称,Windows 10将是Windows操作系统品牌的最后一个版本,Windows将不再有新版本问世。这并非意味着微软不再开发Windows,相反,他们是将过去每隔几年才更新一次的系统开发方式,改为每年一到两次的持续更新,每一个更新版本都是免费的。这除了加快了新版本的更新速度之外,还提高了操作系统正版率,对用户和微软都是一个双赢的局面。但问题是Windows 10的更新比较多,而且每次更新安装起来都比较麻烦。因为有时更新安装的不是普普通通的“补丁”,而是带有大量功能更新和底层技术迭代的新系统。最新的Windows 10,与2015年7月正式发布的1507版相比,已经有了很大改变。

Windows操作系统也经常受到用户的批评。问题主要是两个方面:可靠性和安全性。Windows系统出现不稳定的情况比其他操作系统多,系统对用户操作的响应往往变得越来越慢,甚至不响应(死机),必须重新启动系统才能恢复正常。此外,Windows比其他操作系统更容易受到病毒、蠕虫、木马等的攻击和侵扰,它存在的安全漏洞容易造成信息泄漏,金融、政务、电力、交通等关键应用的用户尤其需要引起注意。

2 Android(安卓)系统

Android是一个以Linux内核为基础的开放源代码的操作系统(部分为专用组件),现在由Google公司为首的开放手持设备联盟OHA开发和维护。Android操作系统的内核具有典型的Linux系统功能。自2008年发布以来,几乎每年都有新版本发布,至2020年6月的最新版本是Android 10。安卓系统最初为智能手机而开发,后来逐渐拓展到平板电脑及其他数码设备(包括电视机、游戏机、数码相机等)。

安卓把系统分为4层(图312)。最底层是各种驱动程序和Linux内核。第2层是系统库和安卓的运行环境。系统库中有大量中间件;运行环境中的核心库提供了Java语言API中的大多数功能函数,也包含了Android的一些核心API。ART是一种Java虚拟机,使用Java语言编写的App源程序经编译后必须转换成dex格式才能在ART虚拟机上执行。第3层是应用软件框架,它包含了许多可重用和可替换的软件组件。例如用户界面程序中的各种控件(文本框、按钮、列表等)。Android系统简化了组件的重用方法,为快速进行App开发提供了很多方便,应用软件框架是Android应用程序开发和运行的重要基础。第4层是应用软件(iOS系统也一样,图313中没有画出)。Android系统本身及智能手机开发商提供了许多常用的应用程序,用户还可以下载和安装第三方软件开发商的其他应用软件。

4

应用软件

(主屏幕、搜索、电话、联系人、浏览器、邮件、日历、相机、地图等)

3

Java应用软件接口(API)框架

(活动管理、窗口管理、内容提供、视图系统、通告管理、包管理、电话管理、资源管理、位置管理、传感器管理、Google Talk服务等)

2

系统库:C/C++函数库、图像/音频/视频播放与存储的多媒体框架、2D图形SGL、安全通信SSL、3D绘图OpenGL、显示管理Surface Manager、小型SQL数据库、网页浏览器核心WebKit、点阵字和矢量字绘制工具FreeType等

Android runtime

安卓运行时(ART)

(核心库)

硬件抽象层(HAL)

1

Linux内核

(内存管理、进程管理、安全管理、网络协议栈、电源管理等核心服务)

(各种驱动程序:显示器、键盘、音频、蓝牙、USB、相机、WiFi、闪存卡等)

图312Android系统的软件架构

安卓应用程序的后缀是APK(或apk),APK是Android package的缩写,即Android安装包,它是zip格式(压缩格式),安装时经过解压缩得到dex文件才能由ART虚拟机运行。每一个App运行在一个ART虚拟机里,而每一个虚拟机都是系统中的一个独立进程,各有自己的虚存空间,从而最大限度地保护App的安全运行。

应用程序(App)都是利用Android软件开发工具包(SDK)编写的,采用Java编程语言。Java可以与C语言或C++结合使用,并可共享不同的运行时库。

2012年Google公司开始将Android系统的部分组件(如Google Play服务)和一些核心应用程序与操作系统脱钩,不再作为开源程序。Google公司通过Play服务添加新的系统功能和开发的应用程序需经过Google Play授权购买或下载。

我国内地销售的国产或进口的Android智能手机,由于多方面的原因,一般都不提供Android系统所附带的用户界面和应用程序,而是替换为手机厂商自行开发的用户界面和应用程序。如华为的EMUI(emotion user interface)、小米的MIUI、OPPO的ColorOS等,它们以用户为中心,让智能手机的使用变得更简单、更方便、更人性化、更有乐趣,其水准可与安卓原生系统和iOS系统相媲美。

Android操作系统的开放性和可移植性,尽管它大多搭载在使用32位和64位ARM架构CPU的硬件设备上,但它同样也可支持使用x86架构CPU的硬件产品。所以,它已经广泛应用在各种数码电子产品中。即使是苹果公司的iOS设备,比如iPhone、iPod Touch以及iPad产品,也都可以安装Android操作系统,并且可以通过双系统启动工具来运行Android操作系统。

3. iOS操作系统

iOS(原名iPhone OS)操作系统是苹果公司开发的操作系统,早先用于iPhone手机,后来也用于iPod touch播放器、iPad平板电脑和Apple TV播放器(网络电视机顶盒)。它只支持苹果自己的硬件产品,不支持非苹果硬件设备。

iOS是苹果公司MAC电脑(包括台式机和笔记本)使用的OS X操作系统经修改而形成的。OS X和iOS的内核都是Darwin。与Linux一样,Darwin也是一种“类Unix”系统,具有高性能的网络通信功能、支持多核CPU和多种类型的文件系统。

iOS操作系统分为4个层次[图313(a)]:操作系统内核层,内核服务层(the Core Services layer),媒体层(the media layer)和触控界面层(the cocoa touch layer)。操作系统内核的功能与Windows、Linux等内核的功能相似,负责处理器管理、存储管理、文件管理和设备管理。其他三层中包含了许多应用框架(application framework)、组件和函数库。高层的框架建立在低层框架上,低层框架为高层框架和应用程序提供服务。所谓框架,它是一些应用程序的半成品,是一组可复用的软件组件,供开发人员用来构建应用程序。应用程序大多在框架基础上进行开发(类似于使用混凝土梁、楼板、墙板等预制件盖房子),它们也都在这些框架所提供的服务和功能的基础上运行。例如,触控界面层中包含的UIKit框架可以用来为应用程序构建和管理用户界面,如处理用户的触摸操作、在屏幕上显示文本和Web内容、构建定制的界面元素等。

所以,从应用程序的角度来看,iOS 扮演着应用程序和底层硬件中介的作用,应用程序不能直接访问硬件,必须与iOS提供的系统接口进行交互。系统接口转而又去与适当的驱动程序打交道。这种分层结构既减少了应用程序开发的难度,也可以防止应用程序修改底层软硬件,提高系统的安全性[图313(b)]。

图313iOS操作系统的组成

iOS是继Android系统全球第二大最受欢迎的移动操作系统,市场占有率接近1/4,但仍远低于Android系统。iOS的主要版本通常每年发布一次。目前的最新版本是2019年6月4日发布的iOS 13。

iOS操作系统内置了苹果公司自行开发的许多常用的App,也可以安装运行第3方开发的应用软件,但这些软件必须通过苹果应用商店(App Store)审核。App Store是苹果公司所创建和维护的应用程序发布平台,软件开发人员将开发的软件和游戏上传到App Store审核并委托它发售。截止到2017年1月,苹果应用商店发布的App已经超过220万个。

与当前多数安卓手机一样,苹果手机支持语音识别、指纹识别、人脸识别的应用。用户可以通过语音输入信息和进行查询操作,用指纹和人脸进行身份认证。与安卓系统一样具有推送通知的功能,即不管应用程序是否在运行,均可通知用户某个应用程序(如短信、微信、邮件等)有新的消息。通知的形式有:发送文本通知,发出声音提醒,也可以在App图标上添加一个数字标记。

正常情况下iOS操作系统的用户身份不是系统管理员,所以权限较低,有些操作不允许进行。所谓“越狱”(jailbreaking)就是让用户获取iOS最高权限(用户身份改变为“根用户”,相当于Windows中的管理员)。完成越狱后用户就能完全掌控iOS系统,随意修改系统文件,安装插件,下载安装一些App Store所没有的软件。不过越狱有一定风险,越狱后安装的应用程序会获取系统权限,也许会给设备带来损害。如果进行了“不完美越狱”,那么设备将无法重新启动。苹果公司的政策是对越狱的设备不再保修。另外,iOS的每一次版本更新都会清除所有的非法软件,使越狱无效。

复习题

(1) PC加电启动Windows操作系统的主要步骤有哪些?

(2) 操作系统由哪些部分组成,操作系统内核和操作系统发行版有什么区别?

(3) 多任务处理中前台任务和后台任务有什么不同?

(4) 操作系统中存储管理的任务是什么,大多采用什么方案来解决?

(5) 从用户的角度看,计算机中的文件是什么?可进行哪些操作?

3.3算法与程序设计语言

人们常说:“软件的主体是程序,程序的核心是算法。”这是因为要计算机解决某个问题,首先必须确定该问题的解决方法与步骤,然后再据此编写程序并交给计算机执行。这里所说的解题方法与步骤就是“算法”,采用某种程序设计语言对处理的对象和采用的算法所进行的描述就是程序。

3.3.1算法

1. 什么是算法

图314算法的流程图表示

通俗地说,算法(algorithm)就是解决问题的方法与步骤。例如有币值相同的三个硬币(A、B和C),其中有一个是伪造的,另两个是真的,伪币与真币重量略有不同。现在提供一架天平,如何找出伪币呢?方法很简单,只要按图314所示的步骤两两比较其重量,就可找出伪币了。

算法一旦给出,人们就可以按算法去解决问题,因为解决问题所需要的智慧(知识和原理)已经体现在算法之中,人们唯一要做的就是严格地按照算法的指示去执行。这就意味着算法是一种将智慧与他人共享的途径。一旦有人设计出解决某个问题的有效算法,其他人无须成为该领域的专家,只需依葫芦画瓢就可以解决同样的问题。

在计算机学科中,算法指的是用于完成某个信息处理任务的有序而明确的、可以由计算机执行的一组操作(或指令),它能在有限时间内执行结束并产生结果。尽管由于需要求解的问题不同而使得算法千变万化、简繁各异,但所有的算法都必须满足下列基本要求:

(1) 确定性。算法中的每一步操作必须有确切的含义,即每一步操作必须是清楚明确的,无二义性的。

(2) 有穷性。算法总是在执行了有限步的操作之后终止。

(3) 能行性。算法中每一个操作都是计算机可执行的,即在计算机的能力范围之内,且在有限的时间内能够完成。

(4) 输出。至少产生一个输出(包括参量状态的变化)。

算法对于计算机特别重要。因为计算机硬件只是一个被动的执行装置,它本身能完成的操作类型很有限且非常原始和简单,如果不告诉硬件如何去做,它其实什么问题也解决不了。通过把算法表示为程序,程序在计算机中运行时计算机就有了“智能”。由于计算机速度极快,存储容量又很大,它能执行非常复杂的算法,解决各种复杂的问题。

但是,如果对某个问题(例如预测股市中某只股票明天是涨还是跌)无法给出计算机算法,那么计算机也无能为力。计算机不是万能的。

算法的一个显著特征是,它解决的是一类问题而不是一个特定的问题。例如我们在日常使用计算机的过程中,经常会对文件夹中的文件或表格中的数据进行排序,以便把文件按序(按文件名、或按扩展名、或按文件大小、或按创建日期等)列表显示。所使用的排序算法对文件的个数(100个还是1000个甚至更多)和文件的名字(中文还是西文)等都应该没有什么限制。

开发计算机应用的核心是研究和设计解决实际问题的算法,并将其在计算机上实现(即开发成为软件)。关于算法,需要考虑以下三个方面的问题,即如何确定算法(算法设计)、如何表示算法(算法表示)以及如何使算法更有效(算法的复杂性分析)。

2. 算法设计举例

一般而言,使用计算机求解问题通常包括如下几个步骤:

(1) 理解和确定问题。

(2) 寻找解决问题的方法与规则,并将其表示成算法。

(3) 使用程序设计语言表达(描述)算法(编程)。

(4) 运行程序,获得问题的解答。

(5) 对算法进行评估以求改进。

上述过程中的(2)就是设计算法。设计一个计算机算法需要注意几点:① 必须完整地考虑整个问题所有可能的情况;② 算法的每一步骤必须是计算机能够执行的;③ 必须在有限步骤内求出预定的结果。

人们通过长期的研究开发工作,已经总结了许多基本的算法设计方法,例如枚举法、迭代法、递推法、分治法、回溯法、贪心法和动态规划法等,但一些复杂问题的算法设计往往相当困难。

算法的设计一般采用由粗到细、由抽象到具体的逐步求精的方法。例如,要对n个整数从小到大进行排序,首先把整数分成两组,一组是未排序的,另一组是已排序的,然后:

(1) 从未排序整数中选一个最小的,作为已排好序的第一个数。

(2) 从剩下的未排序整数中选出最小的,放在已排好序的最后一个数后面。

(3) 循环执行(2),直到未排序的整数都处理完毕为止。

上述过程可以通过图315来帮助理解(假设n=7,共需循环6次。粗线左面表示已排序的整数,右面是尚未排序的数)。

4937825(数组的初始状态)

2937845(第1次循环之后)

2397845(第2次循环之后)

2347895(第3次循环之后)

……

2345789(第6次循环之后——结束状态)

图315整数排序算法

然后进行细化。例如,把这n个整数组织成为一个数组A,每个整数是数组A的一个元素,排好序的整数仍然存放在A中,在“循环执行”的过程中数组里的元素从前往后逐步排好次序,每次“循环”只要对数组中未排序的元素进行比较,等等。该算法可描述为:

设置i初值为1,循环执行下列操作,直到i=n:

{确定A[i],A[i+1]…A[n]中最小整数的位置,假设为j;

交换A[i]和A[j];

i=i+1;

如果再进一步细化以上步骤,还可以具体给出如何从数组中选最小的整数,如何交换两个整数等,最终即得到求解该问题的精确描述的算法。

除了排序之外,“查找”也是数据处理应用中经常使用的算法。顺序查找和二分法查找是两种最基本的查找算法,具体方法读者可参阅阅读材料3.6。

3. 算法表示与算法分析

算法的表示可以有多种形式,如文字说明、流程图表示、伪代码(一种介于自然语言和程序设计语言之间的文字和符号表达方法)和程序设计语言等。

以找出伪币的算法为例,其算法可以用文字描述如下:

“比较A与B的重量,若A=B,则C是伪造的;否则再比较A与C的重量,若A=C,则B是伪造的;否则A是伪造的。”

这种表示方法的缺点是很难“系统”并“精确”地表达算法,且叙述冗长,别人不容易理解(设想如果不是3个硬币而是10个或者任意一个,如何描述?)。

前面图314是算法的流程图表示,显然它比文字描述简明得多。但当算法比较复杂时,流程图也难以表达清楚,且容易产生错误。

用某种具体的程序设计语言描述一个算法,也会带来很多不便。因为按程序语言的语法规定,往往要编写很多与算法无关而又十分烦琐的语句,如变量说明、I/O格式描述等。因此,为了集中精力进行算法设计,一般都采用类似于自然语言的“伪代码”来描述算法。

一个问题的解决往往可以有多种不同的算法。以排序算法为例,上面介绍的算法称为“选择排序”算法,它只是许多排序算法中的一种。人们在不同情况下,对算法可以有不同的选择。一般而言,算法的选择,除考虑其正确性外,还应考虑以下因素:

(1) 执行算法所要占用计算机资源的多少,包括时间资源和空间(存储)资源两个方面;

(2) 算法是否容易理解,是否容易调试和测试等。

有关算法分析的内容,可参看阅读材料3.6的介绍。

3.3.2程序设计语言

语言是用于通信(交流)的。人们日常使用的自然语言用于人与人的通信,而程序设计语言则用于人与计算机之间的通信。计算机是一种电子机器,其硬件使用的是二进制语言,与自然语言差别太大了。程序设计语言是一种既可使人能准确地描述解题的算法,又可以让计算机也很容易理解和执行的语言。程序员使用这种语言来编制程序,精确地表达需要计算机完成什么任务和具体的执行步骤,计算机就按照程序的规定去完成任务。程序设计语言已经历了60多年的发展,其技术和方法日臻成熟。下面介绍程序设计语言的基本知识。

程序设计语言按其级别可以划分为机器语言、汇编语言和高级语言三大类。

1 机器语言

机器语言就是第2章介绍过的计算机的指令系统。用机器语言编写的程序可以被计算机直接执行。但由于不同架构CPU的指令系统不同,在一种计算机上编写的机器语言程序,在另一种不同CPU的计算机上也许无法运行。更有甚者,机器语言程序全部用二进制(八进制、十六进制)代码编制[图316(a)],人们不易记忆和理解,也难于修改和维护,所以现在人们已不再用机器语言编制程序了。

安装在计算机中的操作系统和各种应用程序,它们都是用二进制代码表示的机器语言程序。例如智能手机操作系统的内核部分,通常都以映像文件(扩展名为img)驻留在辅助存储器中,这些img文件就是机器语言程序,它们在系统启动时装入内存由CPU运行。

2 汇编语言

汇编语言用助记符来代替机器指令中的操作码,如ADD表示加法,SUB表示减法,MOV表示传送数据,操作数也可使用人们习惯的十进制数。这就比使用二进制表示的机器语言容易理解一些了。但汇编语言编写的程序[图316(b)]虽然可以提高一点效率,却仍然不够直观简便。

3 高级语言

为了克服汇编语言的缺陷,提高编写程序和维护程序的效率,一种接近人们自然

语言(指的是英语和数学语言)的程序设计语言应运而生了,这就是高级语言。

高级程序设计语言的表示方法接近解决问题的表示方法,具有通用性,在一定程度上与计算机指令系统无关。例如,若要计算“1055-(383+545)”的值,并把结果值赋给变量s,高级语言可将它直接写成:

s=1055-(383+545)

显然,这与使用数学语言对计算过程的描述是一致的,而且这样的描述[图316(c)]适用于任何配置了这种高级语言处理系统的计算机。由此可见,高级语言的特点是易学、易用、易维护,人们可以更有效、更方便地用它来编写计算机程序。

B8 7F01

BB 21 02

03 D8

B8 1F 04

2B C3

MOVAX383

MOVBX545

ADDBXAX

MOVAX1055

SUBAXBX

s=1055-(383+545)

(a) 机器语言程序(十六进制)

(b) 汇编语言程序

(c) 高级语言程序

图316三种语言编写的计算“1055-(383+545)”的程序片段

以上面介绍的选择排序算法为例,使用C语言可以很容易写出相应的程序。C语言规定数组的元素编号从0开始,因此,算法中1~n的变化范围相应地改变为0~n-1。用C语言编写的可对n个整数排序的函数sort表示如下:

void sort (int A [ ], int n)

/ 定义函数名为sort,它有两个参数,一个是整型数组A,另一个是数组元素的个数n/

{

int i, j, t, k ; /定义4个整型变量/

for( i=0 ; i

{

j = i;

for (k=i+1;k

if (A[k]

t=A[i];A[i]=A[j]; A[j]=t; /把未排序数中的最小数A[j]与未排序数中的第i个数A[i]交换/

}

}

通过这个例子可以看出,C语言中包含了四种基本成分:① 数据成分,用以描述程序所处理的数据对象(数据名、数据类型和数据结构);② 运算成分,用以描述程序所包含的运算,例如算术表达式和逻辑表达式等;③ 控制成分,用以表达程序中的控制构造,例如条件语句if和循环语句for等;④ 传输成分,用以表达程序中数据的传输,例如赋值语句、I/O语句等。

必须指出,高级语言虽然接近自然语言,但与自然语言仍有很大差距。主要表现在高级语言对于所采用的符号、各种语言成分及其构成、语句的格式等都有专门的规定,词法和句法规则极为严格。这是因为高级语言是由计算机理解和处理的,而计算机目前还不能自动适应语义模糊和二义性等情况,缺乏高级的智能。因而要想使高级语言与自然语言一样灵活方便,还有待进一步的努力。

4. 几种程序设计语言介绍

迄今为止,各种不同应用的程序设计语言曾经有上千种之多,下面介绍几种目前广泛使用的有影响的通用程序设计语言。

(1) FORTRAN语言

FORTRAN是formula translation(公式翻译)的缩写词,它是世界上最早出现的一种适用于数值计算的面向过程的程序设计语言。FORTRAN语言的特点是接近数学公式,简单易用。在处理功能上,FORTRAN语言允许复数与双精度实数运算,是大型科学和工程计算的有力工具,广泛应用于数值天气预报、有限元分析、计算流体动力学、计算物理、计算化学等领域,在高性能计算领域得到广泛应用。

随着计算机科学技术的发展,作为科学计算的主流程序设计语言,提供面向对象、向量计算和并行处理功能,已是FORTRAN语言发展的主要趋势。FORTRAN语言目前最新的国际标准是FORTRAN 2008。

(2) BASIC和VB语言

BASIC是“初学者通用符号指令代

码”的英文缩写,它的特点是简单易学。VB(Visual Basic)语言是微软公司在BAS

IC基础上开发的一种程序设计语言,它可方便地使用Windows图形用户界面编程,且可调用Windows的许多功能,因此使用相当广泛。

例如在微软公司的Office软件(如Word、Excel、Access、PowerPoint)中内置了一种称为VBA(Visual Basic for application)的程序设计语言,它是VB语言的子集,用户可以使用VBA编写程序来扩展Office软件的功能。VBA与VB的不同之处在于它没有自己的开发环境,必须寄生于已有的应用程序,即要求有一个宿主程序(如Word、Excel)才能使用,也不能创建独立的应用程序(即不能生成exe可执行文件),所开发出来的程序(称为“宏”)必须由它的宿主程序调用后才能运行。

VB程序还可以嵌入在HTML文档中用以扩充网页的功能,这种嵌在HTML文档中的小程序称为脚本(script),脚本是使用VBScript语言(也是VB的子集)编写的。借助这些脚本可以动态修改网页的内容和控制HTML文档的展现,还可以检验用户的输入信息是否正确,给网页功能的扩展和Web应用的开发提供了很大方便(参阅4.4.3)。

(3) Java语言

Java语言是由原SUN Microsystem公司于1995年发布的一种面向对象、用于网络环境编程的程序设计语言。Java语言的基本特征是:适用于网络环境编程,与使用的操作系统无关,安全、稳定。Java语言受到许多应用领域的重视,取得了快速的发展。在浏览Web网页时用户经常会遇到用Java语言编写的应用程序(Java applets)。它在许多便携式数字设备中也得到了广泛应用,如安卓智能手机中的许多App就是用Java编写的。

(4) C语言、C++语言和ObjectiveC语言

C语言是1972年由AT&T公司Bell实验室的D.M.Ritchie在BCPL语言基础上设计而成

,著名的UNIX操作系统就是用C语言编写而成的。

C语言兼有高级程序设计语言的功能和汇编语言的效率,有效地处理了简洁性和实用性、可移植性和高效率之间的矛盾,语句表达能力强,还具有丰富的数据类型和灵活多样的运算符。因此C语言已成功地应用于各个领域(包括编写操作系统和编译程序软件),是当前使用最广泛的通用程序设计语言之一。

C++语言是以C语言为基础发展起来的面向对象程序设计语言,它最先由Bell实验室的B.Stroustrup在20世纪80年代设计并实现。C++语言是对C语言的扩充。由于C++语言既有数据抽象和面向对象能力,运行性能高,又能与C语言兼容,使得数量巨大的C语言程序能方便地在C++语言环境中得以重用。所以C++语言十分流行,一直是面向对象程序设计的主流语言。

ObjectiveC,通常写作ObjC或OC,是在C语言基础上扩充的面向对象编程语言,它完全兼容标准的C语言。ObjectiveC是iPhone和iPad编程的语言,iOS操作系统和iOS应用程序都使用ObjectiveC开发而成。

C#(发音为C Sharp)是微软公司所开发的一种面向对象且运行于.NET Framework之上的高级程序设计语言,它非常类似于C++,但实际上更接近于Java语言,还融合了VB等其他语言的一些特征。C#是基于微软的通用语言构架(common language infrastructure, CLI)而设计的语言之一。由于CLI定义了一个语言无关的跨体系结构的运行环境,使用C#所开发的程序无须修改即可运行在不同的计算机平台上,所以它可以与具有跨平台运行特性的Java语言相抗衡。

以上介绍的几种常用程序设计语言之外,具有影响的程序语言还有LISP语言(适用于符号操作和表处

理,用于人工智能领域)、PROLOG语言(一种逻辑式编程语言,主要用于人工智能领域

)、Ada语言(一种模块化语言,且易于控制并行任务和处理异常情况,在飞行器控制之类的软件中使用)、MATLAB(一种面向向量和矩阵运算的提供数据可视化等功能的数值计算语言,在工业界和学术界很流行)等

。近些年一种称为Python的程序设计语言广受欢迎,它在2017年IEEE发布的编程语言排行榜高居首位,一些知名大学已经采用Python来教授程序设计课程。其特点是简洁、易读、易维护和可扩展,它已经越来越多应用于系统管理和Web编程。

3.3.3程序设计语言处理系统

除了机器语言程序外,其他程序设计语言编写的程序都不能直接在计算机上被CPU执行,必须对它们进行适当的变换才行。程序设计语言处理系统的作用是把用汇编语言和高级语言编写的程序变换成可在计算机上执行的程序,或进而直接执行得到计算结果。负责完成这些功能的软件是编译程序、解释程序和汇编程序,它们通称为“程序设计语言处理系统”,有关介绍可参看阅读材料3.4。

复习题

(1) 什么是算法?算法与程序有何联系和区别?如何对算法进行描述?

(2) 说明机器语言、汇编语言和高级语言的不同特点和使用场合。

(3) 高级程序设计语言编写的程序,需要经过怎样的处理才能被计算机执行?

(4) 说出你所熟悉的程序设计语言,你会用它编制程序并进行调试和运行吗?

自测题3

一、是非题

1

腾讯公司的微信软件功能强大使用方便,几乎每个智能手机都安装微信软件,所以它

属于系统软件。

2 计算机只有安装了操作系统之后,CPU才能执行数据的存、取或运算处理。

3 高级语言源程序必须翻译成为机器语言程序才能由CPU执行。

二、选择题

1 操作系统和应用软件在计算机中运行时,正确的关系是()

(A) 操作系统调用应用软件提供的功能

(B) 应用软件调用操作系统提供的功能

(C) 操作系统运行完毕后再运行应用软件

(D) 两者互不相关,独立运行

2 下面有关Windows操作系统多任务处理的叙述中,正确的是()

(A) 用户如果只启动一个应用程序工作(如使用Word写作),那么该程序就可以自始至终独

占CPU

(B) 由于计算机中有多个处理器,所以操作系统才能同时执行多个任务的处理

(C) 后台任务与前台任务一样都能得到CPU的及时响应

(D) 由于CPU具有多个执行部件,可同时执行多条指令,所以操作系统才能同时进行多个任

务的处理

3 操作系统具有存储管理功能,它可以自动“扩充”内存容量,为用户提供一个

比实际内存容量大得多的存储空间,所采用的技术是()

(A) 缓冲区技术(B) cache技术

(C) 虚拟存储器技术(D) 排队技术

4 下面关于中文Windows操作系统文件管理的一些叙述中,错误的是()

(A) 文件夹中可以存放文件,也可以存放文件夹,从而构成树状的文件夹结构

(B) 根目录中只能用来存放文件夹,不能存放文件

(C) 文件和文件夹的名字既可以用英文也可以用中文

(D) 即使文件的属性是“隐藏”,该文件也能正常打开和处理

5 算法设计是编写程序的基础,下列关于算法的叙述中正确的是()

(A) 任何问题都有算法(B) 算法必须具有确定性

(C) 算法可以没有输出(D) 算法的表示计算机必须能理解

6 下面不属于高级程序设计语言的是()

(A) VB(B) PDF(C) C++(D) Java

三、填空题

1 由于在PC主板的闪速存储器中固化了程序,所以PC加电启动时才能完成引导和装入操作系统的任务。

2 操作系统能够支持计算机同时运行多个应用程序,这种功能称为。

3 使用计算机求解问题的主要步骤是:先要理解和确定问题,然后寻找其解决方法,并将其表示成,接着进行编程,再调试和运行程序。

第3章阅读材料

3.1磁盘空间管理

虽然硬盘、U盘、光盘以及智能手机中的NAND闪存等辅助存储器在信息存取原理和物理结构上有很大差别,但在操作系统看来,它们都可看成与硬盘一样是由大量扇区(512B)组成的一维阵列。下面以硬盘为例介绍其存储空间的组织与管理,所说的方法对于其他类型辅助存储器也基本适用。

1. 磁盘的分区

一个硬盘可以划分为几个分区(partition),也可以不分区(整个盘是1个分区)。所谓分区,指的是硬盘上相互隔离的区域。划分多个分区是为了把不同的操作系统或不同的数据文件存放在不同分区,使程序和数据更容易管理也更安全。Windows操作系统把每个分区都作为逻辑上独立的一个磁盘来使用(一个分区称为一个逻辑盘,各有自己的盘符,即电脑中的C盘、D盘等)。图317是一个物理磁盘的空间结构的示意图,它一共划分为3个分区,每个分区由一组连续的扇区组成,

分区中扇区各自从0开始独立编号,

分区的大小可以按用途确定。

图317物理磁盘的空间结构

每个物理磁盘开始的几个扇区用于管理目的,它们不属于任何分区。其中0#扇区称为主引导扇区或主引导记录MBR(master boot record),MBR中存储了“分区表”(描述每个分区的起始位置、大小和性质)和“初始引导程序”(在启动计算机时使用)。

2. FAT文件系统

磁盘在格式化或分区之后,如果采用的是FAT文件系统,操作系统会将每个逻辑盘(分区)划分为4个部分(图319中的左半):

(1) 分区引导扇区(PBR)。这是每个磁盘分区中的第1个扇区,它包含如下信息:本分区使用的文件系统的类型;数据区的大小(共多少个簇);根目录区允许的目录项最大数目等。如果某个分区安装了操作系统并被设置为活动分区(active partition),那么它的分区引导扇区PBR中还包含有相应操作系统的引导加载程序(boot loader),通过执行该boot loader就可以加载并启动操作系统(参看阅读材料3.3)。

(2) 数据区。这是分区中最大的一个部分,用于存放本分区所有文件和文件夹。由于分区的存储空间非常大,所以空间的分配单位不是扇区而是“簇”,1簇=2n个扇区,n的大小与磁盘分区容量的大小有关。硬盘的簇可以是4个或8个扇区(n=2或3),即每个簇大小为2KB或4KB,40GB以上的硬盘,每个簇可以在8KB以上。每一个簇都有一个簇号,簇号是分区中所有簇的顺序号(从0开始),从簇号很容易计算出它在磁盘上的物理扇区的位置。

(3) 文件分配表(FAT)。共一式两份,用于记录数据区的分配使用情况。它以簇号为序,指出每一个簇处于何种状态:“使用”状态、“空闲”状态还是“损坏”状态。在下面的FAT表例子中(表33),假设数据区中一共有1000个簇(000~999),分配状态中的整数“000”和“999”分别表示“空闲”状态和“损坏”状态,其他整数则表示该簇处于使用状态,其含义后面再解释。

表33FAT表举例

簇序号000……099100101102……304305……999

分配状态000……102000000305……999103……000

FAT表在磁盘格式化时自动生成,一式两份,内容完全相同,其中一份用作备份。如果在磁盘格式化过程中发现有损坏的簇(一个扇区有问题则整个簇都不能使用),则在FAT表中状态登记为999(损坏),完好且未使用的簇,其分配状态的初值均设置为000(空闲)。

(4) 根目录区(FDT)。

根目录区用来存放文件目录表(file directory table,简称FDT)。FDT是文件管理程序实现“按名存取”的主要手段和工具,FDT表中共包含512个表项,每个表项长度为32字节,1个表项用来记录根目录中的1个文件(或文件夹)的说明信息(图318)。具体内容有:

● 文件(文件夹)的名字(含扩展名)。

● 文件(文件夹)内容存放在数据区中的起始簇号。

● 文件(文件夹)的实际大小(字节数目)。

● 文件(文件夹)的日期和时间信息。

● 文件(文件夹)的所有者、文件(文件夹)的使用属性等信息。

图318FDT表项的内容与格式

3. 磁盘空间的分配

磁盘中的数据区是用来存储文件(或文件夹)内容的。文件管理程序怎样将数据空间按簇为单位分配给文件使用呢?Windows中FAT文件系统采用链接分配的方案,其优点是:既可使用数据区中分散在任何位置的簇,提高空间利用率,又很简单,目录中只需记录文件的起始簇号,文件的扩展也很容易。

具体来说,在磁盘的数据区中存储某个文件的内容时,分配给它的若干个簇在FAT表中将表示成为一个“数字链”:起始簇号在根目录表(FDT)中指出,接着使用的那个簇其状态值是存储该文件内容的下一个簇的簇号,最后一个簇的状态值用特殊标记“-1”表示。

以图319为例,假设数据区中有2个文件,其中一个名字为MYFILE,经文件管理程序分配,其内容存放在磁盘数据区中的5个簇中,存放的顺序是:9→16→1→10→25。所以FDT表中MYFILE文件的起始簇号是9,FAT表中9#簇的状态是16,16#簇的状态是1,1#簇的状态是10,10#簇的状态是25,25#簇的状态是“-1”(MYFILE文件的最后一个簇)。

图319硬盘空间的分配和FAT的作用

4. 文件操作的实现

当用户需要从磁盘中读出某个文件(假设文件名为YOURS)时,文件管理程序将:

(1) 读出磁盘中的FDT表。

(2) 在FDT中查找有无名为YOURS的文件。

(3) 若有文件名为YOURS的文件,检查该文件的读、写和保护属性。

(4) 如允许读出,则在FDT表中读出该文件的起始簇号。

(5) 从簇号计算出磁盘的起始扇区号。

(6) 从该扇区开始读出文件的第1簇内容,送入内存。

(7) 查看FAT表,读出存放文件内容的下一个簇号。

(8) 重复步骤(6)(7)(8),直到FAT表中簇号为“-1”为止。

当用户向磁盘中根目录下保存一个文件时,文件管理程序首先在FDT中查找有无同名文件。如果没有,则在FDT中创建一个新的表项,登记该文件的有关说明信息,同时在FAT表中找一个空闲的簇存储该文件的内容,并把该簇号作为起始簇号登记在FDT表项中;然后继续在FAT表中寻找一个空闲簇,在数据区的相应位置处存储余下的文件内容,并在FAT表中登记;重复上述过程,直到文件内容全部保存完毕为止。

3.2Windows和安卓的文件系统

文件系统是一种用于在辅助存储器中组织、管理和存取信息的软件,它使用文件、目录、路径等逻辑概念代替了硬盘、光盘、闪存盘等物理设备中使用的数据块(扇区)、簇等物理概念。计算机和智能手机等可以使用多种不同类型的辅助存储器,所以操作系统必须支持多种文件系统。下面简单介绍Windows和Android系统中的文件系统。

1. Windows的文件系统

(1) FAT文件系统

FAT文件系统是Windows操作系统采用NT内核之前所使用的文件系统,它有FAT12、FAT16和FAT32之分,其名称后面的数字用来指出表示磁盘簇号所使用的二进位数目。FAT12适用于过去的软磁盘,现在已经淘汰。FAT16文件系统使用16位的簇号,最多可以有65536个簇。Windows XP中簇的大小范围是512B~64KB,因此磁盘(或磁盘的分区)的容量最大只能达到4GB。现在硬盘甚至U盘的容量早就超过4GB,所以FAT16也已不适合使用。

FAT32使用的FAT表其簇号由16位扩充为32位(其中高4位被留作他用,真正有效的是28位),簇的大小范围是512~32KB,这使FAT32理论上拥有228×32KB=8TB的寻址能力。一般可支持2TB的分区。但FAT32只能存储最大4GB的单个文件,无法存放光盘ISO镜像、高清视频、大型图形文件等,这是其不足之处。

FAT32的优点是,其文件格式是一种通用格式,任何USB存储设备都会预装该文件系统,因而可以在所有操作系统平台上使用。它的缺点是,文件被删除后FAT不会把空闲的簇整理成连续的完整区段,以至留下许多“碎片”,时间长了之后会使文件的数据变得越来越分散,严重减慢了读写速度。碎片整理虽然是一种解决方法,但耗时较多且必须经常进行。

(2) exFAT(扩展FAT)文件系统

exFAT也称作FAT64,是微软公司开发的用来扩展FAT32性能的一种文件系统,比较适合闪存(U盘/存储卡)使用。它保留了FAT文件系统的简明性,提供了对超过4GB的超大文件和超过32GB的大容量U盘的支持,适合用来存储超大文件,还可以在Mac和Windows操作系统上通用。虽然是微软的技术,但苹果批准在系统中使用该文件格式,因此在Mac系统中格式化存储设备时会出现exFAT文件格式的选项。

(3) NTFS文件系统

NTFS(new technology file system)是微软公司为Windows NT开发的文件系统,Windows XP、Vista,Windows 7、Windows 8和Windows 10都支持NTFS文件系统。

NTFS也使用簇作为磁盘空间的分配单位,簇号采用64位表示,这使得NTFS理论上能够支持容量高达160亿GB的磁盘(分区)。而Windows限制其大小不超过256TB(簇大小为64KB时)。NTFS允许在每个磁盘(分区)上存放多达232-1个文件,每个文件最大可达16TB。

FAT文件系统中使用一些专用的扇区来存储引导程序、FDT表、FAT表等信息,这些信息并未以文件形式保存和使用。但在NTFS中,所有这些信息也都以文件的形式存储,因而带来了很大的灵活性。

与FAT32相比,NTFS文件系统具有许多有用的特性。例如:

 可以支持的分区大小能达到2TB甚至更大,而FAT32支持的分区大小最大为32GB。

 可靠性更高,它是一个可恢复的文件系统,很少需要用户运行磁盘修复程序。

 支持对分区、文件夹和文件的压缩。应用程序对NTFS分区上的压缩文件进行读写时,文件将自动进行解压缩,当文件关闭或保存时文件系统会自动对文件进行压缩。

 安全性更好。NTFS可以为共享的文件夹或文件设置访问许可权限并记录安全日志,通过日志就可以查看哪些用户对文件夹、文件进行了什么操作,从而发现可能的非法访问。

NTFS在Windows平台广泛使用,它特别适合磁盘存储器,对闪存不太适合(读写操作频繁,芯片负担重)。NTFS跨平台的功能较差,安卓系统大多还不支持NTFS文件系统,Mac系统只能读取NTFS文件但没有权限写入,需要借助第三方工具才能实现。

2. 安卓设备的文件系统

安卓智能手机操作系统采用的是Linux内核,文件管理目前大多采用Linux的第4代扩展文件系统EXT4(fourth extended filesystem),扩充的SD卡可采用FAT32或exFAT文件系统。

(1) EXT4文件系统

EXT4可管理的辅助存储器容量达1EB(1018字节),单个文件容量最大为16TB(16×1012字节)。Linux文件系统中一切皆文件,设备是文件,目录也是文件。

EXT4把文件组织成树型结构,目录是层层嵌套的,它是树的中间节点。实际上,目录中并没有存储文件的数据,而只是存储了一些指针,目录中的子目录数据和文件数据仍然平铺在磁盘上。这样,在目录中通过指针就可以容易地找到文件的数据。

与Linux一样,安卓系统通常将辅助存储器划分成多个分区,以便把不同软件、不同数据放入不同分区进行管理,以降低系统的风险,提高可靠性。使用容量较小的分区可以缩小文件搜索范围,加快文件存取速度,提高文件处理的效率。此外各个分区还可以格式化成不同的文件系统,以适应不同的使用要求。

安卓/Linux的文件目录(文件夹)结构与Windows不完全一样,Windows的文件夹结构是多个并列的树状结构,有几个磁盘(或磁盘分区)就有几个文件树,树的根部是磁盘(或分区)的盘符如C,D,E,F等。安卓/Linux是单个的树状结构,不管系统中有多少磁盘(或分区),整个系统只有一个文件树(即只有一个根目录,没有盘符的概念)。因此,任何一个分区都必须先挂载(mount)到某个目录,把该分区当作文件树中的一个目录处理,然后文件系统才能对该分区所包含的文件或文件目录进行存取操作。

(2) 安卓智能手机NAND闪存的分区

安卓智能手机的“机身存储”(NAND闪速存储器),容量大多在64~256GB之间,有些手机还可以添加SD卡(TF卡)扩充其容量,甚至通过USB OTG接口连接便携式硬盘。在安装系统的时候设备制造商对上述辅助存储器预先进行了分区。安卓是开放系统,设备制造商可根据产品的市场定位为其定制各具特色的安卓系统,因此不同安卓手机NAND闪存的分区以及文件树的目录结构不完全相同。但大多数安卓设备至少都包含如下几个分区(名称可能有不同):

boot分区:该分区位于NAND闪存的开始位置,其内容首先是头部(相当于Windows硬盘中的MBR),然后是引导加载程序UBoot,最后是Linux内核(kernel)和根文件系统ramdisk。

recovery分区:它是boot分区的备份,内容与boot分区大致相同,在修复手机时使用。boot分区和recovery分区分别在安卓设备开机启动或恢复模式启动时起作用,它们的位置固定,其内容用户通常不可见。

system分区:包含有除kernel、ramdisk之外整个安卓系统的全部程序代码和数据,如用户界面、应用框架、程序库和系统预装的应用程序等,该分区在启动过程中将挂载在文件树的/system目录上。

userdata分区:包含用户自己的数据,如通讯录、短信、系统设置信息及用户自行下载安装的App等,开机启动时挂载在文件树的/data目录上。

cache分区:用于存放经常访问的数据和App,挂载在文件树的/cache目录上。

扩充的SD卡(如果插入手机的话)仅1个分区,它将挂载在/storage目录上(或/sdext,不同手机使用的目录名称不同)。

还有一些其他分区不再细述。

(3) 华为智能手机的文件目录树

以华为某型智能手机为例,安卓系统启动运行后其文件目录树的结构大体如图320所示,其中印有灰色底纹的目录是分区的挂载点,无底纹的目录和文件均位于根目录所挂载的分区中。图中仅画出了文件目录树的一部分,使用不同版本EMUI的华为手机会略有区别。

图320安卓系统的文件目录树(部分)

其中,/system目录占有重要的地位,基本上OS内核和安卓系统所有的工具、库和预装应用程序都在这个目录下。/system目录又分成若干子目录,如/system/app里面主要包含制造商提供的各种应用程序(日历、计算器、照相机、邮件、浏览器等,文件后缀为apk);又如/system/bin这个目录里的文件都是二进制程序代码,主要是OS内核自带的组件;再如/system/lib目录中存放的是系统底层的程序库,如runtime运行环境(ART)等。

/data目录是userdata分区的挂载点,它又包含如下子目录,如/app、/data、/property、/misc等。/data/app子目录里存放着用户自己安装的应用程序的apk文件;/data/data子目录里存放的是这些应用程序相关的数据文件、设置信息、缓冲等。

/dev目录是Linux系统的常规目录,里面都是I/O设备模拟的文件系统(Linux中一个外设相当于一个分区)。

/etc是一个链接,它指向/system/etc,用于存放系统的配置文件。

上述文件目录通常由操作系统进行维护,用户没有root权限则无法对其操作,也不能打开目录查看其内容。这些目录占用了机身存储(即NAND闪存)的一部分,是安卓系统自身和应用程序的主要驻留地,受操作系统保护,大多只允许读不允许写,所以有人也把它称为ROM或保留区,而把机身存储中有别于ROM的分区称为“内部存储”(或内置SD卡)。

内部存储(内置SD卡)的目录是/storage/emulated/0,如果手机又扩充了SD卡(称外部SD卡),则其目录为/storage/00C212F6/,这两个目录的用途大体相同(后者存取速度稍慢),它们用于存放各种媒体文件和共享文件,可被所有App共享(不必预先取得许可)。手机拍摄的照片、下载的音乐和视频、编写和复制的文档等大多存储在这两个目录中。例如,微信收到的照片和视频需保存在手机中时,存放的目录是:/storage/emulated/0/tencent/MicroMsg/WeiXin/;手机所拍摄的照片保存在目录/storage/emulated/0/DCIM/Camera/中;如果扩充了外部SD卡,则可以将照片存放在目录/storage/00C212F6/DCIM/Camera/中。

根目录下的/sdcard和/mnt/sdcard都是指向/storage/emulated/0的链接,它们相当于Windows中的快捷方式,内容完全相同。与此类似,/mnt/ext_sdcard指向/storage/00C212F6,两者都指扩充的SD卡的文件内容。

/mnt是用于挂载外设的目录,除了挂接上述内置SD卡和外部SD卡之外,系统中的每一个外设对应的文件,在系统启动时都自动挂接到/mnt目录。

init是根目录中的一个程序,它在系统启动过程中运行,用于对安卓系统进行初始化。init.rc是init程序运行时需要使用的脚本文件,其中包含有系统的许多配置信息。

需要说明的是,未经root的安卓手机自带的文件管理器(或者借助手机助手软件在手机与PC连接后),并不能显示出图320所示的根目录内容,只能对/sdcard目录(即/mnt/sdcard)和外部SD卡(即/mnt/ext_sdcard)中的内容进行显示、复制、移动及删除等操作。

大多数安卓设备出厂时,用户对安卓系统的控制权都是受限的,只有成为安卓系统的超级用户(相当于Windows系统的管理员)才能掌握系统的全部控制权,如卸载预装应用、禁用某些开机启动项、进行“刷机”(重装操作系统)等。所谓“root”,就是借助专门的软件使普通用户升级为超级用户(特权用户),类似于Apple iOS系统的“越狱”。普通用户若无特别需要不建议进行root,因为root之后增加了安全风险,可能还会失去厂家对设备保修的承诺。

(4) 安卓文件系统的进化

安卓手机中存储了大量的目录和许多App及数据,运行某个App也好,用微信发送1张照片也好,都需要从辅存中找到相应的程序或数据文件把它读到内存。如何提升文件的存取(查询)性能,除了硬件升级(例如把eMMC接口标准的闪存换成UFS标准的闪存)之外,文件系统的优化和改进也很重要。

EXT4文件系统开发时(2006年),当时的存储介质普遍还是硬盘,所以EXT4并没有针对闪存作很多优化。2012年韩国三星提出了F2FS(flash friendly file system)文件系统,其目的是为了更好适应 NAND 一类的闪存设备(例如固态硬盘、eMMC和SD卡等),它在文件的随机读写性能方面有了提升,但相同文件以F2FS文件格式存储比以EXT4存储会占用1.1倍到1.5倍的存储空间。而且,F2FS文件系统只是对安卓的用户分区进行改造,而运行安卓系统的系统分区仍然保留了EXT4的结构。

华为对F2FS进行了优化,其中之一是优化了空闲空间的回收机制,它能有效应对手机长期使用后的碎片化导致性能下降的问题,2016年Mate 9手机采用了F2FS,相比Ext4和长期使用后的F2FS文件系统访问流畅度提升20%。

2018年华为公司推出了全新的EROFS(extendable readonly file system)超级文件系统,这是一种压缩文件系统,采用了fixedsized output文件压缩算法,提高文件存取性能,特别是随机读文件的性能。不仅是用户分区,系统分区的随机读取速度也显著提高。由于采用了改进的压缩算法,EROFS文件系统更节省空间,存储安卓系统的ROM空间可以节省1~2GB。在EMUI 9.1版中使用后(如P30系列手机),系统的随机读性能平均提升了20%,用户能感受到应用启动更快了,操作也更流畅了。

3.3Windows和安卓系统的开机启动过程

由于计算机内存储器断电后不保存信息,加上操作系统庞大而复杂,PC和智能手机的加电启动过程需要运行一系列的程序,其间发生一点差错计算机就无法正常运行。大致了解系统的启动过程,对于理解系统的工作原理以及在系统无法正常启动时判断故障原因会有一定的帮助。

1. Windows XP的启动过程

假设Windows XP已经安装在硬盘的第1个分区中,安装时对该分区进行了格式化(如FAT32),则硬盘的空间结构如图317所示(该硬盘称为启动盘,OS所在分区称为活动分区)。参看图321(a),启动盘的0#扇区(称为主引导扇区MBR,它不属于任何分区)中存放了初始引导程序IPL和该硬盘的分区表PT(64个字节),活动分区的0#扇区(称为分区引导扇区)中存放了分区引导程序PBR和有关信息,1#~15#扇区中是OS内核的引导加载程序ntldr和boot.ini表,从16#扇区开始存放XT操作系统的程序和相关数据。用户开机启动Windows XP的过程中CPU的工作步骤为[图321(a)]:

图321Windows的启动过程

(1) 执行BIOS程序。计算机加电后,CPU自动执行1条跳转指令,跳转到BIOS程序的开始处执行。BIOS程序首先检测电源和CPU芯片是否正常,若发现问题则喇叭会发出蜂鸣声报警。然后检测显卡、硬盘等设备,在屏幕上短暂显示有关信息,接着再进行内存测试。在此期间若用户按下某一热键(F2、F12等)则BIOS进入CMOS设置程序,用户可以对日期和时间、系统口令,以及加载操作系统时访问辅助存储器的顺序等参数进行修改,修改完成后计算机自动重新启动。

接着,BIOS程序按照CMOS中规定的顺序寻找安装了操作系统的启动盘(正常情况总是硬盘在先,也可以设置为光盘或U盘在先,先找的辅存若不是启动盘,则按顺序再找其他辅存),找到后将启动盘的0#扇区内容(主引导记录MBR)读入内存,并转而执行其中的初始引导程序IPL。

(2) 执行IPL程序。IPL程序读出分区表PT检查该硬盘有没有活动分区,有几个活动分区。若没有或者有多个活动分区,则显示出错信息,启动停止;若有且只有1个活动分区,则把该活动分区0#扇区中的PBR程序读到内存,并转去执行该程序。

(3) 执行PBR程序。PBR是在安装XP操作系统时写入扇区中的,它知道XP的引导加载程序是ntldr(NT loader,NT内核加载程序),且存放在同一分区的1#~15#扇区中,于是读出ntldr装入内存并转向执行。

(4) 执行NT内核加载程序ntldr:

① 切换x86处理器的工作模式,然后运行WinPE程序建立一个微型文件系统,使程序能读写FAT文件系统和NTFS文件系统;

② ntldr读出boot.ini文件,判断计算机中安装了几个Windows(可能还安装了Windows 2000),安装在哪个分区,在屏幕上列表供用户选择(仅1个OS时则跳过此步骤);

③ 按照用户的选择ntldr从硬盘向内存装入Windows XP的内核ntoskrnl.exe和硬件抽象层程序hal.dll,以及相关的设备驱动程序和服务程序,随即将系统的控制权交给OS内核程序ntoskrnl.exe。

(5) OS初始化。ntoskrnl.exe程序在屏幕上显示图形启动界面,完善注册表,进一步加载设备驱动程序并初始化,然后启动高层的子系统和各项服务。

(6) 系统登录。屏幕出现登录对话框,用户登录成功后系统自动加载相关的系统服务和应用程序。

至此,Windows XP的启动过程全部完成。

2. Windows 7、8、10的启动过程

与Windows XP相比,Windows 7、8和10的启动过程有了改变,其中前3步内容基本一致,只是把ntldr的两个功能(操作系统选择和OS内核加载)分开给两个程序bootmgr和winload.exe分别完成。此外,安装了Windows 7、8、10的硬盘其空间划分与Windows XP也有所不同,它会在安装OS时自动在硬盘上划分出大约100~300MB的1个保留分区(不分配盘符,文件和文件夹都是隐藏的),用于备份和保护引导文件。

参看图321(b),在Windows 7的启动过程中,IPL程序读取并执行PBR之后,后者将启动执行Windows启动管理程序bootmgr.exe(在根文件夹中),bootmgr.exe会读取引导配置数据BCD(Boot Configuration Data,其中包含了所有操作系统的配置信息)。如果计算机中安装了多个OS,则在屏幕上显示启动菜单,根据用户的选择加载相应OS的winloader.exe(在Windows\System32文件夹中)并转向执行该程序,由后者加载操作系统的内核(ntoskrnl.exe)和硬件抽象层hal.dll,再加载所需要的驱动程序和服务。

OS内核初始化之后,能继续加载会话管理器smss.exe(在Windows\system32文件夹中)。此后,Windows启动应用程序wininit.exe(也在Windows\system32文件夹中),它负责启动services.exe(服务控制管理器)、lsass.exe(本地安全授权)和lsm.exe(本地会话管理器),当这些程序都顺利运行之后,Windows 7、8或10的启动即告完成。

3. 安卓系统的启动过程

Android智能手机的整个启动过程大体与PC相似,它也分为三个阶段:① 由引导加载程序boot loader装入操作系统的内核;② 启动Linux内核;③ 启动整个Android操作系统工作。但具体的软硬件实现细节还是有许多区别。

上面已经介绍,Windows XP使用的引导加载程序(boot loader)是ntldr,Windows 7、8、10使用的引导加载程序是bootmgr和Winload.exe。

安卓智能手机

使用ARM架构的CPU,它们的引导加载程序大多使用通用引导加载程序UBoot。UBoot可以引导多种操作系统,支持多种架构的CPU,已经成为ARM平台引导加载程序事实上的标准。下面简单介绍安卓智能手机加电启动的过程(图322)。

图322安卓设备加电启动过程

(1) 加电引导

不同SoC芯片其加电引导过程不完全相同,通常是SoC芯片中有1个只读存储器称为boot ROM,其中固化了类似于BIOS的程序。安卓设备加电后CPU即自动运行其中的程序,完成硬件检测,查找OS启动盘(通常是NAND闪存),并将存放在boot分区中的UBoot程序的第1部分(boot1.img,内存映象文件)拷贝到ARM处理器的指令cache中,然后CPU转去执行该程序。

(2) 运行引导加载程序UBoot

CPU先执行boot1程序,对内存(RAM)进行检测和初始化,并将UBoot第2部分代码(boot2.img)装入到RAM中;再转去执行boot2程序,boot2从闪存的boot分区向RAM装入Linux内核(kernel.img)和根文件系统(ramdisk.img),后者包含init程序和一些重要的配置文件如init.rc等。

(3) 运行Linux内核程序kernel

首先为操作系统设置所需要的条件和环境(如中断控制器、存储器保护、cache存储器等),装入设备驱动程序并初始化,启动用户空间进程,然后转去执行初始化程序init。

(4) 运行安卓系统的初始化程序init

init进程是用户空间的第1个进程,它是所有其他进程的根进程。通过解析init.rc等脚本文件,它完成两个主要任务:一是将system分区、userdata分区和catch分区等分别挂载到根文件系统的目录节点/sys、/data、/catch上,形成安卓系统的文件树;二是按脚本规定启动底层服务(如Zygote,ServiceManager等)。此后init会以守护进程(daemon)的形式一直在后台运行,监听有无特定事件发生。

(5) 启动Zygote程序,创建Dalvik虚拟机

init还启动Zygote程序创建Dalvik虚拟机,加载资源与系统共享库,启动系统服务器程序,使系统进入Zygote监听模式以支持App的启动。此后每启动一个App运行,Zygote就会为之生成一个新的Dalvik虚拟机。

(6) 启动系统服务

Zygote进程启动之后,init进程会启动runtime进程。后者首先初始化服务管理器,绑定服务的注册与查找,向Zygote发送启动系统服务程序的请求,然后由系统服务程序启动各种系统服务。例如,电源管理器、Activity管理器、电池服务、定时管理器、传感服务、窗口管理器、蓝牙服务等核心服务,以及状态栏服务、网络状态服务、网络连接服务、通知管理器、搜索服务、剪切板服务、壁纸服务、音频服务等其他服务。

至此,Android系统完成了全部启动过程(实际上智能手机还需要在启动过程中负责完成通信处理器映像文件的装入和处理器的唤醒等任务)。

上面是安卓手机的正常启动模式(normal mode)。如果系统发生故障(如死机、无法正常启动或者手机染上了病毒等),则可以使用恢复模式(recovery mode)启动手机。方法是开机的时候同时按下音量键和电源键(不同安卓设备方法不同)并持续数秒钟,安卓设备将进入恢复模式,选择其中的恢复启动(reboot),CPU就会从NAND闪存的recovery分区中读出UBoot程序执行OS的加载,安卓设备将恢复为出厂状态。顺带说明一下,“刷机”或OS版本的升级也是通过恢复模式完成的。

3.4编译程序和解释程序

程序设计语言处理系统是系统软件中的一大门类,它随着使用的程序设计语言不同而不同。任何一个语言处理系统通常都包含一个翻译程序,它把一种语言的程序翻译成为等价的另一种语言的程序。被翻译的语言和程序分别称为源语言和源程序,而翻译生成的语言和程序分别称为目标语言和目标程序。按照不同的翻译处理方法,翻译程序可分为以下三类:

(1) 从汇编语言到机器语言的翻译程序,称为汇编程序。

(2) 按源程序中语句的执行顺序,逐条翻译并立即执行相应功能的处理程序,称为解释程序。

(3) 从高级语言到汇编语言(或机器语言)的翻译程序,称为编译程序。

除了翻译程序外,语言处理系统通常还包括连接程序(将多个分别编译或汇编得到的目标程序和库文件进行组合)和装入程序(将目标程序装入内存并启动执行)等,其相互关系如图323所示。

图323高级语言程序的编译、连接、装入和运行过程

由于汇编语言的指令与机器语言的指令大体上保持一一对应关系,所以汇编程序较为简单。以下只对解释程序和编译程序作简要说明。

1 解释程序

解释程序对源程序进行翻译的方法相当于两种自然语言之间的“口译”。解释程序对源程序的语句从头到尾逐句扫描、逐句翻译,并且翻译一句执行一句,因而这种翻译方式并不形成机器语言形式的目标程序。

解释程序的优点是实现算法简单,且易于在解释过程中灵活方便地插入所需要的修改和调试措施;其缺点是运行效率低。例如,对于源程序中需要多次重复执行的语句,解释程序要反复地读取、翻译和解释执行这些语句的源程序。因此,解释程序通常适合于以交互方式工作的、或在调试状态下运行的、或运行时间与解释时间相差不多的程序。

2 编译程序

编译程序对源程序进行翻译的方法相当于“笔译”。在编译程序的执行过程中,要对源程序扫描一遍或几遍,最终形成一个可以在计算机上执行的目标程序。编译程序的实现算法较为复杂,但通过编译程序的处理可以产生优化的、高效率运行的目标程序,并把它保存在磁盘上,以备多次执行。因此,编译程序更适合于翻译那些规模大、结构复杂、运行时间长的大型应用程序。

3.5查找算法及算法分析

查找(search)是计算机中经常使用的一种基本操作,例如在文档中查找某个单词,在U盘中查找某个文件,在微信收藏中查找特定内容,在互联网中查找需要的网页等。查找操作的共同点是根据特定关键字(可以唯一或独特地标识数据元素的数据项,如学生的学号、图书的检索号等)的值,在一组数据中找出其关键字等于特定值的数据的过程。若找到符合要求的数据,则称这次查找是成功的;否则称查找失败。查找操作有多种不同的算法,下面以在学生登记表中按学号查找学生数据为例,介绍两种查找算法。

1. 顺序查找

假设学生登记表由一维数组R组成,即n个学生记录分别存入数组R的n个数组元素中(图324),要查找学号为K的学生数据记录。

图324学生登记表

顺序查找是最简单的查找算法。该算法是从数组的第一个元素R[1]开始,逐个取数组元素中表示学号的关

键字值(key)与K比较,若第m个数组元素的关键字值R[m].key=K,则查找成功,即第m个数组元

素是要查找的学生记录;否则,取下一个数组元素进行比较。直至n个数组元素都比较完毕且其key值均不等

于K,说明不存在该学号的学生记录,即查找失败。算法如下:

从第一个数组元素R[1]开始;

while(){

当前数组元素的关键字值key与K比较

if(相等) 查找成功;

if(n个数组元素均已找过) 查找不成功;

取下一个数组元素

}

分析以上算法,对n个数组元素进行顺序查找,若查找成功,需要比较关键字的次数最少为1次,即R[1]就是要查找的学生记录;而比较次数最多为n次,即最后一个数组元素R[n]是要找的记录。假定每个数组元素被查找的概率相等,可以推算其查找成功的平均次数为(n+1)/2。结合具体应用,若在有15000个学生的登记表中查找学号为‘M038’的学生记录,如果每检查一个数组元素需要费时10ms,那么这样的查找方法在最坏情况下需要的时间为150s,而在平均情况下,查找一个学生记录需要约75s。显然,顺序查找算法的效率很低,其等待时间一般使人难以忍受。

2. 二分查找

二分查找(binary search)又称折半查找。这种方法要求数组中的记录已按关键字的大小进行了排序(若关键字为学号,则按字典顺序排列)。二分查

找算法的具体思想是:因为查找表中的学生记录已经按关键字(学生的学号)进行了排列(图325),则查找时不必再逐个数组元素顺序地与K比较,而可采用跳跃的方式,

即先将“中间位置”(n+1)/2处的数组元素的key值与K进行比较,若相等,则查找成功;若K大

于“中间位置”数组元素的key值,则在数组的下半部(有阴影部分)继续进行二分查找;否则

在数组的上半部进行二分查找。这样可以逐步缩小查找的区域,直到查找成功或失败为

止。

图325经过排序的学生记录查找表

二分查找的算法描述如下:

设待查记录所在区域的下界为low,上界为high(本例中初始下界值为1,初始上界值为

n),则中间位置mid=(low+high)/2(结果取整)。

若R[mid].key=K, 则查找成功,R[mid]就是要查找的数据记录;

若R[mid].key<K, 则待查记录在查找表的下半部,继续在区域mid+1~high内二分查找;

若R[mid].key>K, 则待查记录在查找表的上半部,继续在区域low~mid-1内二分查找。

以上过程重复进行,直到查找成功或者剩下的查找区域为0。

分析可知,二分查找算法的平均比较次数大约为(log2n+1)/2。仍以查找有15000个学生的登

记表为例,若该登记表中的学生数据记录已按学号的字典顺序从小到大排序,当用二分查找法查

找指定学号为‘M038’的学生记录,如果第一次查找,其中间位置的数组元素不是应找的学生记录,此时

,二分查找需要再次考虑在数组的上半部或下半部进行二分查找,查找表的数组元素将降至

7500个,同样在第三次查找时,查找表的数组元素将降至3750个,照此继续下去,可以计算

出平均通过8次比较(最坏情况是待查找学生记录位于查找表的两端,此时需进行15次比较)之

后,即可找到待查的学生记录(查找成功),或者宣布在查找表中不存在关键字key值为K的

记录(查找失败)。同样,当假定每次做关键字比较需费时10ms,那么查找学号为K的学生记录的时间平均只需0.08s。显然,可以认为这个算法的处理是“瞬间”完

成的。

相对于前述顺序查找而言,二分查找的优点是需要进行的比较操作次数少,查找速度快。必须指出,二分查

找所以能快速处理,其所付出的代价是要预先对查找表中的数据记录按其关键字值进行排序,而

排序一般也是很费时的。所以,二分查找算法通常适用于一旦建立就很少变动而又经常需要进行

查找的有序表。

3. 算法分析简介

从上面的查找算法可知,一个问题使用计算机求解可以有多种不同的算法。不同的算法运行时,在计算机资源(主要指CPU时间和存储器空间)消耗方面可能会有很大差别,即要付出不同的代价。具体而言,算法的时间代价是依据该算法运行时所耗费的时间多少来决定的。通常把算法运行的时间特性记为T(n)。T(n)中的n表示问题规模的大小,例如,对n个整数元素进行排序,n就是问题规模的度量值。

算法的时间特性T(n)是n的函数(通常表示为多项式)。算法的时间复杂性指的是当问题的规模n充分大时完成该算法所需时间的数量级表示。例如,某程序运行的时间特性为T(n)=2n3+3n2+2n+1,则表明该程序运行所需要的时间与n3成正比,引入符号“O”(读作“大O”),当n充分大时,则有T(n)≈O(n3),O(n3)称作该算法的时间复杂度。

与此类似,空间复杂度的含义是解决该问题的算法在计算机中实现时所占用存储空间大小的数量级,也可

用O函数表示。

不难看出,本章列举的几个算法例子中,数组元素排序算法的时间复杂度为O(n2),顺序查找算法的时间复杂度为O(n),而二分查找算法的时间复杂度为O(log2n)。若按数量级递增对算法分析中常见的时间代价排列,则它们依次为常数阶O(1),对数阶O(log2n),线性阶O(n),线性对数阶O(nlog2n),平方阶O(n2),立方阶O(n3)…K次方阶O(nK),指数阶O(2n)等。显然,若一个算法的时间代价为指数阶O(2n),则其效率极低,n值稍大时这样的算法就无法实际使用了。

为了更具体地说明这一点,表34列出了几种算法复杂度的函数值随问题规模n增大时的变化情况。

表34算法复杂度函数值的变化对比

log2nnnlog2nn22n

01012

12244

2481616

382464256

4166425665536

53216010244294967296

从主观上讲,人们希望设计或选用一个时间复杂度和空间复杂度都小、其他性能也好的算法

,然而,实际的算法设计不可能做到十全十美,因为这些要求往往会相互抵触。例如,一

个运行时间较短的算法,却往往占用存储空间较大。因此,在不同情况下应有不同的选择

。如果按某算法所编制的程序使用次数较少,则力求该算法简明易读;反之,如果程序要

反复运行多次,则应尽可能选用快速的算法。此外,如果待解决问题的数据量较大,而计算

机的存储容量有限,则算法设计应主要考虑如何节省存储空间。

第4章移动通信与互联网

第4章移动通信与互联网

进入21世纪以来,移动通信和互联网(Internet)的发展使人们进入了移动互连的新时代,人们的工作、学习和生活发生了很大的变化。本章先简单介绍移动通信和计算机网络的基础知识,然后重点讲解互联网的组成、应用及互联网通信安全。

4.1移动通信

从广义的角度来说,信息的交流与传递均可称为通信(communication)。但现代通信指的是使用电波或光波传递信息的技术,通常称为电信(telecommunication)。电话、传真、短信和微信是通信,广播、电视、监控和导航等也是通信,后者侧重于单向传输信息。

早在18世纪和19世纪初,人们就开始用电进行远距离传输信息的试验。1836年英国建成第一条电报线路。1876年美国人A.G.贝尔研制成可供实用的电话。20世纪初意大利人G.W.马可尼实现了跨越大西洋的无线电报通信。1918年出现收音机和无线电广播。1938年第一个电视台开始播出。晶体管和集成电路等电子器件的发明,大大促进了通信和广播技术的发展,有线载波通信、微波通信、数字通信、卫星通信、光纤通信、彩色电视和移动通信等技术相继出现,特别是计算机互联网以及它们与通信、广播、传感、监控的结合,形成了集信息采集、传输、存储、识别、转换和处理等多种功能相互融合的跨部门跨地区的全球信息系统,人类社会文明跨入了一个新阶段。

4.1.1通信的基本概念

1. 通信系统的简单模型

通信的基本任务是传递信息,因而至少需由三个要素组成,即信息的发送者(称为信源)和信息的接收者(称为信宿),携带了信息的电(或光)信号,以及信息的传输通道(称为信道)。最简单的通信系统模型如图41所示。以电话(移动电话和有线电话)为例,发话人(及其使用的手机/电话机)和受话人(及其使用的手机/电话机)相当于信源和信宿,说话人的话音经手机/电话机转换得到强度随时间而变化的电磁波/电流就是携带了信息的信号,信号在自由空间或电话线以及基站、中继器、交换机等设备中传输,自由空间/电话线是信号传输介质,它们与基站、中继器、交换机等构成了传输信号的信道。信源和信宿中使用的发信和收信设备(手机/电话机),也称为通信终端。

通信系统中所传输的信息必须以某种电(或光)信号的形式才能通过传输介质进行传输。电(或光)信号有两种形式:模拟信号和数字信号。模拟信号通过连续变化的物理量(如信号电平的幅度或电流的强度)来表示信息,例如人们打电话时声音经话筒(麦克风)转换得到的电信号就是模拟信号。数字信号的电平高低或电流大小只用有限个状态(一般是2个状态)来表示,例如电报机、传真机和计算机发出的信号都是数字信号(图42)。

信源/信宿信号信道

信号信宿/信源

图41通信系统的简单模型

图42模拟信号与数字信号

模拟信号在传输过程中容易受噪声信号干扰,传输质量不够稳定。随着数字技术的发展,目前已经越来越多地把模拟信号转换成数字信号后再进行传输(或信源本身发出的就是数字信号),这种通信传输技术称为数字通信。数字通信的抗干扰能力强,差错可控制,可靠性高,还可以方便地对信号加密,安全性更容易得到保证。而且,由于传输的是数字信号,可以直接由计算机进行存储、处理和管理,大大提高了系统效率。

电话、电视和监控系统都是将信源发出的声音/视频图像的模拟信号,转换成数字信号(称为“模数转换”)后再进行传输的,有关音视频信号数字化的知识在第5章再介绍。

2. 有线通信

按使用的传输介质类型,通信分有线通信和无线通信两大类。有线通信使用的传输介质是金属导线和光导纤维,无线通信不需要物理连接,它通过电磁波在空间的传播来传输信息。不同的传输介质具有不同的传输特性,需要使用的技术和设备也不一样,成本相差很大,因而各有其不同的应用范围(表41)。

表41通信传输介质的类型、特点和应用

介质类型特点用途

有线

通信

双绞线成本低,易受外部高频电磁波干扰,可靠性不高;传输距离有限固定电话的本地回路(从用户终端到电信局之间)、计算机局域网等

同轴电缆传输特性和屏蔽特性良好,可作为传输干线长距离传输信号,但成本较高固定电话的中继线路、有线电视接入等

光缆传输损耗小,通信速度快,容量大,屏蔽特性好,不易被窃听,重量轻,便于铺设。缺点是抗灾能力弱,建设费用高电话、电视等通信系统的远程干线,计算机网络的主干线路、互联网的接入等

无线

通信自由空间建设费用低,抗灾能力强,容量大,无线接入使得通信更加方便,但频带窄、速率低,易受干扰广播,卫星电视,移动通信系统,计算机无线局域网等

(1) 电缆通信

通信使用的金属电缆有双绞线和同轴电缆两类(图43)。双绞线由两根相互绞合成均匀螺纹状的导线所组成,多根这样的双绞线捆在一起,外面包上护套,就构成双绞线电缆。双绞线有屏蔽双绞线和无屏蔽双绞线两种,前者在双绞线外面加上了用金属丝编织成的屏蔽层,可用于较远距离的数据传送;后者无屏蔽层,价格便宜,在计算机局域网中普遍采用。双绞线的缺点是易受外部高频电磁波干扰,误码率较高,通常只在建筑物内部使用。

图43双绞线与同轴电缆

常见的一种同轴电缆是有线电视电缆,它将电视机(或机顶盒)连接到广播电视传输网,用于传输电视信号,最大传输距离可达几千米甚至几十千米。

双绞线和同轴电缆需要耗费大量金属材料,成本高。现在,光纤的传输性能已远远超过了金属电缆,成本也已大幅度降低,目前各种通信(广播)系统和计算机网络的主干线路,光纤已全面取代了电缆。

(2) 光纤通信

光纤是光导纤维的简称,它由纤芯、包层和涂覆层组成,涂覆层用于屏蔽外部光源的干扰[图44(a)]。光纤具有把光封闭在纤芯中并沿纤芯轴向进行传播的功能[图44(b)]。纤芯是直径大约为10~100μm的细石英玻璃丝,透明、纤细。为了保护光纤,光纤之外通常还覆盖保护层和绝缘层。单芯光缆只有1根光纤,多芯光缆包含有多根光纤[图44(c)]。

图44光纤、光缆和光波在光纤中的传播

光纤的优点除了通信容量大速度快和距离远(无中继通信距离可达几十、甚至上百千米)之外,由于它是绝缘体,不会受高压线和雷电电磁感应的影响,抗核辐射的能力也强。光缆几乎可以做到不漏光,因此保密性强。光缆的重量轻,便于运输和铺设。正是由于上述许多优点,从20世纪80年代起,世界各国开始大规模铺设光纤通信线路,光纤传输网已经成为几乎所有现代通信网和计算机互联网的基础平台。

3. 无线通信

无线通信借助电磁波在空间的传播进行信息传输,它不仅可以省去金属线缆和光缆及线路架设费用,而且允许通信终端设备在一定范围内自由移动。无线通信与有线通信相比,电磁波通过自由空间传播时能量较分散,信号有衰减且易受干扰,传输效率也会受影响,过去主要应用在那些难于铺设传输线的边远山区和沿海岛屿,随着技术的发展,现在已经成为人们通信和上网的主要手段了。

无线电波按频率(或波长)分成中波、短波、超短波和微波(图45)。由于不同波段电磁波的传播特性各异,有不同的应用。例如,中波主要沿地面传播,绕射能力强,适用于广播和海上通信。短波具有较强的电离层反射能力,适用于环球无线电通信。超短波和微波虽然频带很宽,但绕射能力较差,只能作为视距或超视距中继通信。

图45电磁波的频谱

微波是一种频率为300MHz~300GHz的电磁波,波长范围是1m~0.1mm(光速=波长×频率)。它具有类似光波的特性,在空间主要是直线传播,不能像无线电的中波那样沿地球表面传播,因为地面会很快把它吸收掉。也不能像短波那样可以经电离层反射传播到地面上很远的地方,因为它会穿透电离层,进入宇宙空间而不再返回地面。手机通信、蓝牙、GPS、无线局域网(WiFi)和校园卡等都使用微波进行通信。

利用微波进行远距离通信(图46)需要依靠微波站进行接力通信,如终端A通过中继站1和中继站2与终端B进行通信,地面中继站之间的距离一般为50km左右。中继站也可以安装在人造卫星上,如卫星电视和卫星通信,有关卫星通信及卫星定位的原理和发展情况,可参看阅读材料之4.1。

图46微波远距离接力通信示意图

无线通信使用电磁波传输信息,需要占用频率资源。为了有序使用频率资源,避免冲突和干扰,频率资源由政府统一管理。一定范围内的频率称为一个频段,政府按频段分配使用。例如,2.4GHz用于蓝牙,2.4GHz和5GHz用于WiFi,13.56GHz用于校园卡(射频卡),890~960MHz频段用于GSM手机通信,1800~2700MHz用于4G手机等。

4. 调制/解调技术

通信系统中信源所发出的原始信号称为“基带”信号,它是基本的模拟或数字信号。无线通信中电波会衰减,有线通信中导线存在电阻,因而基带信号直接传输的距离不能太远。研究发现,高频振荡的正弦波信号在长距离通信中能够比其他波形信号传送得更远。因此可以把这种高频正弦波信号用作携带信息的“载波”。信息传输时,利用基带信号去调整(改变)载波的某个参数(幅度、频率或相位),这个过程称为“调制”,经过调制后的载波携带着基带信号通过天线发射或在导线中进行长距离传输,到达目的地后,接收端再把载波所携带的信号检测出来恢复为基带信号,这个过程称为“解调”。

载波信号是频率比基带信号高得多的正弦波。最基本的调制方法有三种:幅度调制、频率调制和相位调制,图47是三种不同调制方法的示意图。

图47三种基本调制方法

对载波进行调制所使用的设备称为“调制器”,调制器输出的信号即可通过天线发射或导线进行传输。到达目的地之后再由接收端使用“解调器”进行解调,以恢复所传输的基带信号。不同类型的调制信号和不同的调制方法,需采用不同的调制和解调设备。由于大多数情况下通信总是双向进行的,所以调制器与解调器往往集成在一起,这样的设备称为“调制解调器”(MODEM,俗称为“猫”)(图48)。手机中的“基带处理器”(或基带芯片)就是用来完成调制解调等任务的专用处理器。

图48使用调制解调器进行远距离通信

以计算机信息传输为例。计算机读写移动硬盘或输出到打印机时,或者通过双绞线连网时,由于传输距离短,USB电缆和双绞线中直接传输代表着“1”或“0”的高低电平信号(即基带信号),不需使用调制解调器;而当家庭中的计算机通过电话线或有线电视电缆连网时,由于传输距离较远,就必须使用ADSL“猫”或有线电视机顶盒对信号进行调制/解调后才进行传输。

调制技术对于无线通信尤为重要。数字无线通信使用的基本调制方法称为幅移键控(ASK)、频移键控(FSK)、相移键控(PSK)。为了使同样带宽的载波能携带更多的基带信号以提高传输容量和速率,人们研发了多种先进的调制技术。当前4G和5G通信中使用的调制技术是正交幅度调制(QAM),它同时利用载波信号的幅度和相位来传递基带的比特信息,大幅提高了频率利用率。

现在许多大中城市已经实现了“光纤入户”,即计算机通过光“猫”接入互联网。光“猫”的原理是:当需要进行通信时,由需要传输的数字信号(电信号)去驱动光“猫”中的一个光源(半导体激光器或发光二极管)发光,并对发出的光信号进行调制(例如通过电信号中的0或1来控制光信号的通或断)。调制后的光信号通过光纤传送到接收端,信号经放大后由光检测器(半导体光电管)进行检测、解调,转换成电信号之后再发送给接收设备(如服务器)。如果通信距离很长,为了补偿光纤线路的损耗,消除信号失真和噪声干扰,每隔一定的距离需要接入中继器(图49)。

图49光纤通信

5. 多路复用技术

由于传输线路的建设和维护成本在整个通信系统中占相当大的份额,而且一条传输线路的容量通常也远远超过传输一路用户信号所需的带宽。为了提高传输线路的利用率,降低通信成本,一般总是让多路通信信号共用一条传输线同时进行传输,这就是多路复用技术。

多路复用技术有多种。“时分多路复用”(TDM)技术中各终端设备(如计算机)以事先规定的顺序轮流使用同一传输线路进行数据(或信号)传输。参见图410,多路复用器将轮转一周的时间划分为若干时间片(又称为时隙,图中分为4个时隙),每对终端分配固定的一片时间用来传输一组数据(或信号),4对终端依次轮流使用同一传输线路进行传输,这称为同步时分多路复用。传统的固定电话中继线路就采用TDM信道复用技术。

时分多路复用技术中,收方和发方也可以异步地进行信息的传输,只要在被传输的信息中附加上接收方的“地址”即可,这是计算机网络中使用的主要方式,有关内容下面章节再介绍。

图410同步时分多路复用原理

另一类多路复用技术是“频分多路复用”(FDM),它将每个信源发送的信号调制在不同频率的载波上,通过多路复用器(MUX)将它们复合成为一个信号在传输线上进行传输。抵达接收端之后,借助分路器(DEMUX,例如收音机和电视机的调谐装置)把不同频率的载波分别送到不同的接收设备,从而实现传输线路的复用(图411)。

图411频分多路复用原理

使用光纤传输信息时,光波的频率为1014~1015Hz,波长为微米级,一束光每秒能携带几十个G的二进位信号。即使如此,通过多路复用技术(称为波分多路复用技术,WDM)还可以进一步提高光纤的通信容量。

所谓波分多路复用就是在一根光纤中同时传输几种不同波长的光波,其原理如图412所示。其中发送端有N个发送单元,它们所发出的N个不同波长的光波通过复用器(称为合波器)合并起来,进入同一根光纤进行传输。到达接收端后,通过分路器(称为分波器)将它们分开,分别送到各自相应的光电检测器中,恢复出原始的信号。这样,一根光纤的传输容量就能达到1Tb/s以上。

图412波分多路复用

无线通信使用电磁波传输数据。为了使带宽有限的频段中能支持尽量多的用户同时进行通信,多路复用技术至关重要,这在无线通信中称为多址接入(multiple access)。第1代移动通信采用的是频分多址技术(FDMA)。第2代的GSM系统在FDMA的基础上再采用时分多址技术(TDMA)以增加通信容量。第3代移动通信使用的是码分多址(CDMA)技术,它把不同用户的信息编码成不同的码序列,接收方从收到的信息中将其识别出来并还原为发送方发出的信息,进一步增大了通信容量。4G和5G通信则采用OFDMA(正交频分多址)技术,把每一路载波分成若干子载波,各个子载波相互正交,允许频谱重叠,因而比常规频分复用更有效地利用了频谱资源,扩大了通信容量,降低了通信成本。

4.1.2交换技术

1. 电路交换与分组交换

电话出现后不久,人们便认识到,在所有电话机之间架设直达的线路对资源不仅是极大的浪费,而且也是不可能的[n个电话需要n·(n-1)/2条线路],必须依靠电话交换机实现用户之间的互连。电话交换机采用的是“电路交换”技术,每个电话仅需与交换机连接。需要通话时经过拨号交换机把双方的线路接通(建立一条物理通路),通话完毕后再释放该线路(拆线)。电路交换的特点是:在通话的全部时间内用户始终占用端到端的传输信道。第1~3代移动通信在打电话时,采用的也是电路交换技术。

计算机网与电话网不同,它连接着许多计算机,发送和接收的都是二进制数据。为了把源计算机发送的数据传输到目的计算机去,如果像电话那样使用电路交换技术是行不通的。因为计算机传送数据具有突发性和不连续性,线路连接后真正用来传输数据的时间不到10%甚至不到1%,绝大多数时间线路是空闲的,效率太低。解决的方案是采用“分组交换”技术。

分组交换也称为包(packet)交换,它是针对数据通信的特点而提出的一种交换技术。所谓“交换”,从通信资源分配的角度来看,就是按照某种方式动态地分配传输线路。采用分组交换方式进行数据通信时,源计算机把需要传输的数据(例如MP3格式的一只歌曲)划分为若干适当大小的数据块,为每个数据块附加上收发双方的地址、数据块的编号、检验信息等有关信息(称为“头部”或“首部”),组成一个一个的“包”(也称为“分组”)(图413),然后以包为单位通过网络向目的计算机逐个地发送。到达目的计算机之后,由目的计算机接收和处理。

图413分组交换中数据包的格式

参看图414,假设计算机A要向计算机B发送1个文件,该文件被分成3个包,然后依次送入网络。网络中有若干分组交换机,它们之间由通信链路连接。数据包在网络中被分组交换机一站一站地向前传输,每个包经过的途径不一定完全相同,到达目的地的先后次序也可能发生变化。当这些包全部到达目的计算机之后,由目的计算机剥去其头部,再将它们按编号顺序重新合并成为原来的数据文件。

图414分组交换原理

注意,图414中只画出了两台计算机进行数据通信。实际上,网络中连接着许多计算机且相互间可以同时进行数据通信,为了保证它们能正确有效地进行通信,分组交换机是必不可少的一种通信控制设备。

2. 分组交换机与存储转发

为了实现分组交换方式的数据传输,网络中必须使用一种关键设备——分组交换机(图414中的小圆圈)。交换机与交换机之间是高速数字通信线路,如光纤、微波、无线频道等。

分组交换机的基本工作模式是“存储转发”。即每当交换机从端口收到一个包后,就检查该数据包要送达的目的计算机地址,然后查表决定应该由哪个端口转发出去(图415)。考虑到经常会有许多包需要在同一端口进行转发,分组交换机的每个端口都有一个输出缓冲区,需要发送的包在该端口的缓冲区中排队。端口每发送完一个包,就从缓冲区中提取下一个包进行发送,这就是存储转发技术。

图415分组交换机及其转发表

(注:标有数字的是通信端口,连接着高速通信线路,可接收也可发送;无数字标注的是计算机接口)

为了使每一个数据包均能正确地送达目的计算机,交换机每收到一个包,就要根据包中的目的计算机地址去查一张表(称为“转发表”),该表的功能是指出发送给哪台目的计算机的包应该从哪个端口转发出去。网络中每台交换机都有各自的转发表,表中包含了通向所有可能目的地的转发信息(称为“路由”信息)。转发表是交换机中的软件根据计算机与交换机、交换机与交换机之间的连接情况自动计算得到的。每当网络中的交换机、计算机或者它们之间的通信线路情况发生变化时,转发表就需要重新计算和更新。

计算机网络采用分组交换和存储转发技术的好处是:

(1) 传输线路的利用率高。由于包的大小是有限制的,一般都比较小(例如以太网中最大不得超过1500字节),把大的数据文件分成包以后,就可以使得网络中所有需要传送数据的计算机都能及时而迅速地得到传输服务,不会发生一台计算机长时间地独占传输线路而使其他计算机没有机会传输数据的情况。

(2) 数据通信可靠。由于数据包长度比较小,又包含有查验信息,传输过程中出了错(包括整个包在中途丢失)很容易被交换机或目的计算机发现。发生这种情况时会通知发送方,发送方可以重发出错或丢失的包。另外,网络中即使少数通信线路发生拥塞或者交换机出现故障,也可以灵活地改变数据传输的路由,不致引起通信的中断。

(3) 灵活性好。分组交换机的输入和输出都有缓冲,这样,收发双方并不需要同步工作。当线路拥塞或接收方忙碌而来不及接收数据包时,交换机可以起一定的缓冲作用。此外,计算机还可以给数据包设置优先级,交换机可区分包的轻重缓急,使重要的数据能优先得到传输。

分组交换技术也带来一些缺点。例如包在交换机中转发时,因为要在缓冲区中排队,这会产生一定的时延,特别是网络中通信量过大时,这种时延有时相当可观;数据分组时必须携带头部信息,这也产生了一定的额外开销;此外,交换机需要具有较高性能的处理和控制功能,其成本也不容小视。

3. 分组交换的应用

由于分组交换技术的种种优点,因此在数据通信和计算机网络中被广泛采用。从20世纪70~80年代开始,工业发达国家建设了一些地域覆盖范围很广的公用分组交换网(即传统的广域网,如x.25网等),向公众提供数据通信服务。

局域网中采用的也是分组交换技术。例如下一节所介绍的局域网中的数据帧,与上述数据包的概念是一致的,交换式以太局域网中使用的局域网交换机也可以看作是分组交换机中的一种。3G、4G移动通信网也采用了分组交换技术与互联网连接。

需要注意的是,尽管公用分组交换网、局域网等都采用了分组交换技术,但由于用途不同,传输技术不同、网络拓扑结构不同等因素,不同类型网络对于帧(包)的格式和计算机编址方案等均有不同的规定。

4.1.3移动通信

1. 移动通信系统的组成

移动通信指的是可自由移动的通信终端利用无线电波进行的通信。最有代表性的移动通信是手机,准确地说是个人移动通信系统。它由通信终端(手机)、基站、移动电话交换中心(移动通信核心网)等组成(图416)。

基站是从(向)手机接收(发送)电磁波的一个无线信号收发机。基站的天线固定架设在地面高处,负责将线缆上的电信号与空间电磁波进行转换,基站控制器完成信号的调制解调、分合、编解码、射频转换、功率放大等功能。每个基站负责与其周围一定距离内的手机进行连接,其覆盖区域既相互分割,又彼此交叠,整个移动通信网就像蜂窝[图416(b)],所以也称为“蜂窝式移动通信”。

图416移动通信系统

基站与移动电话交换中心之间早先使用电缆传输信息,现在使用光缆。光缆的传输能力已经达到PB级(1PB/s=1024TB/s)。所以,个人移动通信系统其实不是完全的无线通信,它除了手机与基站天线之间是无线通信之外,其他许多环节大多是光纤通信。

移动交换中心也称为“核心网”,它是整个移动通信系统的核心,功能强大结构复杂,所有用户的数据都存储在核心网中,用户的权限由核心网控制,用户的开机、关机、计费也由核心网掌握,与哪个用户进行通话由核心网负责接续,用户需要上网也通过核心网接入互联网。[图416(a)]。

2. 移动通信的演进

个人移动通信的发展迄今已经经历了5代。20世纪80年代的第1代个人移动通信采用模拟通信技术,满足了人们随时随地可以打电话的需求,但功能仅限于通话,费用很高,只成了少数人的奢侈品,现在已经淘汰。

电子技术的进步促使个人移动通信进入第2代(2G),例如20世纪90年代建设使用的GSM网和CDMA网,它们采用了数字通信技术,尽管核心网仍为电路交换方式,但容量大大增加,全球互通,除了打电话之外还可以收发短信。

随着互联网的发展,GSM和CDMA很快分别升级为GPRS和CDMA1x(俗称2.5G),它们的核心网扩展了分组交换和路由功能,为用户提供数据业务(上网浏览和收发邮件,但不能与打电话同时进行)。2.5G网络至今还在大规模使用,时间跨度已近30年。

2.5G的速率很低,无法满足用户的上网需求。进入21世纪之后第3代个人移动通信(3G)逐步建成使用。3G的核心网结构与2.5G基本相同[图417(a)],一部分仍为电路交换,用于打电话、发短信,另一部分采用分组交换,提供上网服务(数据业务)。3G使用的频段比2.5G成倍增长,利用率也比2G提高,数据传输速率峰值可达几十Mbps,一般也有几百kbps。3G通信技术推动了智能手机的出现和移动互联网应用的发展。

智能手机的爆发性发展使第4代移动通信(4G)出现了。4G也称为LTE网络,其核心网纯粹是一个IP分组交换网,移动宽带是其重点,对高速率、低延迟和大容量有一定要求,但不支持语音服务,打电话仍需使用2G/3G的电路交换网实现(称为“回落”)。此后增加了IMS模块(IP多媒体子系统),为用户提供包括打电话(含视频电话)在内的多媒体通信业务[图417(b)]。这种所谓“VoLTE/ViLTE”的做法确保用户打电话的同时还可以上网。

图4172.5G/3G和4G移动通信系统的核心网

4G的传输峰值可达1Gb/s,用户体验速率也比3G提高10倍左右,其上网速度可以媲美家庭宽带接入的速度,能流畅地播放高清电影和电视,也促进了云计算的发展。至2019底,我国已建成全球规模最大覆盖最广的4G移动通信网络,基站数目超过300万,网络覆盖率已达98%,移动电话用户超过12亿。

移动通信从1G到5G,就是从模拟通信到数字通信,低速传输到高速传输,通信内容从语音、文字到多媒体,稳定性安全性逐步提高,成本不断降低的发展过程。我国三大电信运营商建设的第1~5代移动通信系统有多种制式,有关情况在表4.2中列出,供参考。

表42我国第1~5代移动通信的比较

代网络制式核心网下行速率*

峰值(体验值)典型应用说明

1GAMPS(移动)公共交换电话网不支持模拟(电话)已淘汰

2G

(2.5G)GSM(GPRS)

(移动,联通)

CDMA(CDMA1x)(电信)公共交换电话网

(扩展互联网接口)384kbps

(56kbps)电话、短信;网站浏览、电子邮件等GSM(GPRS)将逐步关闭

3GTDSCDMA(移动)

WCDMA(联通)

CDMAEvDO(电信)电路交换网+IP分组交换网21Mbps

(440kbps)电话、短信;基本的多媒体业务,网上购物,电子银行等TDSCDMA将逐步关闭

4GTDDLTE(移动)

FDDLTE(联通,电信)全IP分组交换网1Gbps

(10Mbps)高速数字通信(微信,高清电视,云计算,物联网等)

5G5GNR

(IMT2020)全IP分组交换网

(软件定义网络,网络切片、边缘计算)10Gbps

(100Mbps)超高清电视,广域物联网,自动驾驶,远程医疗,智慧城市等语音服务用VoLTE,或者切换到3G/2G网络(语音回落)

[注:移动通信网的数据传输速率下行(从网络到终端)比上行(从终端到网络)往往要高出1倍以上,这里仅列出下行速率的数据,供参考。]

3. 第5代移动通信——5G

为了能更好地应对未来移动互联网和物联网高速发展所带来的数据流量的爆炸性增长,入网设备数目的海量扩充,以及各种新型应用的不断涌现,人们开始研发第5代移动通信系统(5G)。

5G的主要特点是超高速度、超大容量和超低延时。5G的网速比4G快10倍以上,峰值可达10~20Gb/s,用户体验速率为100Mb/s。更为突出的是网络延迟时间极短,4G的网络延迟是10~50ms,而5G的网络延迟仅1ms,几乎没有延迟。此外,5G容量很大,每平方千米可同时接入的终端数目达百万量级。

5G的国际标准IMT2020是在国际电信联盟(ITU,简称国际电联)领导下由3GPP(第3代合作伙伴计划)组织制订的。国际电信联盟对5G的期望可以用图418来表示。

图4185G的三大应用场景

国际电联希望5G能满足图中三角形所描述的三大应用场景:

(1) 增强型移动宽带通信——超高的数据传输速率,广覆盖下的移动性保证等,这是对原来移动网络的升级,满足未来对网速有更高需求的应用,如随时随地的3D/超高清视频直播和分享、虚拟现实、随时随地云存取、高速移动上网等。

(2) 海量物联网通信——这一场景追求的不是高速率,而是低功耗、低成本和强大的连接能力,实现万物互联。环境监测、智慧城市、智能家居等相互融合,将使人们的生活方式发生颠覆性变化。

(3) 超高可靠低延迟通信——在此场景下连接时延要达到1ms级别,且支持高速移动(500km/h)情况下的高可靠性(99.999%)连接,使过程自动化、配电自动化、自动驾驶、智能交通、远程医疗等应用成为现实。

5G是移动通信领域革命性的进展,代表了未来的发展方向。实现5G通信需要一系列的技术创新。下面是5G将会采取的若干行之有效的技术,进一步的解释请参考本章阅读材料4.2的介绍。

●使用的频段比4G频率更高、频带更宽,并可同时传输多个载波,这些载波可以服务不同的用户来提高基站容量,也可以同时服务一个用户来提高单用户峰值速率(载波聚合)。

●基站和终端(手机)部署多个天线,每个天线独立发射信号,同时,在接收端用多个天线接收并恢复信息,这称为MIMO(多入多出)。5G基站采用大规模MIMO(massive MIMO),收发天线数目为16TR、32TR和64TR,毫米波频段时数目更多,从而有效提高了用户数据传输速率和基站覆盖范围,也提升了单个基站的用户容量。

●以性能优异的信道编码方案LDPC码和Polar码替代2G、3G、4G时代一直使用的Turbo码,同时使用更高效的256QAM、1024QAM调制技术、正交频分多址接入技术(OFDMA)和更先进的数据帧结构,确保可靠安全高速的数据传输。

●采用网络切片(network slicing)和网络开放虚拟化技术构建5G移动网。网络切片为用户提供个性化的服务;而网络开放虚拟化,则通过软件控制各个不同的网元(软件定义网络),为运营商节省成本和快速升级提供保障。

●将基站的控制单元集中,除控制基站外,还为基站所服务的用户提供计算/存储功能(称为“边缘计算”),成为城镇级或者小区级的小型数据中心,用于提供如超低延迟的特殊云服务等应用。例如同一基站下的两个用户互相通信,他们的数据将不再通过基站转发,而是直接手机到手机(device to device,D2D)。这就节约了大量的空中资源,减轻了基站压力。

5G移动通信网是分阶段建设的。国际电联于2017年12月和2018年6月先后发布了第一版和第二版5G技术标准(3GPP R15和R16),提出了两种5G组网方案:非独立组网(NSA)和全功能独立组网(SA)。非独立组网[图419(a)]以4G加5G的双连接方式进行组网,4G网络作为锚点支持新的5G基站,这是4G向5G演进的一个过渡阶段。5G独立组网方式[图419(b)]其核心网和无线网架构都独立建造,这将成为5G最终的建网方式。

图4195G的两种组网方式

NSA组网方式其实就是把5G作为4G的补充,有5G信号就进行高速业务,没有5G信号时就使用4G。这种组网方式最大的好处就是快和省,不需要新建5G核心网,只要开通5G基站就能实现5G服务,建设成本较低。

我国工信部2019年正式向中国电信、中国移动、中国联通和中国广电发放了5G商用牌照,分配了5G使用的频段。三大电信运营商立即开始以NSA方式建设5G。至2019年底已建5G基站数目达13万个。与此相应的是手机厂商纷纷推出了5G手机,运营商则推出了5G套餐。

NSA方式虽然也称为5G,但因为基站连接的是4G核心网,没有网络切片等一系列5G特有的功能,无法支持大规模物联网和低时延高可靠通信,因此,除了加快NSA组网之外,我国三大运营商的5G SA(独立)网也在如火如荼地建设之中。

复习题

(1) 什么是现代通信?通信系统主要由哪三大部分组成?

(2) 对比通信系统中所使用的各种传输介质的性能,分析它们的优缺点。

(3) 什么是调制和多路复用?通信系统中为什么要使用这些技术?

(4) 解释信号在光纤中的传输过程,分析光纤通信的特点。

(5) 数据通信为什么采用分组交换技术?分组交换机如何工作,图415的工作原理能理解吗?

(6) 4G移动通信网与3G相比有什么区别,4G手机是如何打电话的?

(7) 5G移动通信的特点是什么?它有哪些应用场景?

4.2计算机网络基础

4.2.1计算机网络的组成和工作模式

1. 计算机网络及分类

计算机网络是利用数据通信设备和通信软件,把功能独立的多台计算机(包括其他智能设备)以信息传输、共享资源和协同工作为目的连接起来的一个信息系统。

为什么需要将计算机互连成为计算机网络呢?一般说来,计算机连网的目的主要是出于下列几个方面的考虑:

(1) 数据通信。计算机网络能使分散在不同部门、不同单位甚至不同国家或地区的计算机相互之间进行通信,互相传送数据,方便地进行信息交换。例如,收发电子邮件,用微信聊天,打IP电话,开视频会议,收看网络电视等。

(2) 资源共享。这是计算机网络最具吸引力的功能。从原理上讲,只要允许,用户就可以共享网络中其他计算机的软件、硬件和数据资源,而不受资源所在地理位置的限制。例如,浏览网页、下载/播放音乐和视频、使用其他计算机进行存储和计算(如百度网盘)等。

(3) 实现分布式信息处理。有了计算机网络,许多信息处理任务可以借助于分散在网络中的多台计算机协同完成,如网上银行、网络购物、线上办公、网络游戏等。

(4) 提高计算机系统的可靠性和可用性。网络中的计算机可以互为后备,一旦某台计算机出现故障,它的任务可由网络中其他计算机取而代之。当网络中某些计算机负荷过重时,网络可将一部分任务分配给较空闲的计算机去完成,提高了系统的可用性。

计算机网络有多种不同的类型,分类的方法也很多。例如,按使用的传输介质可分为有线网和无线网;按网络的使用性质可分为公用网和专用网;按网络的使用范围和使用对象可以分为企业网、政府网、金融网和校园网等。更多的情况下,人们按网络所覆盖的地域范围把计算机网络分为:

局域网(LAN),网络的地域范围较小(如几千米),通常是一幢楼房、一个楼群或一个小区。局域网往往属于一个单位所有,由单位自建自管。近些年不少家庭将计算机、平板、手机、电视、摄像头等互连成网,称为PAN(personal area network),也是局域网的一种。

城域网(MAN),也称为市域网,其作用范围在5~50km之间。它是网络运营商(如电信和广电等)在城市范围内组建的一种高速(宽带)网络,用于把城市范围内大量的局域网和个人计算机高速接入互联网,同时也提供语音、数据、图像、视频等多种增值服务。

广域网(WAN),也称为远程网,网络的作用范围可以从几十到几千千米,甚至更大。广域网往往覆盖一个国家、地区,或横跨几个洲,形成国际性的计算机网络。

早期的广域网是采用同种技术构建的单纯型网络,它由电信部门等网络运营商构建,用于为社会公众提供数据通信服务,称为公用数据网。例如低速的X.25网、中速的帧中继网、中高速的ATM网等。随着互联网的发展,早先的这些公用数据网已经融入互联网之中,有的作为传输主干,有的作为接入网使用。

有些广域网是一些机构或组织自行构建的专用网,例如政府网、金融网、公安网、教育网等。这些网络可以自建数据传输线路或者租用网络运营商的传输线路构建而成(专线连接),也可以在网络运营商的公用数据网(如帧中继网、ATM网、光纤网等)基础上构建自己逻辑上的专用网络,效果如同租用专线一样,称为虚拟专网(VPN)。由于公用数据网是共享的,利用效率高,降低了虚拟专网的通信资费和网络升级维护的费用。虚拟专网也可以构建在互联网平台之上,称为IP VPN,它的构建更加灵活,扩展和管理也比较容易。

人们日常使用的互联网(Internet)是覆盖全球的最大的一个计算机广域网,它由大量的局域网、城域网和公用数据网等互连而成,是一个计算机网络的网络。有关互联网的内容在本章4.3节和4.4节中介绍。

2. 计算机网络的组成

无论哪种类型,无论规模大小,计算机网络一般由下列几个部分组成。

(1) 计算机(终端设备)。这是网络中收发信息的设备。现在除了计算机和手机之外,越来越多的数码设备如电视机(可能需借助机顶盒)、监控报警设备,ATM柜员机、POS机等接入了计算机网络,它们都统称为网络的终端设备。

(2) 数据通信网。由用于数据传输的双绞线、同轴电缆、光缆、无线电波,以及为了有效而可靠地传输数据所使用的通信控制设备(如网卡、集线器、交换机、调制解调器、路由器等)组成,终端设备必须接入数据通信网(称为online,在线)后才能正常工作。

普通用户衡量计算机网络性能的指标之一是“带宽”,带宽指的是终端设备接入数据通信网后能够达到的最高数据传输速率。例如,计算机通过电话线以ADSL连接互联网时,其带宽约为2~8Mb/s;使用光纤接入互联网时,带宽可达100~200Mb/s;在学校实验室通过以太网上网时,带宽大多是100Mb/s甚至1Gb/s。需要说明的是,上述数据只是终端设备与数据通信网之间数据传输速率的峰值,用户实际感受到的上网速率由于多种原因可能会低得多。

除了带宽之外,端端传输延迟、传输误码率(出错比特数目占传输比特总数的比率)等都是数据通信网的重要性能参数,它们与采用的传输介质、传输技术和通信控制设备等密切相关。

(3) 网络通信协议(protocol)。为了使网络中的计算机能正确地进行数据通信和资源共享,计算机和通信控制设备必须共同遵循的一组通信规则和约定,这些规则和约定就称为网络通信协议,简称通信协议或协议。例如,无线局域网(WiFi)时使用IEEE 802.11通信协议,互联网采用TCP/IP协议。

(4) 网络操作系统和网络应用软件。连接在网络上的计算机,无论是手机、POS机等便携设备,还是PC、服务器、巨型机,其操作系统必须遵循和实现通信协议才能使计算机接入网络。因此,操作系统必须含有多种通信软件模块,以实现相应的通信协议。特别是运行在服务器上的操作系统,它除了具有强大的网络通信和资源共享功能之外,还负责网络的管理工作(如配置、授权、日志、计费、安全等),这种操作系统称为服务器操作系统或网络操作系统(NOS)。

为了提供网络服务和开展各种网络应用,服务器和终端设备还必须安装和运行网络应用程序。例如电子邮件程序、浏览器程序、微信、网络购物软件、音视频播放软件等,它们为用户提供了各种各样的网络服务和应用。

现在,计算机网络已经无处不在,几乎没有什么计算机和手机不能接入网络,没有什么操作系统不支持上网,也很少应用软件不提供在线(online)功能,因此强调网络操作系统和网络应用软件已经没有什么意义。

3. 计算机网络的工作模式

网络中的计算机可以扮演不同的角色。从共享资源的角度来看,提供资源(如数据文件、磁盘空间、打印机、处理器等)的计算机是服务器,使用服务器资源的计算机是客户机。每一台连网的计算机,其“身份”或者是客户机,或者是服务器,或者两种身份兼而有之。

计算机网络有两种基本的工作模式:对等(peertopeer,简称P2P)模式和客户/服务器(client/server,简称C/S)模式。对等模式的特点是网络中没有中央服务器,各个计算机直接通信。每台计算机既可以作为客户机(也称为“网络工作站”),也可以作为服务器。对等模式原先以局域网居多,可共享的资源主要是文件和打印机,由资源所在的计算机自己管理,不需要专门的硬件服务器,也不需要网络管理员,使用比较简单,但一般限于小型网络,性能不高,安全性也较差,Windows操作系统中的“网上邻居”“工作组”“家庭组”等就是按对等模式工作的[图420(a)]。对等工作模式在互联网上也获得了应用,例如IP电话Skype、“BT”下载等都是对等工作模式应用的例子,近些年网络上出现的一种虚拟货币“比特币”,就是一种基于P2P工作模式的支付结算系统。

图420计算机网络的两种工作模式

客户/服务器模式的特点是,网络中每一台计算机都扮演着固定的角色,要么是服务器,要么是客户机。其工作过程为:客户机向服务器提出请求(例如访问某个网页),服务器响应该请求,完成相应的处理(找到或者生成该网页),并将结果返回给客户机(将该网页下传给客户机)[图420(b)]。

有些服务器需要客户机用户预先在服务器上注册,由网络管理员批准并授予一定的访问权限。每个注册用户有自己的账号和口令,在需要访问服务器的资源时,用户应经过登录(输入用户名和口令)才能得到服务器所提供的服务。服务器中的管理程序记录着用户每一次登录和退出的时间,以及每一次使用资源的情况。负责在服务器上建立用户账号、分配资源使用权限和维护网络运行的软件/人员,称为网络管理器/管理员。

需要注意的是,上面所说的服务器仅仅是逻辑上的概念,例如网络上的一台普通PC,当它运行有关的软件能为其他计算机提供服务(提供共享资源)时,它就是“服务器”。实际网络中扮演服务器角色的大多是一些大型计算机和专门设计的性能较高的计算机(服务器),它们的并发处理能力强,存储容量大,传输速率高,安全可靠,昼夜不间断运行,在网络中作为专门的Web服务器或数据库服务器等使用。

4.2.2局域网的基本原理

局域网常见于公司、学校、机构和家庭,是计算机网络中最流行的一种形式,全世界估计有几千万个计算机局域网。计算机局域网的主要特点是:

●为一个单位(甚至家庭或个人)所拥有,自建自管,地理范围有限。

● 使用专用的传输介质进行连网和数据通信。

● 数据传输速率高(10Mbps~10Gbps),延迟时间短,误码率低(10-8~10-11)。

1. 局域网组成、MAC地址与数据帧

计算机局域网的逻辑组成如图421所示。它包括网络工作站(PC、智能手机、摄像头等)、网络服务器、网络打印机、网络接口卡、传输介质(双绞线、光缆、无线电波)、网络互连设备(即通信控制器,如集线器、交换机)等。

图421局域网的逻辑组成

网络上的每一台设备,包括网络工作站、服务器以及打印机等,它们都有自己的物理地址(一个二进制代码,称为MAC地址),以便相互识别,实现计算机之间的通信。

局域网采用分组交换技术。为使网络上的计算机都能得到迅速而公平的数据传输机会,局域网要求每台计算机都把要传输的数据分成“帧”(frame),一次只能传输1帧,而不允许任何计算机连续传输任意多的数据。这样,来自多台计算机的不同的数据帧就以时分多路复用方式共享传输介质,显著提高了网络的整体效率。

数据帧的格式如图422所示。其中除了包含需要传输的数据(称为“有效载荷”)之外,还必须包含发送该数据帧的源计算机地址和接收该数据帧的目的计算机地址。由于电子设备与传输介质很容易受到电磁干扰,所传输的数据可能会破坏或丢失,所以帧中还需要附加一些检验信息随同数据一起进行传输,以供目的计算机在收到数据之后验证数据传输是否正确,如果发现数据有错就可以向源计算机指出,以便源计算机将这一帧数据重新再发送一次。

源计算机

MAC地址目的计算机

MAC地址控制

信息有效载荷(传输的数据)检验

信息

图422局域网中传输的数据帧的格式

2. 网卡

网络上的每台设备(PC、手机、服务器、打印机等)都有网络接口卡(简称网卡),它是连接计算机和传输介质的控制电路,不仅实现与传输介质之间的物理连接和电信号匹配,还负责数据帧的发送与接收、数据帧的封装与拆封等任务。网卡和局域网之间的通信是通过电缆、双绞线或无线电波以串行传输方式进行的。由于网络上的数据传输速度和计算机总线的速度并不相同,所以网卡中必须有一定容量的数据缓冲存储器。

每块网卡都有一个全球唯一的地址码(称为MAC地址),该地址码就成为安装了该网卡的计算机在网络中的物理地址。MAC地址是一个48位的二进制整数,它被写在网卡的ROM存储器中。世界上没有任何两块网卡拥有相同的MAC地址,因为MAC地址是由电气电子工程师协会(IEEE)为网卡制造商统一分配的。

注意,由于集成电路集成度的提高和计算机网络应用的普及,现在网卡均已集成在PC芯片组或智能手机的SoC芯片中。所谓网卡,多数只是逻辑上的一个名称而已。还需要注意的是,局域网有若干类型,不同类型的网络通信协议不同,其物理地址的规定和数据帧的格式也不相同,因此接入不同类型的网络需要使用不同类型的网卡。即使接入的都是以太网,使用双绞线、光纤还是无线上网,网卡也各不相同。

3. 网卡的工作过程

当源计算机需要发送数据时,网卡将数据分成若干小块、为每一块数据附加上源/目的计算机的MAC地址,计算出检验信息后组成“帧”,然后把数据帧依次逐个发送出去。同时,网卡还不断地检测网络上有没有发给本机的数据帧,如果有的话,就把数据帧接收下来,从帧中提取出数据并检验有无错误,确定正确无误后再交给CPU进行处理。关于网卡的结构和工作过程可参看本章阅读材料4.3的介绍。

4.2.3常用局域网

局域网有多种不同的类型。按照它所使用的传输介质,可分为有线网和无线网;按照网络中各种设备互连的拓扑结构,可以分为星型网、环形网、总线网、混合网等;按照传输介质所使用的访问控制方法,可以分为以太网(Ethernet)、FDDI网和令牌网等。不同类型的局域网采用不同的MAC地址格式和数据帧格式,使用不同的网卡和通信协议。现在广泛使用的是以太网,其他如FDDI网和令牌网等已很少使用。

1. 共享式以太网

共享式以太网是最早使用的一种以太局域网,网络中所有计算机均通过以太网卡和电缆连接到一条公用的传输线(称为总线),借助于该总线实现计算机相互间的通信(图423)。

图423共享式以太网的原理与结构

实际的共享式以太网大多以集线器(hub)为中心构成。网络中的每台计算机通过网卡和网线(两端安装了RJ45插头的5类双绞线)连接到集线器。集线器的功能是:把从一个端口接收到的数据帧以广播方式向其他所有端口分发出去[图423(a)],并对信号进行放大,以增加信号的传输距离,起着中继器的作用。共享式局域网通常只允许其中一对计算机进行通信,当计算机数目较多且通信频繁时,网络会发生拥塞,性能将急剧下降,因而集线器只适用于构建计算机数目很少的网络(或网络中的一个网段),现在已经很少使用。

2. 交换式以太网

交换式以太网以以太网交换机(Ethernet switcher,简称交换机)为中心构成。以太网交换机是一种高速电子开关,连接在交换机上的所有计算机都可相互通信(图424)。与共享式以太网不同的是,交换机从发送计算机接收了一个数据帧之后,直接按接收计算机的MAC地址发送给指定的计算机,不再向其他无关计算机发送。而且,它还能支持多对计算机相互之间同时进行通信(例如图中的计算机1与3、2与5、4与6)。因此,交换式以太局域网是一种星形拓扑结构的网络。它与总线式结构的区别是,连接在交换机上的每一台计算机各自独享一定的带宽(10Mb/s、100Mb/s甚至更高,由网卡和它所连接的交换机端口所决定)。

图424交换式以太局域网

3. 千(万)兆位以太网

在学校、企业等单位内部,借助以太网交换机可以按性能高低以树状方式将许多小型以太网互相连接起来,构成公司(机构)—部门—工作组—计算机的多层次的以太局域网(校园网、企业网等)(图425)。其中,用户的计算机与所在工作组的交换机连接,低层(工作组、部门)的交换机以100Mbps、1000Mbps甚至10Gbs的速度与高层的中央交换机连接,中央交换机的总带宽可以达到每秒几十至几百个G以上,传输介质(光纤)的长度可达几千米。网络服务器通过1000Mbps以上的高速传输线路与中央交换机直接连接,这种局域网称为千(万)兆位以太网。

图425万兆位以太校园网

无论是共享式还是交换式以太网,它们的数据帧和MAC地址格式均相同,所以使用的网卡并无区别。网卡的区别在于其使用的传输介质(双绞线、光纤还是无线传输,)和可支持的最高传输速率(10Mb/s、100Mb/s还是1000Mb/s)。目前使用最多的是千兆位网卡和10/100M自适应网卡。有关以太网的工作原理和网卡结构,可参看本章阅读材料4.3。

4. 无线局域网

无线局域网(WLAN)是以太网与无线通信技术相结合的产物。它借助无线电波进行数据传输,工作原理与有线以太网基本相同,最大的优点是能方便地移动终端设备的位置,灵活地变更网络的组成。

无线局域网使用的无线电波,主要是微波中的2.4GHz和5GHz两个频段,电波覆盖范围较广,采用扩频方式通信,具有抗干扰、低噪声和抗信号衰减能力,通信比较安全,可用性好。

无线局域网采用的协议主要是IEEE 802.11(一般称WiFi或WiFi)。其中,最早的协议是802.11b(2.4GHz频段)。速度仅11Mb/s;此后的802.11n进行了重大改进,它同时工作在2.4GHz和5GHz两个频段上,引入了MIMO和安全加密等技术,传输速率达到600Mb/s。2014年批准的802.11ac协议引入了更宽的射频带宽(提升至160MHz)和更高阶的调制技术(256QAM),将传输速率提高到每秒千兆位,现已广泛使用。

近几年手机、平板、笔记本电脑等无线设备越来越普及,机场、车站、体育馆、教室、会场等人员密集场所,人手一机的情况已成常态,这就对WiFi技术在传输速率、接入数量、时延等方面提出了更高的要求。2018年推出的802.11ax(即WiFi 6)协议使WiFi技术有了全面提升:最高速率可达9.6Gb/s,最多可支持数十个设备同时通信,延迟时间降低至20ms,功耗显著降低。WiFi 6产品已经问世,华为5G手机也已支持WiFi6连接。

有关无线局域网常用的几种协议及其性能对比可参见表43。

表43无线局域网常用协议及其性能

协议名称频段带宽最高传输速率最大距离(室内)

802.11a5.8GHz20MHz54Mb/s35m

802.11b2.4GHz20MHz11Mb/s35m

802.11g2.4GHz20MHz54Mb/s38m

802.11n(WiFi4)2.4GHz/5GHz20/40MHz600Mb/s70m

802.11ac(WIFI5)5GHz20/40/80MHz3400Mb/s35m

802.11ax(WiFi6)2.4GHz/5GHz20/40/80/160MHz9600Mb/s

无线局域网需使用无线网卡和无线接入点、无线路由器等设备构建。图426中无线接入的笔记本电脑、智能手机等移动终端都内置有无线网卡。无线网卡是一种不需要网线即可连接网络的以太网卡,其数据传输速率由无线网卡和接入点所支持的协议所决定。与有线网卡一样,无线网卡的所有电路均已集成在手机、电脑等移动终端设备中,台式电脑则需要外接USB无线网卡,才能无线接入网络。

图426无线局域网

无线接入点(wireless access point,简称WAP或AP)也称为无线热点或简称热点。AP的作用类似于有线网络中的集线器/交换器,它是组建小型无线局域网的常用设备,也是连接有线网和无线网的桥梁,其作用是将无线网中的终端接入以太网。AP的室内覆盖范围大约30m左右,对于普通家庭和办公室,一台AP即可实现所有计算机接入网络。有些AP产品可以互连,以增加WiFi的覆盖面积,这在大型会场、体育馆、展览馆等场合特别有用。AP还提供数据加密、虚拟专网、防火墙等功能,使用十分方便。

单纯型AP只是移动终端接入局域网所使用的集线器或交换器,其主要功能是提供无线信号的收发,把通过电缆/光缆传送过来的电信号转换成为无线电波(或接收终端设备发出的无线电波转换成电缆/光缆上的电信号),有点像移动通信中的基站。局域网如果不与外网(广域网)连接,不过是一个信息孤岛。而局域网连接外网必须使用路由器,因此一种集无线AP功能与路由器功能于一体的“无线路由器”应运而生,它已经成为许多家庭的必备设备。关于路由器的内容将在下面4.3.3节中再介绍。

无线局域网的另外一种构建方式称为无线自组网(Ad hoc),它不需要使用无线接入点AP,而是由一组无线工作站以自组织、多跳移动通信的方式构成,是一种无线对等局域网。在这种网络中,所有工作站都可以自由移动相互通信,它们均具有动态搜索、定位和恢复连接的能力(图427)。无线自组网在军事上非常有用,也可以使用在家庭和会议室中。

图427无线自组网(Ad hoc)

蓝牙和NFC(近场通信)等无线通信技术也可用来构建无线局域网,但它们的通信距离短、速度慢,更多的是作为无线I/O接口使用,有关情况可参见第2章阅读材料2.4的介绍。

复习题

(1) 为什么需要将计算机互连成网?计算机网络有哪些类型?

(2) 计算机网络中,带宽与数据传输速率的含义有什么区别和联系?

(3) 什么是客户/服务器工作模式?什么是网络的对等工作模式?请分别举例说明。

(4) 以太网卡有什么功能?以太网的MAC地址是什么?你知道自己手机的MAC地址吗?

(5) 如何使用交换机和网卡等组建一个以太局域网?交换式以太网有何特点?了解你所在学校的校园网的结构与性能。

(6) 无线局域网有什么特点?它如何构建,你会进行设置吗?

4.3互联网

互联网的英文名是“Internet”,它指的是20世纪末期在美国ARPA网基础上,采用TCP/IP协议将遍布全球的计算机网络互相连接而成的一个庞大的计算机网络系统,曾音译为“因特网”,现在大多称为“互联网”。

4.3.1互联网的组成和接入

1. 互联网的组成

互联网起源于20世纪80年代美国国防部ARPANET计划,后来与美国国家科学基金会的科学教育网NSFNET合并。20世纪90年代起,美国政府机构和企业的计算机也纷纷入网,并迅速扩大到全球大多数国家和地区。据估计,目前互联网已经连接数百万个网络,几亿台计算机,2019年全球用户数约有43亿,成为世界上信息资源最丰富的计算机公共网络。在许多国家和地区,互联网已经像电视和电话一样普及。

互联网早先的结构分为三级:主干网、地区网和校园网,三级网络覆盖了全美主要的大学和研究所。随着使用范围扩大,政府机构和企业的加入,美国政府决定将互联网的主干网转交给商业机构来经营,并开始对接入互联网的机构收费,从而出现了许多互联网服务提供商(ISP,指为个人、企业、机构等提供互联网接入、域名注册、网站托管等服务的公司)。

我国互联网也是三层结构(图428)。处于核心位置的骨干网由中国电信、中国移动、中国联通、CERNET等负责运营和服务,骨干网覆盖全国地域,连接着全国各地数以百计的城域网,并通过国际出口与国际互联网连接。城域网(MAN)是采用光纤传输技术覆盖整个城市的高速宽带网络,它一方面与国家主干网连接,提供城市网的高速出口,另一方面又汇聚着各种类型的接入网。接入网解决的是“最后1千米”问题,单位用户和家庭用户可通过电话线、有线电视电缆、光纤、3G/4G/5G移动通信等不同的接入网接入城域网,再由城域网接入互联网。

城域网和接入网由各级地区性的网络服务代理商(ISP)进行维护和管理。校园网、企业网等大型网络可以直接连接城域网甚至骨干网,家庭计算机和个人移动终端则与接入网连接。不同运营商的网络为了互连互通还建设了交换中心(IXP),以便直接进行高速数据交换。

图428我国互联网的三层结构

任何需要使用互联网的计算机必须通过某种方式与互联网进行连接。互联网接入技术的发展非常迅速,带宽由最初的14.4kbps发展到当前的100Mbps甚至1Gbps带宽,接入方式也由过去单一的电话拨号方式,发展成现在多样的有线和无线接入方式,接入终端也开始朝向移动设备发展。更新更快的接入方式仍在继续进行研究和开发。下面介绍互联网的常用接入技术。

2. 固定电话网接入

21世纪初,家庭计算机用户通过固定电话网接入互联网。由于计算机输入/输出的数据都是数字信号,而固话网用户线仅适合传输音频模拟信号,所以必须使用调制解调器(MODEM)把计算机送出的数字信号采用频率调制(或相位调制)的方法调制成为适合在电话用户线上传输的音频模拟信号,接入方(电信局)的解调器再把模拟信号恢复成数字信号,然后接入市域网。图429是上述过程的原理图。

图429利用电话拨号接入互联网

电话MODEM的数据传输速率最高只有56kbps,且上网时无法通话,它与打电话一样要按通话时间进行计费,现在几乎已无人使用。改进的做法是ADSL技术(不对称数字用户线),它仍利用电话网接入,只需在线路两端加装专用的ADSL MODEM即可实现更快的数据传输。标准ADSL的数据上传速度为64~256kbps,最高达1Mbps,而数据下行速度在理想状态下可以达到8Mbps(通常情况下为1Mbps或2Mbps左右)。

ADSL的特点是:① 一条电话线可同时接听、拨打电话并进行数据传输,两者互不影响;② 虽然使用的还是原来的电话线,但ADSL传输的数据并不通过电话交换机,所以ADSL上网不需要缴付额外的电话费;③ ADSL的数据传输速率是根据线路的情况自动调整的,它以“尽力而为”的方式进行数据传输。

ADSL利用普通电话线作为传输介质,它通过一种自适应的数字调制解调技术,能在电话线上得到三个信息通道:一个是为电话服务的语音通道,一个是速率为64~256kbps的上行数据通道,另一个是速率为1~8Mbps的高速下行数据通道,它们可以同时工作互不影响(图430)。

图430ADSL频带分布

用户需要安装ADSL时,只需在已有电话线的用户端配置一个ADSL MODEM和一个语音分离器(滤波器),计算机中需安装一块10M/100M的以太网网卡,网卡与ADSL MODEM之间用双绞线连接,然后再设置好有关的参数,便完成了安装工作(图431)。

图431ADSL MODEM与PC的连接

ADSL接入技术在我国曾广泛使用过一段时间,现已逐步被光纤接入取代。

3. 有线电视网接入

有线电视(cable TV或CATV)已经广泛采用光纤同轴电缆混合网(HFC)传输电视节目。HFC主干部分采用光纤从广电中心连接到小区,然后在“最后1千米”时使用同轴电缆以树枝型总线方式接入用户居所。HFC传输容量大,抗干扰能力强,既能传输高质量多频道的广播电视节目,又能提供高速数据传输和信息增值服务,还可以进行数字视频点播服务。

图432cable MODEM与PC的连接

通过HFC网络接入互联网时,主机端仍采用以太网技术,但从同轴电缆到用户主机需使用电缆调制解调器(cable MODEM)。cable MODEM接入技术比电话网的带宽高得多,因而比ADSL的传输速率更高。

cable MODEM的原理与ADSL相似,它将同轴电缆的整个频带(大约为5~750MHz)划分为三部分,分别用于数据上传、数据下传及电视节目的下传,数据通信与电视信号的传输互不影响,上网时仍可收看电视节目。

现在有线电视机顶盒中均集成了cable MODEM的功能,有些还支持无线热点,用户办理开通手续后就可以接入互联网(图432)。

4. 光纤接入

光纤通信以光为信息载体在光纤中进行传输。通信时,首先要将电信号转换为光信号,经光纤传输到目的地后,再将光信号转换成电信号,从而实现信息传输(参看4.1.2节中的图49)。光纤通信有很多优点,如通信容量大、传输损耗低、中继距离长等,现在技术已经成熟,互联网络的骨干网和城域网基本实现了全光纤化,我国几乎所有地级市的接入网也大多实现了光纤入户(FTTH,fiber to the home)。

FTTH强调的是光纤从运营商的机房直接连接到用户的居所。运营商机房中的OLT(optical line terminal)将城域网与ODN(光配线网)进行连接,光配线网ODN由光交接箱、光配线箱、光缆等组成,其中主干光缆的纤芯少则上百芯,多则几百芯甚至上千芯,用管道直埋或架空方式敷设;配线光缆连接光交接箱与光配线箱,城市中楼宇之间沿管道或外墙绑扎整齐的就是配线光缆;经光配线箱分纤(分光)后,入户光缆(单芯或多芯的皮线光缆)就把光信号送进了用户居所。

图433光纤入户(FTTH)

光纤传输的光信号必须使用ONU(光网络单元)转换成电信号后计算机才能上网。ONU是光调制解调器,也称为光端机,俗称“光猫”(光MODEM),它不仅负责光电信号收发、转换、调制与解调,而且还将PON(无源光网络)格式的数据帧与以太网数据帧进行相互转换,起到网关的作用。

前几年流行的做法是将ONU放置在路边(FTTC)或大楼(FTTB)内,再通过百兆/千兆以太网连接楼内的用户(即所谓“光纤到楼、以太网入户”),以取代早先的“电话线+ADSL”,接入速度显著提升,较好地满足了用户的需求。

光猫的安装比较简单,把光纤插入带有PON标志的插口,再用以太网网线一头插入光猫上带有LAN标志的插口,另一头插入电脑的网口(如果仅连接1台电脑),或者插入家用路由器的WAN插口(如果需连接家庭局域网)即可(图434)。光猫的LAN接口不止一个,用户还可以连接IPTV机顶盒收看网络电视。有些光猫自带路由功能并内置WiFi热点,集光猫和无线路由器于一体,安装使用更加简单。

图434光猫与路由器的连接

光猫的网络接口速率大多设计为1Gbps,称为千兆口,实际速率则由运营商按业务合约开通,目前大多为100Mbps或200Mbps。随着4K/8K高清视频、VR/AR、互动游戏、家庭云等应用的逐步普及,千兆家庭宽带接入已是大势所趋,即以10Gbps(万兆)PON光纤入户,实现用户端的千兆带宽业务,上下行速率达到千兆甚至更高,时延降低到100μs以下,使用户体验得到更显著的改善。

5. 无线接入

随着无线通信技术的发展,用户不受时间地点约束,随时随地访问互联网已经成为现实。目前采用无线方式接入互联网的技术主要有两类(表43):3G/4G/5G移动电话接入和WiFi(无线局域网)接入。关于3G/4G/5G移动通信系统的基本原理在4.1.3节中已经介绍,此处不再重复。

无线局域网的原理和组成也已经在4.2.3节做了介绍,它通过路由器+光猫/ADSL MODEM接入互联网。目前,WiFi技术日益成熟,性能不断提高,校园、宾馆、机场、车站都已部署了WiFi接入点,家庭(宿舍)中的多台计算机和智能手机等,均可方便地接入互联网(图435)。

图435无线接入互联网

现在,平板电脑和智能手机等便携式终端非常普及,在没有WiFi可用或者安全性没有保证时,可以把3G/4G/5G智能手机开通为WiFi热点,临时把手机作为无线路由器使用,其他无线终端连接该热点后即可上网,当然这需要消耗手机的数据流量。

还有一种做法是使用3G/4G/5G无线路由器(也称为随身WiFi),它通过移动通信运营商提供的SIM卡,组成一个可以移动的WiFi热点,智能手机、笔记本电脑等移动终端连接该热点后通过移动通信网接入互联网,以满足出差及旅游时上网的需求。

4.3.2协议和路由器

连接在互联网上的数以亿计的手机、PC、服务器等各种设备,它们的性能用途不同,操作系统不一,接入方式各异,怎样才能使它们互相识别(如指定微信好友或访问特定网站)和互相通信(如发送照片或下载网页)呢?这就要求所有设备都遵循统一的约定和规则,这些用于通信的约定、规则和标准就称为通信协议。TCP/IP就是互联网采用的通信协议,它是由上百个协议组成的协议系列,共分为4层,分工合作,协同配合,使互联网有条不紊地为各种App的运行提供可靠的支持。

1. TCP/IP模型

通信协议是计算机网络不可缺少的组成部分。无论想让网络上的计算机做什么,都需要按照协议进行。计算机网络的协议采用“分层”的方法进行设计和开发。分层可以把庞大而复杂的问题转化为若干较小的局部问题,使问题比较容易处理。以网络上的文件传输为例,可以将计算机要做的工作划分为三部分,分别由三个“模块”进行处理。

首先是与文件存取和处理有关的工作。例如,甲计算机从指定文件夹中将文件读出,乙计算机接收该文件并存储至指定文件夹,若两台计算机由于操作系统不同而使用不同的文件系统,则还需要完成文件系统的转换。这些工作可以由一个“文件处理模块”来完成,它是两台计算机中最高的一层(图436)。

图436网络的分层结构

文件处理模块并不直接进行文件的传输,它把文件交给第2层的“通信服务模块”,由通信服务模块负责文件和有关命令在两台计算机之间进行可靠传输。

通信服务模块其实也不真正进行数据传输,它把数据和命令打包之后,交给它下面的“网络接入模块”,由网络接入模块根据所接入的网络类型,进行各种相关的处理与数据传输工作。例如将“包”转换成以太网的“帧”,将数据转换成适合于在网络上传输的电信号或光信号,等等。

计算机网络的这种分层结构在设计和开发网络时有很多优点。例如,各层之间相对独立,因此灵活性很好。上面的例子中,文件处理模块如果换成电子邮件模块或微信模块,那么在下层模块不变的情况下,两台计算机就可以收发邮件或微信。分层结构的另一优点是层与层可以分割开,有利于软件的实现和维护。例如最高层可以用独立的一个应用软件来实现(如电子邮件或微信App);中间一层可以嵌入在操作系统中,由操作系统实现;底层的网络接入模块则由网卡和相应的驱动程序完成。

计算机网络从一开始就采用了分层结构。最著名的结构有两种模型:开放系统互连(OSI)参考模型和TCP/IP模型。OSI模型是国际标准化组织(ISO)提出的,它将网络分成7层,概念清楚但比较烦琐,运行效率低,没有得到市场的认可。反而是原先并非国际标准的TCP/IP模型现在获得了最广泛的应用。

TCP/IP模型将计算机网络分成4层:应用层、传输层、网络互连层以及网络接口与硬件层。为适应不同的应用需求,每一层都包含若干协议,整个TCP/IP一共包含有数百个协议(大部分是应用层协议)。在这些协议中,TCP(传输控制协议)和IP(网络互连协议)是其中两个最基本、最重要的核心协议,因此通常用TCP/IP来代表整个协议系列。图437给出了每一层的名称、包含的主要协议以及层与层之间所传送的数据类型。每一层的主要功能概述如下:

图437TCP/IP的分层结构与主要协议

第4层:应用层,规定了运行在终端设备(如计算机)上的应用程序之间(如电子邮件的客户端与邮件服务器之间、Web浏览器与Web服务器之间等)如何通过互连的网络进行通信。不同的应用需要使用不同的应用层协议,如电子邮件程序使用SMTP协议(简单邮件传送协议),Web浏览器使用HTTP协议(超文本传输协议)。

应用层协议在网络应用软件(App)中体现。凡在网络环境中运行的App,一般都涉及2个或多个网络设备互相通信和交互作用,它们必须遵循一致的约定和规则,这就是应用层协议。

第3层:传输层,主要有TCP和UDP两个协议:TCP协议负责完成数据从发送端到接收端的可靠传输,如电子邮件的传送和网页的下载等;而使用UDP协议时,网络只是尽力而为地进行快速数据传输,但不完全保证传输的可靠性,例如音频和视频数据的传输就采用UDP协议。

第2层:网络互连层,它规定了整个互联网中所有计算机统一使用的编址方案和数据包格式(称为IP数据报),以及怎样将IP数据报从一台计算机逐步通过一个个路由器送达最终目标的转发机制。

传输层协议和互连层协议一般在操作系统中体现,无论Windows、iOS还是安卓或其他系统,这些协议软件都是不可或缺的模块,它们为网络设备之间互连、互通、互操作提供了共性的服务,没有它们应用层的App就无法运行。

第1层:网络接口层,又称为链路层,它规定了与各种不同的物理网络(如以太网、FDDI网、X.25网、帧中继网、ATM网等)的接口,负责把IP包转换成适合在物理网络中传输的数据帧格式。

网络接口层体现为网络设备中的网卡及其驱动程序,不同的物理网络其MAC地址和帧格式不同,差错检测与处理方法不同,介质访问(接入)方法不同,传输介质、接口速率不同,因而需要使用不同的网卡和驱动程序。

2. IP地址

(1) 什么是IP地址

互联网由大量的局域网、广域网(以下统称为物理网络)互连而成。连接在这些物理网络(例如以太网、FDDI网、ATM网等)中的终端设备(统称为host,主机)虽然各有自己的物理地址(MAC地址),但格式不统一,还互有重叠。为此IP协议规定,全网所有主机通信时使用统一编号的地址——IP地址。IP地址由软件设定,终端设备原有的MAC地址保持不变。

IP协议第4版(IPv4)规定,每个IP地址用4个字节(32个二进位)表示。为了方便用户使用,它通常被写成“点分十进制”的形式,即4个字节分别用4个十进制数(0~255)写出,中间以小数点“.”分隔。例如,IP地址11010100 00010000 00000010 01111000的点分十进制表示为:212.16.2.120。

IP地址由网络号和主机号两个部分组成。前者用来指明主机所从属的网络的编号(称为“网络号”),后者是主机在所属网络中的编号(称为“主机号”)。IP地址分为A类、B类、C类三个基本类:每类有不同长度的网络号和主机号,另有D类和E类地址分别作为组播地址和备用地址使用。

图438IP地址的分类及格式

参见图438,其中,A类地址用于拥有大量主机(≤16777214)的超大型网络,全球只有126个网络可获得A类地址。A类IP地址的特征是其二进制表示的最高位为“0”(点分十进制首字节小于128)。B类IP地址的特征是其二进制表示的最高两位为“10”(即首字节大于等于128但小于192),规模适中的网络(≤65534台主机)使用B类地址。C类地址用于主机数量不超过254台的小型网络,其IP地址的特征是二进制表示的最高3位为“110”(即首字节大于等于192但小于224)。例如,26.10.35.48是一个A类地址,130.24.35.68是一个B类地址,202.119.23.12表示一个C类地址。

IP地址中如果主机号每一位都为“0”,称为网络地址(即网络号),如果主机号每一位都为“1”,称为广播地址,表示信息将送达网络中的每一台主机。它们不用作主机的IP地址。

IP地址由国际组织IANA(互联网编号分配机构)分配给5个地区性机构,我国由APNIC(东亚,大洋洲,南亚和东南亚)分配,然后再逐级分配给各个ISP(互联网服务提供商)和组织机构。过去,机构内每台主机的IP地址由网络管理员分配,用户需自行设置,操作烦琐,地址容易冲突,使用效率不高,管理工作量大。现在则由路由器中的DHCP(动态主机配置协议)软件自动为所辖主机分配并设置IP地址,无须用户操心。有关DHCP的进一步介绍可参看本章阅读材料4.4。

(2) 公网地址与私网地址

IPv4中地址长度仅为32位,理论上虽有近43亿个地址可用,实际上剔除私网地址、保留地址、组播地址之外,剩下可以用于互联网通信的IP地址不到30亿个。而全球网民总数早已超过了40亿。为解决IP地址紧张的问题,一种普遍使用的方法是采用网络地址转换(NAT)技术。

NAT技术将IP地址分为私网地址与公网地址。公网地址是分配给组织机构的IP地址,它可直接访问互联网,例如服务器必须使用公网IP地址。私网地址是组织机构内部使用的IP地址,它不能与持公网地址的主机直接进行通信。私网地址的网络号由IANA特别规定,只有下列3个:

A类私网:10.0.0.0~10.255.255.255(表示为10/8),大约有超千万个私网地址,广域网使用。

B类私网:172.16.0.0~172.31.255.255(表示为172.16/12),大约有百万个私网地址,城域网使用。

C类私网:192.168.0.0~192.168.255.255(表示为192.168/16),有65024个私网地址,局域网使用。

现在大部分企业网和家庭网中,DHCP分配给主机的都是私网IP地址。为了与子网外部的主机进行通信,必须将私网地址转换为公网地址,负责进行转换的是路由器中的NAT(网络地址转换)软件(图439)。用户每次上网,其实都是由NAT代理的。NAT使用的公网IP地址只有一个或几个,因此还需要附加端口号以区分不同的私网地址。私网可以多级使用(NAT套NAT),这就使私网IP地址的数目几乎不受限制。

图439网络地址转换(NAT)

(3) IPv6

2019年11月全球所有IPv4地址已全部分配完毕。IP地址严重短缺制约着互联网的进一步发展,尽管有地址转换技术(NAT)在勉强维持,但它也有缺点,例如公网地址访问私网地址比较困难,许多服务受到限制,要通过复杂的设置才能解决。

IPv6(第6版IP协议)是一劳永逸的解决方案。它把IP地址的长度扩展到128位,地址数目多到可以为地球上每一粒沙子分配一个IP地址。而且,IPv6具有安全性更好,地址自动配置功能更强等优点。目前PC和手机等终端设备的硬件和软件大多都同时支持IPv4和IPv6。当用户设备连接网络时,DHCP一般会分配给用户一个IPv4地址和一个IPv6地址,请求服务时会自动选择使用IPv6或IPv4去连接远端服务器。如果服务器域名支持IPv6,客户端则会优先使用IPv6去连接服务器;若服务器域名只支持IPv4,客户端则会使用IPv4去连接服务器,完成服务请求。

把IPv4切换为IPv6,终端设备比较容易做到,而互联网的主干路由器全部都要支持IPv6,数据中心的服务器也要支持IPv6,这需要大量资金投入。加之互联网源自美国,IP地址的分配并不合理,欧美国家一些机构和企业的内网使用了大量公网IP地址,它们不缺IP地址资源,对使用IPv6的需求并不紧迫,因而IPv4向IPv6推进的速度缓慢。

为了促进5G的大规模应用,为工业互联网打基础,为全面实现“万物互联”做准备(估计2025年物联网的连接数将超过270亿),也为了国家的网络安全和网络主权,我国正在加快进行IPv6的升级改造。据有关报道,2020年我国将全面完成互联网电视业务经过的骨干网、城域网、接入网以及互联网骨干直联点相关设备的IPv6改造,基于IPv6协议的互联网电视业务服务能力将达到IPv4的85%以上;基于IPv6协议的互联网电视业务加速性能将达到IPv4的85%以上。

3. IP数据报

互连的各个物理网络,它们使用的数据包(或帧)的格式可能互不兼容,因此不宜将一个网络送来的包直接传送给另一个网络。为了克服这种异构性,IP协议定义了一种独立于各种物理网络的数据包的格式,称为IP数据报(IP datagram)。图440是IPv4数据报格式的示意图。

图440IP数据报格式的示意图

IP数据报由两部分组成:头部和数据区。头部的信息主要用于确定在网络中进行数据传输的路由,内容包括:发送数据报的计算机的IP地址;接收数据报的计算机的IP地址;IP协议的版本号(目前大量使用的还是IPv4);头部长度(以32位为单位指出数据报头部的长度);数据报长度(整个数据报的长度,即头部长度加上数据区的长度);服务类型(指出发送数据的计算机对数据传输的要求,例如,希望以低延迟方式传输,或者以高可靠方式传输等)。

数据区的长度可以根据应用而改变,数据量最小的时候也许只有1个字节(例如传送键盘上输入的一个字母),最大的时候包括头部信息在内可以达到64KB。如果需要传送1个大文件,则必须将文件分拆为多个IP数据报分多次传送。

互联网App需要传输的数据(例如下载的网页、发送的微信等),都是由App交给传输层,传输层再交给IP层,再由IP协议软件封装成IP数据报后,才在网络中进行发送或接收(图441)。具体情况将在4.3.3节和4.3.4节中进行介绍。

图441互联网App的数据都要转换为IP包后进行传输

4. 路由器

在网络发展过程中,单一技术的计算机网络无法满足各种不同的应用需求,因此先后出现了多种不同技术的局域网和广域网。而要想极大地发挥网络的作用又必须把它们互相连通起来进行通信。路由器(router)是网络与网络互连的关键设备,它遵循IP协议,本质上也是一种分组交换机(分组就是IP数据报)。它有两个主要功能:一是屏蔽各种网络的技术差异,二是选择合理的途径将IP数据报传送到下一站(另一个路由器或计算机),确保了各种不同物理网络的无缝连接(图442)。

图442路由器使异构网络互连成为统一而协调的计算机网络

路由器有多个输入端口和多个输出端口,好像是一个交通枢纽,它为输入的每个IP数据报选择路由并进行转发,需要时还会进行数据包格式转换。路由器之间一般都使用高速通信链路相连接。一个路由器通常连接2个以上网络。连接哪个网络的端口,就被分配一个属于该网络的IP地址,所以同一路由器会拥有多个不同的IP地址。

图443是3个物理网络使用2个路由器进行互连的简单例子。其中以太网I与FDDI网通过路由器R1互连,R1的端口①(以太网接口)与计算机A均在以太网I(网络号为131.108.0.0,属B类网络)中,端口②(FDDI网接口)与计算机B均在FDDI网中(网络号为223.240.129.0,属C类网络);FDDI网与以太网II通过路由器R2互连,R2的端口③(FDDI网接口)与计算机B均在FDDI网中,端口④(以太网接口)与计算机C均在以太网II(网络号为202.18.3.0,C类网络)中。路由器完成连接并设置了端口的IP地址之后,其软件会根据各个物理网中计算机的状态和网络的互连互通情况,为每个路由器计算出各自的“转发表”,表中给出通向所有可能目的计算机的路由信息。

图443路由器及其IP地址

下面再分析一下路由器的工作过程。假设图443中的计算机A需要向计算机C传送一个数据文件,先检查一下C是否与A在同一个物理网络中,若是,就可以直接在以太网I中进行传输而不需要经过路由器。

主机A检查发现C与A不在同一个物理网络中,因而将数据发送给同在以太网I中的路由器R1,R1再按照转发表指出的路由将数据在FDDI网中传送给路由器R2。路由器R2检查发现计算机C同在以太网II中,因而直接将数据经以太网II传送给主机C。

如果主机C不在以太网II中而在其他网络中,那么路由器R2就需要按转发表给出的路由信息将数据转发给其他路由器,由其他路由器继续完成传输任务。

路由器问世已经多年了。随着技术的进步,路由器的用途和性能有了许多扩展和提高。现在,路由器不仅用于互连各种类型的物理网络,而且还用来将一个大型网络分割成多个子网络,避免产生广播风暴,平衡网络负载,提高网络传输效率。路由器能监视用户的流量,过滤特定的IP数据报,对保障网络安全也有重要作用。路由器还可以通过提供优先权控制、预约网络带宽等措施提供一些网络特殊服务。正因为此,图425所示万兆校园网中的一些交换机实际上大多使用的是路由器。有关路由器的功能、分类,以及家用无线路由器的介绍可参看本章阅读材料4.4。

4.3.3应用层协议

任何互联网应用(如浏览网页、收发邮件、下载视频等App)都涉及2个以上主机的相互通信和相互作用,IP协议和路由器只是解决了主机之间的互连互通问题,App需要完成的任务,还需要相关主机共同遵循一些特定的协议——应用层协议,才能协同完成。下面以最常用的网页浏览为例对应用层协议进行介绍。

1. 域名解析协议DNS

浏览器软件是PC和手机中浏览网页最常用的App。若用户在浏览器中输入一行命令(称为统一资源定位符URL,详见4.4.2的介绍):http://www.nanjing.gov.cn/zjnj/(也可以通过点击图标或链接),就可以在PC或手机的浏览器窗口中看到南京市的城市概况介绍。其中http表示“请求Web服务器下传网页”,www.nanjing.gov.cn则是南京市政府官网的Web服务器,zjnj表示Web服务器中的1个特定网页(南京概况)。

浏览网页必须指出是哪一个网站,即Web服务器的地址(IP地址)。如前所述,IP地址是32个二进位数字,虽然可以用4个十进制数表示,但记忆和使用仍不方便。更合适的方法是使用具有特定含义的符号来表示IP地址,用户使用时只需按名访问,而无须关心它的十进制或二进制地址,这就是域名(domain)的概念。

大多数用户的计算机只有IP地址而不需要域名,在有特殊需要(如用作Web服务器或网络共享打印机)时,可向所属网络中心或ISP申请1个固定的公网IP地址并注册1个域名。为使域名全球唯一,整个互联网的名字空间划分为若干不同的域,每个域又划分为若干子域,子域还可以再分成许多子域。所有入网主机的名字即由一系列的“域”及其“子域”组成,子域的个数不超过5个(5层),相互之间用“.”分隔,从左到右级别逐级升高。域名的格式一般为“计算机名.网络名.机构名.最高域名”。图444是互联网命名树的示意图。例如,www.nju.edu.cn表示中国(cn)教育科研网(edu)中的南京大学校园网(nju)内的Web服务器(www)。

图444互联网域名的命名树

域名使用的字符可以是字母、数字和连字符,但必须以字母或数字开头并结尾。整个域名的总长不得超过255个字符。由于互联网起源于美国,所以美国通常不使用国家代码作为第1级域名,其他国家(地区)一般采用国家(地区)代码作为第1级域名。

互联网通信都是借助IP数据报的传输来完成的,IP数据报必须使用二进制的IP地址指出数据报的发送者和接收者,而不认识域名。因此用户在访问网站时使用的Web服务器域名必须“翻译”成相应的IP地址(这个过程称为域名解析),然后才能找到该IP地址所对应的Web服务器。

域名的命名规则以及把域名解析成IP地址的方法称为DNS(域名系统)协议,它也是1个应用层协议,实际上它是辅助其他应用层协议(如HTTP、SMTP、FTP等)工作的,用于将用户提供的服务器域名解析为IP地址。

域名解析操作按客户端服务器模式自动完成。仍以网页浏览为例,过程大致如下:

(1) 浏览器从用户提供的URL中抽取出域名字段www.nanjing.gov.cn,交给浏览器中的DNS客户端程序。

(2) DNS客户端向域名服务器发送一份查询报文,报文中包含有待访问的域名www.nanjing.gov.cn。

(3) 域名服务器收到查询报文后,进行域名解析,将获得的结果(Web服务器的IP地址)放入回答报文发送给DNS客户端。

(4) DNS客户端收到回答报文,取出其中的IP地址交给浏览器程序。

(5) 浏览器按照该IP地址,即可向Web服务器发起TCP连接,然后进行HTTP报文的收发。

上面第(3)步中把域名翻译成IP地址(域名解析)是由域名服务器来完成的。通常,每一个网络(如校园网或企业网)均要设置一个域名服务器,安装DNS软件,并在服务器中存放所辖网络中所有主机的域名与IP地址的对照表,用来实现入网主机名字和IP地址之间的转换。同时,该DNS系统与它的上级网络(通常仅1个)中的DNS以及它的下级网络(可能有多个)中的每个DNS系统之间都建立了链接,以便实现分布式的域名解析。

还需要说明的是,域名解析过程中收发查询报文和回答报文的任务是交给传输层协议完成的,但使用的是UDP协议而不是TCP协议,原因是TCP协议的开销太大,UDP协议开销少,效率高。

实际上,实现域名解析的过程很复杂,它由分布于全球的大量DNS服务器合作完成。通常,网络运营商会为用户分配一个DNS服务器,这个DNS一般是最快的(多半是距离最近的)DNS服务器。如果需要也可以手动设置DNS,国内一些大型互联网公司有自己的DNS服务器,例如114.114.114.114/114.114.115.115就是访问速度较快、工作较稳定的一个。

2. 超文本传输协议HTTP

仍以网页浏览为例(图445),用户在浏览器软件中输入的http://www.nanjing.gov.cn/zjnj/中,http即表示超文本传输协议HTTP(HyperText Transfer Protocol),该协议规定,客户端访问Web服务器网页时的命令格式为:

http: //服务器域名或IP地址[:端口号]/文件路径/文件名

图445网页浏览过程

其中,http是客户端与服务器的通信协议,服务器域名也可使用IP地址的点分十进制表示,端口号通常是默认的,如Web服务器使用的是80,一般不需要给出;/文件路径/文件名指的是网页和资源在Web服务器中的文件夹位置和文件名,如果不明确指出,则以index.html或者default.html作为默认的文件名,即指的是该网站的主页。

HTTP协议按客户端/服务器模式工作,即客户端App发出“请求”、服务器返回“响应”:

●客户端发送1个HTTP请求报文[图446(a)]给服务器,请求报文的内容包括:① 网页或资源的位置(URL);② 方法(即请求服务器进行的操作),如GET(读取Web中指定的资源)、POST(递交数据请求处理)等;③ 需上传给服务器的数据(如用户名、密码,可以没有)。

●服务器(网站)发回1个响应报文[图446(b)]给客户端,响应报文内容包括:① 状态码,如:成功、客户端有错、服务器有错等;② 内容类型:指出资源的文件类型、采用的编码等;③ 下载给客户端的网页资源数据。

图446HTTP的请求报文和响应报文

浏览器软件访问网页的工作过程(即HTTP协议的执行过程)大致如下:

(1) 浏览器向域名服务器请求域名解析,从域名服务器取得Web服务器的IP地址(见上面的介绍)。

(2) 浏览器中的HTTP客户端程序发起与HTTP服务器(Web服务器)建立1个TCP连接。

(3) 浏览器按用户输入的URL组成1个请求报文(包含方法、URL、版本号和用户名、口令等登录信息),并向HTTP服务器发送该请求报文。

(4) HTTP服务器接收请求报文,按请求报文中的文件路径,从硬盘中读出需要下传的网页,将网页封装在响应报文中。

(5) HTTP服务器向客户端发送响应报文。

(6) HTTP客户端接收响应报文,接收完毕后释放TCP连接。

(7) 浏览器拆封出响应报文中的网页信息,并将其显示在浏览器窗口。

上述过程中HTTP客户端与服务器之间来往的报文数据,分别由HTTP客户端软件和服务器软件交给各自的TCP协议软件处理,详情见下一节关于TCP协议的介绍。

HTPP有多个版本,目前广泛使用的是HTTP/1.1版本。

3. HTTPS协议

用户在访问百度、淘宝、京东等网站时,会发现使用的不是HTTP协议而是HTTPS协议。HTTPS协议是HTTP的安全版,因为HTTP请求报文和响应报文的内容都是明文传输(不加密),容易被窃听;而且通信时没有验证对方的身份,也许访问的是假冒网站;至于报文(网页)的内容有没有被篡改也无法知晓。

HTTPS协议可理解为HTTP+SSL/TLS。通常,HTTP直接调用TCP(或UDP)协议进行报文数据的传输,而在使用HTTPS时,客户端与服务器两端都先执行SSL/TLS协议,相互进行身份认证,并协商得到1个加密/解密用的密钥,然后把消息加密之后再调用TCP(或UDP)协议进行数据传输。有关密钥、身份认证等信息安全方面的内容在下面4.5节介绍。

现在,许多国内外的大型互联网公司都已经启用了全站HTTPS,苹果公司App Store中要求所有应用都必须使用HTTPS,知乎网站也已全站HTTPS,微信小程序也要求使用HTTPS协议,新一代的HTTP/2协议也以支持HTTPS作为其基础。

4.3.4TCP和UDP协议

互联网上的各种App几乎都涉及计算机之间的数据通信,这些数据通信虽然是应用层的App发起的,但App程序自己并不传输数据,而是交给传输层去完成。下面仍以网页浏览为例介绍传输层是怎样工作的。

1. TCP协议

网页浏览过程中,HTTP客户端与Web服务器之间来往的报文数据,是交给各自的TCP(传输控制协议)协议软件处理的,TCP协议软件的主要任务和执行过程简述如下(图448):

(1) 将应用软件中需要传输的数据,无论是HTTP请求报文,还是包含有网页内容的响应报文,都封装为1个或多个TCP报文(图447)。TCP报文由头部和应用数据两部分组成,头部用于控制目的,应用数据即为HTTP请求报文和响应报文。如果响应报文很大(即网页内容很多),则会划分为几个TCP报文,用序号表示其顺序,“检验和”用于实现对TCP报文数据进行检验。

图447TCP报文格式及内容

由于通信双方的计算机中往往有多个App在运行,TCP报文中的源端口号用来指出,发送TCP报文的是源计算机中哪个App,目的端口号指出接收TCP报文的计算机中是哪个App。每一次TCP传输必须使用源计算机的(IP1: port1)与目的地计算机的(IP2: port2)才能唯一地确定。

(2) 由浏览器(客户端)发起,需通过3次握手[图448(b)]才能与Web服务器建立TCP连接:

① 客户端发送1个SYN报(仅有首部,其中标志位SYN=1,序号seq=随机数i)给服务器,表示向Web服务器发起连接请求;

② 服务器收到SYN报后,发回1个SYN+ACK报文(仅有首部,其中标志位SYN、ACK均为1,seq=随机数k,ack=i+1),表示收到客户端连接请求;

③ 客户端收到服务器的SYN+ACK报,再向服务器发送1个确认报ACK(仅有首部,其中标志位ACK=1,ack=k+1),此后客户端和服务器进入连接建立状态,开始传送数据。

(3) 客户端把包含有HTTP请求报文的TCP报文发送给Web服务器。

(4) Web服务器收到TCP报文,经检验无差错后,发回确认报。

(5) Web服务器取出TCP报文中的应用数据(HTTP请求报)进行分析,了解客户端(浏览器)的操作要求和网页的存放位置及文件名,读取网页内容,形成HTTP响应报文,然后把响应报文封装为1个或几个TCP报文。

(6) Web服务器把1个或几个TCP报文依序发送给浏览器。

(7) 浏览器接收服务器发来的1个或几个TCP报文,每收到1个TCP报经检验无差错后,发回1个确认报。

(8) 全部TCP报文接收完成后,若不丢包、不重复、不乱序、无差错,则释放TCP连接(与建立链接相似,需要4次交互,此处略)。

(9) 浏览器拆封TCP报文,取出HTTP响应报文,把其中的网页数据分析解读后显示在浏览器窗口。

图448网页浏览时TCP协议执行过程

分析上述过程可见,浏览器执行一次HTTP协议,需要通过3次握手建立连接,客户端与服务器要交换3个包;如果执行的是HTTPS协议,则除了TCP的3个包之外,还要加上SSL握手需要交换9个包,一共是12个包,这是为信息安全所付出的时间代价。

注意,上述过程中所有TCP包的传输操作,都不是TCP协议软件自己完成的,而是交给IP协议软件去完成的(见4.3.2节)。TCP协议有如下特点:

(1) TCP协议不仅是计算机计算机的通信,而且是端端的通信,即源计算机的某个App与目的地计算机的某个App之间的通信。

(2) TCP协议是基于连接的通信,即在数据传输之前,客户端与服务器(或者说是通信的双方)需要先建立一个可信任的连接,数据传输结束后,再断开连接。

(3) TCP数据传输是可靠的,它通过超时重传、流量控制、数据包序号检查、检验和等机制,能确保TCP数据包不丢失、不重复、不乱序、不出错。

上述(2)(3)两点与基于报文的协议(UDP)截然不同。

2. UDP协议

UDP协议(user datagram protocol)与TCP协议一样也是传输层协议,其功能也是用来在源计算机的某个App与目的地计算机的某个App之间传输应用层的数据。与TCP协议不同的是:

●UDP协议传送的数据称为UDP包,UDP包的首部开销小,只有8个字节。

●UDP是无连接的服务,在传送数据之前不需要先建立连接,对方的传输层在收到UDP报文后,不需要给出任何确认,因此通信的开销少,效率高。

●UDP在传输途中出现丢包不负责重发,数据包出现乱序也不负责纠正,如果出现这些情况,由采用UDP的App自行处理。

●UDP主要用来支持那些需要在计算机之间高速传输数据的网络应用。

UDP数据包的格式如图449所示,其中源端口和目的端口含义与TCP包相同;UDP用户数据报的长度,最小值是8个字节(若仅有首部没有数据),最大为(65535-8)个字节;检验和用于检查传输是否有错,有错就丢弃UDP包。

图449UDP数据包格式

UDP常用于以下几个方面:① 数据包总量较少的通信(DNS、SNMP等);② 视频、音频等多媒体通信(即时通信);③ 限定于LAN等特定网络中的应用通信;④ 广播通信(广播、多播)。

在4.3.3节的域名解析过程中,浏览器的域名查询报文是使用UDP协议程序发送的,域名服务器返回的回答报文也是使用UDP协议程序返回的。尽管域名解析的过程比较复杂,但由于传输的报文数据量很少,使用UDP协议时通信两端只需1次往返(减少了3次握手和4次挥手的过程),比TCP的效率高得多。

3. TCP/IP协议小结

(1) 协议之间的调用关系

TCP/IP协议,中文名为传输控制协议/网络互连协议,又名网络通信协议,是为互联网通信而制订的一组规则、约定和标准,它定义了数字设备如何连入互联网,数据如何进行传输,以及为网络App提供哪些服务。TCP/IP不是只有TCP和IP两种协议,它是以TCP和IP协议为核心的一组协议的统称。TCP/IP协议采用了4层的层次结构,每一层都通过呼叫(程序中称为“调用”)下一层协议所提供的功能来完成自己的任务(图450)。

图450TCP/IP协议自上而下的调用关系

TCP/IP协议中,通信双方在应用层和传输层中是使用域名(或IP地址)和端口号相互进行识别的。域名(或IP地址)代表计算机或服务器,端口号代表计算机中运行的不同的程序进程;在网络互连层中,通信双方必须使用IP地址才能相互识别;而在数据链路层(如以太网)中,仅IP地址还不够,IP数据报文必须封装成帧才能通过数据链路进行发送,数据帧必须包含源设备和目标设备的MAC地址,通信双方才能互相识别。所以IP地址与MAC地址还需要相互转换,这需要借助执行ARP(address resolution protocol)协议来完成,有关情况可参看本章阅读材料4.4。

(2) 数据的传递关系

互联网应用离不开App与服务器、App与App之间的数据通信。数据在网络中进行传输之前,都需要按通信协议的要求组织成为规定的格式。例如在应用层中,若是浏览器程序访问WWW服务器,数据(上传的用户名、口令和下载的网页等)被组织在HTTP请求报文和响应报文中;在传输层中,数据被组织在TCP包或者UDP包中;在网络互连层中,这些数据又进一步被组织在IP包中,最后传递到了数据链路层(例如以太网)中,数据必须再组织成以太网帧的格式,然后再在以太网中进行传输。

互联网的每一层协议,都会对所发送的数据附加一个首部,首部中包含了该协议层所需要的信息,如发送的源和目标地址、包长度等相关信息,这些信息称为包首部,而上一层协议传递来的包,全部都作为本层所要发送的包中的数据。

上述过程可以用图451来表示。需要注意的是,接收端计算机的数据格式转换过程,正好与发送端相反,它需要完成相反方向的转换,具体过程可参看本章阅读材料4.4中进一步的说明。

图451数据在计算机、通信链路和路由器中的传输过程

TCP/IP协议自20世纪70年代以来,连接了数以亿计的计算机,推动了互联网的蓬勃发展。但互联网最初是为固定网络的互连而设计的,现在已经到了移动互联时代,特别是5G的发展,互联网面临AR/VR、物联网、车联网等多种新的应用场景,安全问题也日趋严重,TCP/IP协议将面临新的考验。

复习题

(1) 互联网是如何组成的?接入网是什么,ISP起什么作用?

(2) 将计算机(或手机)接入互联网的技术有哪几种?比较它们的性能和特点。

(3) 什么是IP地址?与域名是什么关系?你上网使用的IP地址是什么?属于哪种类型?

(4) 路由器有哪些功能?你会设置无线路由器吗?

(5) HTTP协议的功能是什么,浏览网页的大致过程是怎样的?

(6) TCP协议的功能是什么,它有什么特点?

4.4互联网应用

现在,互联网已经成为一种生活方式,人们再也离不开互联网。互联网为人们提供了全方位的服务,App数以万计。下面仅对互联网通信、WWW信息共享和WWW业务处理三个方面作简单介绍。

4.4.1互联网通信服务

1. 电子邮件

电子邮件(email)是互联网最早的一种通信服务,用户在开户的电子邮件服务器中有一个属于自己的电子邮箱,每个邮箱都有一个全球唯一的邮件地址。邮件地址由两部分组成:邮箱名和邮箱所在的邮件服务器域名,两者用“@”(英文at的缩写)隔开。例如,zhang@netra.nju.edu.cn表示邮箱的名字是zhang,邮箱所在服务器域名是netra.nju.edu.cn。

电子邮件系统按C/S模式工作。用户在计算机或手机中安装一个电子邮件App,它具有撰写、收/发和管理邮件的功能。电子邮件的收发过程大致如下(图452):

(1) 用户登录电子邮件系统后,如需发送邮件,邮件发送程序通过SMTP(简单邮件传输协议)程序和TCP程序,将邮件传输到发信人邮箱所在的邮件服务器。

图452电子邮件系统的工作过程

(2) 发信人邮箱所在的邮件服务器把邮件传输给收信人邮件服务器,并由后者放入收信人的邮箱(如果邮件地址正确)。

(3) 收信人如需收信,运行电子邮件App,App将通过POP3协议(邮局协议第3版,用于接收电子邮件)或IMAP4协议(优于POP3的新协议,功能更丰富)向收信人的邮件服务器提出收信请求。

(4) 若用户身份信息(用户名和密码)正确,收信人的邮件服务器从用户的邮箱内读出邮件并传输给收信人。

邮件服务器昼夜不停地运行邮件服务器程序,它一方面执行SMTP协议,检查有无邮件需要发送和接收,负责把要发送的邮件传送出去,把收到的邮件放入收信人邮箱;另一方面它还执行POP3(或IMAP4协议),判断是否有用户需要取信,鉴别取信人的身份,并在身份认证通过(口令正确)后把收信人邮箱中的邮件发送给收信人。

Web应用的发展提供了一种称为“WebMail”(基于Web的邮件服务)的更方便的电子邮件服务,它使用浏览器来接收或发送电子邮件。用户只需在邮件服务提供商的网页上输入用户名和密码进行登录,就可以在线处理电子邮件。使用WebMail的优点是用户无须另行安装邮件客户端软件,只要能浏览网页,就可收发和处理电子邮件,因而移动性好、收发速度快。现在许多电子邮件系统如网易163mail、新浪、Google等都提供有WebMail服务。

2. 微信

微信(WeChat)是即时通信(instant messaging,IM)软件的一种。早先的即时通信软件有ICQ、Yahoo! Messenger等,现在最流行的是微信、QQ和美国的Facebook(脸书)。随着智能手机的普及,人们已经是“人不离机、机不离线”,微信软件使手机如虎添翼,成为移动互联网的第一大App。

微信软件由腾讯公司2011年推出,目前全球已有超过10亿的活跃用户。微信的主要功能和特点概括如下:

●发送文字、语音、图片、表情、定位等信息实时送达(或通知)接收方,支持用音频和视频进行单聊或群聊;

●支持朋友圈信息发布,包括文字、图片、音频和视频,以及内部或外部链接;

●支持文档、图片、音视频文件的传输功能;

●支持微信公众号服务,提供订阅、推送、群发和交互等功能;

●提供微信钱包、微信支付和社会服务功能;

●开放小程序,减少在手机上安装其他App;

●提供面向企业管理和办公应用的安全性更好的企业微信版。

微信其实是一个电子邮件系统,它与普通的邮件系统不同之处在于:① 只要不退出登录,微信App启动后就始终处于“在线”状态(即与服务器保持连接状态——网络保活,以保证随时随地能接收到消息);② 即使微信App转入后台状态,也尽量让微信进程保活,不被Android系统回收,以保证快速响应用户的操作;③ 微信使用专用协议SYNC(参考微软Exchange ActiveSync自行研发的状态同步协议),按增量方式有序可靠地进行客户端与服务器状态同步,实现聊天消息的离线差异收取、多端同步、顺序正确,确保消息不丢失也不重复。

微信App与微信服务器之间的数据传输是在TCP协议的基础上进行的。与网页浏览、网上银行、淘宝购物等应用不同的是,微信客户端与服务器之间建立的TCP连接是“长连接”,即通过3次握手建立连接之后开始数据传输,传输完了双方都不主动断开连接,之后不论那一方需要发送数据时,就继续通过这个连接传输数据,TCP连接始终处于保持状态,这对于聊天之类通信频繁的场景非常适合。而网页浏览、网上银行、淘宝购物等应用的客户端与服务器之间建立的TCP连接是“短连接”,数据传输完成后即断开TCP连接,下次双方需要通信再重新建立连接。

微信的发送过程大致如下:

(1) 发信人准备好一条微信(文字、图片、表情、音视频等,下面统称为“消息”)后,点击发送。

(2) 微信App按登录过程中执行MMTLS协议与服务器协商得到的密钥(见4.5.4节的介绍),对发送的消息(微信内容)进行压缩和加密,然后向微信服务器发送消息。

(3) 微信服务器接收消息,向客户端发回确认信息。

(4) 客户端若收不到确认信息,将显示红色感叹号,提示用户重发。

(5) 上传图片时,微信App会根据图片大小,分割成若干部分(每部分1.5KB左右),客户端将同时发起若干次POST请求,各自上传成功后服务器会合并成一个完整图片。

(6) 服务器根据收信人地址将消息(或消息索引)投递到收信人的收件箱,不管是群聊还是单聊,服务器都拷贝一份直接写入收件箱,并为每个收信人生成1个新的消息ID(由序列号生成器自动生成)。

(7) 服务器向所有收信人发1条有新消息的通知。

微信的接收过程,实际上是一个客户端与服务器中自己的收件箱进行数据同步的过程,大致如下:

(1) 收信人的微信App收到服务器通知后,将“已接收的最后1条消息ID”发给服务器并发出数据请求。

(2) 服务器对客户端“已接收的最后1条消息ID”与该用户“新的消息ID”进行比较,把该用户收件箱中尚未取走的消息(或消息索引)连同“新的消息ID”全部发给收信人。

(3) 收信人微信App接收新的消息,更新“已接收的最后1条消息ID”,向服务器发确认。

(4) 微信App把收到的消息或消息索引解压加密后分别存入发信人(群)的微信夹,并刷新屏幕显示内容。

(5) 收信人点开发信人微信夹可显示信件一览表,若为消息索引,还需点击链接再次访问服务器,从服务器取得消息内容后才能在屏幕上完整显示。

微信的发送和通知必须是实时完成的。这就要求微信能做到:① 始终保持TCP连接不断开,即使断开也能及时发现和重新建立连接;② 微信App处于后台状态时尽量不被操作系统回收以便能快速地唤醒;③ 只要微信没有退出登录,不论它在前台、后台或手机处于屏保状态、甚至CPU处于待机状态,微信App都能及时收到服务器接收新消息后发出(推送)的通知。微信采取了一系列的技术措施很好地解决了上述问题,并尽量考虑为用户节省手机电量和流量消耗。

微信不仅仅是手机或电脑上的一个App,它需要强大的后端服务器支持。实际上微信是一个巨型信息系统,除了数以十亿计的终端设备(手机、平板、PC等)之外,还有一个庞大的后台系统(即微信服务器)。后台分为三层:接入层、逻辑层和存储层。

图453微信系统和微信后台

图453中,接入层提供接入服务,接入层速度很重要,一般要在100ms之内完成。通常,接入请求每一秒都有几万或者十几万次。所以为了接入一个最优的节点,自动寻找合适的路由是关键。

逻辑层包括各种业务处理和基础服务的软件模块,成千的服务模块部署在全球数以万计的服务器上。

存储层包括数据访问服务和数据存储服务,微信每一种类型的数据都使用单独的数据访问服务和数据存储服务,例如账户、消息和联系人等都是独立的数据库。为了容灾和业务扩充,数据中心部署在不同地区的三个园区,具有无损的容灾能力。

3. 5G消息

随着5G移动通信基础设施建设的飞速进展,2020年中国电信、中国移动和中国联通联合发布了《5G消息白皮书》,宣布传统短信业务将升级到富媒体融合通信(rich communication suite,RCS),简称5G消息业务。

传统电话是语音通信,传统短信是文字通信。所谓5G消息(富媒体业务),它包括文本、语音、图片、视频、动画、表情、位置等多种媒体的通信。微信,就是一种富媒体通信工具。

电信运营商提供的5G消息业务其应用场景有两个方面:

●个人对个人的通信:5G消息支持点对点消息,支持群发、群聊,支持语音、图片、视频多媒体消息,还支持发送位置、名片等,甚至还支持消息云备份和阅后即焚。这些功能与目前的微信相似。

●政府和企业对个人的通信:政府和企业可以将公共服务和商业服务直接送达手机用户,在文字、图片和视频基础上增加了交互能力,方便政府和企业向用户提供个性化服务。如机票、酒店的预订查询、物流和网购查询、景点、医院预约等,为政府和企业与用户交流提供了一条新通道。

与微信相比,5G消息有如下几个优势:

(1) 它不需要单独安装第三方App,手机出厂就可以支持上述业务。这将大幅降低用户使用门槛,也节约了推广成本。

(2) 5G消息的业务与手机号码直接关联,手机号码就是账号,无须另行注册,继承电信业务的码号体系,实现实名制,提高安全性,保证电信级的服务质量。

(3) 5G消息关联了手机通信录,方便建立社交网络。

其实富媒体RCS并不是5G才有的。移动通信从3G向4G的发展过程中,传统语音通话及短信业务也开始向多媒体演进,于是建设了多媒体业务子系统IMS。IMS的网络结构和业务流程很复杂,它帮助4G LTE这个纯数据网络实现了对语音通话和短信的支持[参见4.1.3节的图417(b)],并把它们升级为多媒体形式。有了IMS,4G才能打电话和发短信。在IMS的基础上,才有了VoLTE和RCS。我国4G LTE网络的高度覆盖和IMS的建设完成,使得5G消息(富媒体业务RCS)的推出具备了很好的条件。

虽然目前大部分手机还没有支持5G消息,但此后各大厂商将对手机(包括4G手机)软件进行升级,支持RCS UP 2.4规范(5G手机的必选功能)。相信随着5G建设的深入,5G消息(RCS)很快会成为手机的标配。

4.4.2WWW信息共享

WWW(world wide web)译作万维网或Web网,最初由欧洲核物理研究中心(CERN)提出,它是共享互联网信息资源最强大的工具。

WWW有三个要素:遍布在互联网中的网站(Web服务器),访问网站的浏览器等客户端软件,以及客户端与网站进行通信的HTTP等应用层协议。

1. 网站和URL

网站(website)是互联网上网页、图像、音频、视频、脚本程序等一组特定信息资源的集合,用于在互联网上发布信息和提供信息服务。用户可以通过浏览器或其他App访问网站,获取自己需要的信息或者使用网站所提供的服务。

网站的硬件载体称为WWW服务器或Web服务器,服务器中存储了该网站的网页和相关信息资源(统称“资源”)。网页(web page)是网站的重要组成部分,它是一种超文本文档,由文字、图像、音频、视频、脚本程序等组成。网页最重要的特性是借助内嵌的超链把网页与网页、网页与其他信息资源相互连接起来。超链的链源可以是网页中的单词或句子,也可以是图像;链宿(即指向的目标)可以是任意网站中的信息资源。正因为不同网站信息资源的相互链接,WWW才成为全球文档、图片、音频、视频等海量信息资源的集合。

网站中的起始网页称为主页(homepage),用户通过访问主页可直接或者间接地访问其他网页和资源。网页是采用超文本标记语言(HTML或XML)描述的超文本文档,其文件后缀为.html、.htm、.xml等,可使用专门的工具软件制作,也可从Office文档转换而成。

WWW使用统一资源定位符URL(uniform resource locator)作为互联网上所有信息资源的地址——网址,每一个信息资源都有其唯一的URL,它用来指出:客户端与网站资源通信使用的协议、存放资源的服务器域名、资源在服务器中的位置以及资源的文件名称。

URL的格式(除protocol://外其余部分的解释参见4.3.3中的介绍)如下:

protocol://域名或IP地址[:端口号]/文件路径/文件名

其中,protocol://表示通信协议,除了http和https协议外,常用的有:

ftp——文件传输协议,客户端与FTP服务器进行文件传输操作。

mailto——SMTP邮件协议,向URL指出邮箱发送电子邮件。

telnet——远程登录协议,客户端仿真为一台终端,登录到域名指出的计算机上进行远程操控处理。

客户端App访问网站最常用的是http(https)协议,4.3.3节中已做了介绍此处不再重复。

2. Web浏览器

Web网页浏览器是一种用于下载并展示万维网信息资源的应用程序。它是WWW虚拟世界的入口,是互联网终端设备上最常用的客户端软件。浏览器软件有不少产品,例如微软的Internet Explorer/Edge,Google公司的Chrome,Mozilla Firefox,苹果公司的Safari,国内开发的有QQ浏览器、搜狐浏览器等。

浏览器软件有两个基本功能:访问Web服务器中的网页(资源)和向用户展现从Web服务器下载的网页(资源)。其结构大体如下:

图454Web浏览器的主要组成部分

浏览器由若干软件模块组成,图454说明了Web浏览器概念上的结构。它由一组客户程序、一组解释器和一个管理它们的控制程序所组成。控制程序是浏览器的中心,它接收用户输入的信息,调用其他程序来执行用户指定的操作。例如,当用户键入一个URL或者点击一个超链时,控制程序就启动HTTP协议程序与Web服务器通信,从Web服务器上接收下载的网页(例如一个HTML文档),然后再交给HTML解释器进行解释,并在屏幕上显示该网页。

浏览器最重要或者说核心的部分是网页(资源)的解释器,也称为“浏览器内核”,它负责对网页(资源)的语法进行解释(如超文本标记语言HTML、JavaScript等),决定如何显示网页的内容以及处理页面的格式信息。

有些网页不是HTML文档(例如可能是DOC文档、PPT文档或PDF文档),或者HTML文档中包含有某些非HTML成分(如flash动画),可能浏览器自己无法直接解释和播放,它将调用本机安装的Word、PowerPoint、Acrobat等程序进行处理,或者使用Plugin程序(称为插入式应用程序,简称插件)来播放网页中的动画、音乐、视频等内容。Plugin程序能扩展浏览器的功能,许多Plugin应用程序可以从网上免费下载。

浏览器软件除了查找、浏览和下载网页之外,还能完成其他服务,如收发电子邮件、进行文件传输(FTP)、远程登录(Telnet)等,这只要在URL中指出相应的协议即可。

现在不少网站开发了一些专门的“客户端”软件供用户下载使用。例如CCTV客户端、凤凰新闻客户端、优酷客户端、百度客户端,以及前面介绍的各种电子邮件客户端软件等,它们启动运行后即与特定的服务器相连接,功能相对比较专一,使用比较方便,运行效率较高,受到智能手机等资源比较紧缺的便携式终端用户的欢迎。

WWW客户端软件包罗万象,无论是动画,游戏,办公应用、科学展示,还是购物、订票、金融服务等多种多样的App,它们几乎都是基于WWW开发的,对互联网的应用发挥了重要的作用。

3. Web信息检索

Web为人们提供了一个遍布全球的海量信息资源库。如何快速准确地找到需要的信息就成为Web应用中必须解决的一个问题。通常,在Web中寻找信息有两种途径:在相关的门户网站上按信息类型分门别类地进行查找;也可以使用Web信息检索工具——搜索引擎来搜寻需要的信息。

所谓门户网站(portal),是指通向综合性信息资源并提供相关信息服务的网站,我国的百度、新浪、网易、搜狐、腾讯和美国的Yahoo!、Excite、Lycos、AltaVista和谷歌265等都是有名的综合性门户网站。它们大多提供主题目录或网址导航供用户寻找信息,用户按主题或门类一层一层地点击超链来查找有关信息。

Web信息资源数量巨大且不断增长,几乎人人都需要从网上查找信息。但信息资源形式多样,又缺乏良好的结构,质量参差不齐,不少网站结构和内容经常调整变化,再加上多数用户未经培训,给出的查询请求未必确切。因此,要能为用户准确、快速地找到需要的信息资源并非易事。

搜索引擎就是在这样的背景下出现的,它能帮助用户在Web中查找需要的信息。当用户通过浏览器或者App提出检索请求时,浏览器软件把搜索关键词及其他搜索条件(如类型、时间等)通过HTTP请求报文发送给搜索引擎(Web服务器),搜索引擎中的检索器从索引数据库中找出匹配的网页,由评估程序计算其相关度,按相关度把这些网页进行排序,然后将其名称、摘要及其URL发送给浏览器(图455)。

图455搜索引擎的原理与组成

搜索引擎中有若干蜘蛛软件(Web spider),它们昼夜不停地沿着网页中的链接在网上漫游,遍历互联网上数十亿Web服务器,下载每个网页,交给分析器和索引器分析其内容,提取网页摘要和关键字,连同其URL、文件大小、文字语种等信息记录在庞大的网页摘要数据库中,并建立相应的索引数据库,供检索器使用。

除了最基本的文字搜索之外,一些搜索引擎还提供语音搜索和图片搜索功能,搜索对象也可限定范围,如新闻、图片、音乐、视频、地图、博客/微博、学术资料、购物等,还可以指定文档类型、发布时间等。目前广泛使用的中文搜索引擎有百度(baidu)、搜狗(sogou)、360搜索等,国外的搜索引擎则以Google(谷歌)、Yahoo! Search和Bing(必应)最为流行。

4. 内容分发网CDN

互联网上有越来越多的视频、音乐、图书、软件等专业网站(内容提供商),以及购物和社交网络,这些网站的用户面广量大,访问频度高,数据流量大,服务器负担极重,高峰时濒于瘫痪,用户体验很差。内容分发网(CDN)的出现,解决了这个难题。

CDN是互联网中增加的一层新的网络架构,它由遍布全球的高性能加速节点构成。这些高性能的服务节点(服务器)按照一定的缓存策略存储各种业务内容,当用户向某一业务内容发起请求时,该请求会按照负载均衡原则被调度至最接近用户的服务节点,直接由该节点快速响应,有效降低用户的访问延迟,提升系统的可用性。CDN的服务节点分布在用户访问相对集中的地区,从而使用户就近获取所需的业务资源,减少网络拥塞,改善了用户的上网体验。

以腾讯的CDN网为例,当客户端访问网站资源时,工作过程大致如下(图456):

(1) 用户向www.test.com网站请求下载一张图片(如:1.jpg),先向本地DNS发起域名解析请求。

(2) 当本地DNS解析www.test.com时,发现已经配置了CDN,于是将www.test.com.cdn.dnsv1.com发送至Tencent DNS服务器,后者将根据用户的IP地址和用户申请访问的网站URL,为用户分配最佳的缓存节点IP。

(3) 获取 Tencent DNS向Local DNS返回分配的缓存IP地址。

(4) Local DNS向用户返回最佳缓存节点的IP地址。

(5) 用户向指定的缓存节点发出对图片资源1.jpg的访问请求。

(6) 若该节点缓存有图片1.jpg,则会将数据直接返回给用户,转向(10)结束。

(7) 若该缓存节点未缓存1.jpg,则节点会向业务源站发出对1.jpg的请求。

(8) 从源站获取资源1.jpg。

(9) 按一定的缓存策略,将资源缓存至CDN缓存节点。

(10) 缓存节点将图片资源1.jpg返回给用户,访问结束。

图456内容分发网(CDN)的工作流程

CDN具有如下几个优点:① 解决了跨运营商和跨地域访问网站的瓶颈问题,大大降低了访问延时;② 分流用户访问,平衡网站流量,减轻了源网站的压力,节省了网络带宽资源;③ 提供了存储冗余机制,有效防范黑客入侵,提高了网站的可靠性、安全性。

现在许多大型网站和热门网站都部署了自己的CDN,特别是资源共享型网站,如酷狗音乐、QQ音乐、爱奇艺、腾讯视频、优酷、Amazon Kindle、iBooks、Windows Store、Mac App Store、华为AppGallery等。还有许多公司专门提供构建CDN的服务,如阿里云(1000多个全球节点,45TB带宽能力,覆盖六大洲)、腾讯云(全球CDN节点数已超800,2017年CDN带宽储备增加到70TB)、网宿科技(全球的1000多个CDN加速节点)等。

4.4.3WWW业务处理

WWW诞生初期,它主要用于信息发布和共享,人们可以在WWW上快速有效地发布和获取信息,而不受时空的限制。随着互联网应用的普及和WWW技术的发展,WWW已经从信息发布与共享平台发展成为跨越时空的业务处理台,网上购物、网上银行、网络支付、共享单车等互联网服务都是在WWW网站上运行的。下面简单介绍支持这些业务处理系统运行的网站原理和概念结构。

1. 静态资源与动态资源

WWW资源(网页)有“静态”和“动态”两大类。静态资源通常指那些内容基本不变的资源,例如类型为JPG, PNG, GIF, HTML, TXT, JS, CSS, MP3, AVI之类的文件,浏览器请求此类资源时,服务器直接从其硬盘中读出,不做额外的处理,原封不动地回传给浏览器即可。除非资源作者对其内容进行了修改并重新发布,否则用户在任何时候访问该资源所得到的内容都一样。静态资源保存在Web服务器中,每个资源都是一个独立的文件。静态资源的优点是服务器处理简单、响应速度快,适用于一些更新较少的展示型网站。

动态资源与静态资源不同,它的内容不是预先确定的,而是网站在客户端请求时根据访问者、访问时间和客户提供的参数等实时生成的信息资源。动态资源由HTML文档及其内嵌的ASP、PHP或JSP等编程语言编写的脚本程序所组成,发回给客户端的是Web服务器通过执行脚本程序而实时生成的。由于网站中数据都存放在后台的数据库中,动态资源生成过程中还需要访问数据库。由于被访问的资源包含着动态数据(如外汇行情、股票价格、商品报价、学校的教务数据等),用户在不同时刻访问同一动态资源时,得到的内容往往有所不同。

注意,不要将动态资源和页面内容是否有动感混为一谈。动态资源与网页上的动画、滚动字幕等视觉上的动态效果并没有直接关系。动态资源也可以是纯文字内容的,也可以包含各种动画的内容,这些只是资源内容的表现形式,无论资源是否具有动态效果,只要是采用了动态资源技术生成的资源都称为动态资源。

现在,大部分网站特别是WWW平台上运行的业务信息处理系统(如淘宝网、京东商城、网上银行等)都包含大量的动态资源。

2. WWW业务信息处理系统

互联网应用为人们的工作和生活提供了很大方便。网上购物、网上订票、网上银行、滴滴打车等应用系统都采用动态资源技术开发而成。通常,两层的客户/服务器结构对于访问静态资源是比较合适的。但如果访问动态生成的网页资源,就需要采用客户/服务器/数据库的三层结构(模式),即把数据库服务器从原先的第2层中分离出来,成为独立的数据库服务器层(图457)。

图457客户/服务器/数据库三层结构(模式)

从图中可以看出,Web服务器的任务是为浏览器做资源的“收发工作”以及对静态资源(存储在本机)的查询工作。至于动态资源,则由服务器中的应用程序(或脚本程序)从数据库中取得数据后自动生成,然后由Web服务器返回给浏览器。第2层的应用程序(或脚本程序),通过数据库标准接口ODBC或JDBC直接访问第3层的数据库服务器(参见本书第6章),它不仅可以向数据库服务器发出数据访问要求,而且还可以完成事务(transaction)数据处理,不仅可以连接一个数据库,而且可以连接多个异构的数据库服务器。

动态资源的开发技术有多种,如Sun公司的JSP(Java Server Page)、微软公司的ASP(Active Server Page)、通用脚本语言PHP等。它们的基本做法是,在HTML页面中嵌入脚本语言编写的程序,用以查询和计算动态数据并构建网页,所开发的动态资源(网页)文件扩展名分别为:jsp、asp或php。此外,微软公司推出的“ASP.NET”技术,它允许使用通用的高级程序设计语言(如C/C++,Perl,Java,VB,C#等)开发Web服务器端应用程序,效率高,使用方便,所开发的资源以aspx作为其扩展名。

3. WWW业务处理流程

下面以校园网中教务信息系统的成绩查询过程为例,简单介绍Web业务处理的典型工作过程。假设该系统的Web服务器软件采用微软的IIS,动态网页使用ASP.NET技术开发而成。其工作过程大致如下:

(1) 用户在Web浏览器中输入教务信息系统的网址(URL),屏幕上显示教务系统的登录界面。

(2) 用户输入学号、口令等个人信息和查询要求,然后点击查询命令。

(3) 浏览器将输入信息封装在HTTP请求报文中,通过HTTP通信协议向服务器请求.aspx网页。

(4) Web服务器IIS按URL指出的文件位置找出.aspx网页,交给ASP.NET执行引擎进行处理(即运行其中的应用程序或脚本程序)。

(5) ASP.NET执行引擎通过ODBC或JDBC连接学生成绩数据库,并使用SQL命令查询数据库内容。

(6) 数据库服务器执行SQL查询命令,从数据库中取出该学生的成绩数据。

(7) 数据库服务器把查询得到的成绩数据回送给ASP.NET执行引擎。

(8) ASP.NET执行引擎将查询结果进行必要的处理后嵌入网页之中,生成相应的HTML网页,并交给Web服务器IIS。

(9) Web服务器将网页封装在HTTP的响应报文中,发回给浏览器。

(10) 浏览器收到HTTP报文后,提取其中的HTML网页进行解释,并在屏幕上进行显示。

上面说的仅仅是概念上的架构和大致的工作步骤,实际的WWW业务处理系统远比这复杂。以淘宝网为例,它有数以亿计的用户,商品数据、用户数据、交易数据、广告等数据量以PB计,日平均访问量数千万次,在“双11”活动高峰期间1分钟的访问量就有几千万次,支付成功的峰值数据达每秒几十万笔。

面对如此庞大的用户群和千万量级的并发访问,淘宝网单是遍布在全球的CDN缓存服务器就以万台计。为了存储和管理海量的数据,获得快速、均衡的系统响应,应对千变万化的用户需求,维持长期安全可靠稳定的运行,淘宝网的系统架构经过多次演化,设备不断扩容升级,软件持续优化更新,已建成一个高速、稳定、可靠的巨型网站。

复习题

(1) 电子邮件系统由哪些部分组成?它是如何工作的,采用哪些协议?

(2) 微信是怎样收发聊天信息的?为什么几乎人人都使用微信?

(3) 什么是网站?什么是URL?浏览器、网站、网页和HTTP协议是什么关系?

(4) 如何精确检索互联网中的信息?你用过哪几种搜索引擎和掌握哪些技巧?

(5) 什么是静态网页(资源)和动态网页(资源),它们有什么区别?

(6) Web业务处理系统的框架是怎样的?你了解它们的大致工作过程吗?

4.5互联网通信安全

在网络环境下使用计算机,信息安全是一个非常重要的问题。这是因为通信过程中可能受到多种威胁,例如信息被窃听,信息被篡改,甚至假冒通信对象和伪造信息等(图458)。

图458互联网通信过程中的安全威胁

为了确保互联网应用的信息安全,在系统和软件设计中通常会采取如下一些安全措施:

(1) 身份认证。对通信双方的身份和所传送信息的真伪进行鉴别,防止假冒。

(2) 数据加密。保护数据秘密,未经解密不会显露其内容,防止窃听。

(3) 数据完整性。保护数据不被修改,防止篡改。

(4) 访问控制。控制用户对数据资源的访问权限,防止盗窃。

(5) 防止否认。通信双方确认发送和接收了消息,防止抵赖。

上述安全措施中,数据加密技术(密码学)是最基础的技术,它应用于信息安全措施的多个方面,下面围绕密码技术进行介绍。

4.5.1对称密码和公钥密码

1. 对称密码

数据加密是信息安全的基础。加密的基本思想是改变符号的排列方式或按照某种规律进行替换。例如,假设每一个英文字母被替换成字母表中排列在其后的第3个字母,即

abcdefghijklmnopqrstuvwxyz

分别被替换为:

defghijklmnopqrstuvwxyzabc

那么,原来为“meet me after the class”的一句话,加密之后就变为“phhwphdiwhuwkhfodvv”,从而起到了保密的作用。

通常,数据加密前的原始数据(消息)称为明文,加密后的数据称为密文,将明文与密文进行相互转换的算法称为密码(cipher),研究密码及其应用的领域称为密码学或密码技术(cryptography)。平时大家在ATM机取款或访问网站和网上支付时输入的“密码”,其实是口令(password),用于身份认证,而非这里所说的密码。

密码技术中用于加密/解密且仅仅只为收发双方知道的信息称为密钥(key)。参看图459,如果收发双方使用的密钥K1与K2相同,这种密码技术称为“对称密码”,其密钥称为“共享密钥”;如果K1与K2不同,这种密码技术称为“公钥密码”,其密钥分别称为“私钥”和“公钥”。

图459数据的加密与解密

上面的例子是极其简单的替换密码,属于对称密码,K1=K2=3。加密算法和解密算法用数学公式表示如下(式中M表示小写英文字母在字母表中的序号0~25,E表示加密后的序号):

E=(M+3)mod(26);M=(E-3)mod(26)

经过多年研究,对称密码已经设计得非常复杂和强大,如果不掌握密钥仅依靠窃听得到的密文几乎是不可能解密的。WiFi路由器中WEP和WPA、WPA2所采用的都是对称密码,详情可参看本章阅读材料4.5的介绍。

对称密码的密钥越长,使用逐个试验的方法(称为暴力拆解)进行破解时就越困难。美国数据加密标准DES曾经是最有名的对称加密系统,它的密钥长度为56个二进位(共有256=7.2×1016种可能),1998年已被破解。现在普遍使用的是AES(高级加密标准),密钥长度为128位、192位甚至256位。我国国家商用密码管理办公室制定的SSF33、SM1、SM4、SM7和祖冲之密码都是对称密码算法,它们已广泛应用于门禁系统、签到系统、银行卡、一卡通等领域。

2. 公钥密码

公钥密码有一对密钥:一个称私钥,只有用户本人知道;一个称公钥,可以让其他用户知道。该加密算法具备如下数学特性:用公钥加密的消息只有使用相应的私钥才能解密;而用私钥加密的消息也只有相应的公钥才能解密。

公共密钥加密算法的基本原理如下:

(1) 选择2个大质数p和q(例如各有1024个二进位)。

(2) 计算出n=pq,z=(p-1)(q-1)。

(3) 选择一个比z小的数e,使得e和z互质(没有公因子)。

(4) 选择一个d,使得ed-1能被z整除。

(5) 于是,公钥=(n,e),私钥=(n,d)。

为了对字母表中第M个字母加密,加密算法为:C=Me(mod n),第C个字母即为加密后的字母。解密时使用的公式为:M=Cd(mod n)。下面是一个简单的例子:

设p=5,q=7,所以n=35,z=24,选择e=5(5与24互质),选择d=29(ed-1=144,可被24整除),所以公钥为(35,5),私钥为(35,29)。

如果被加密的是第12个字母(L),则它的密文是:

C=125(mod3 5)=1524832(mod 35)=17(即字母Q)

解密得到的明文为:

M=1729(mod 35)=481968572106750915091411825223071697(mod 35)

=12(即字母L)

可以看出,只要消息发送方使用接收方的公钥来加密信息,那么就只有接收方才能够读懂该消息,因为私钥只有他自己知道,他人无法解密。

公钥和私钥是一一对应的(称为“密钥对”)。由公钥加密的密文,必须使用与该公钥配对的私钥才能够解密,反之亦然。公钥和私钥之间具有非常密切的数学关系,公钥和私钥不能分别单独生成,也无法从一个推算出另外一个。

公钥密码算法比对称密码复杂得多,计算量差2个量级。公钥密码的破译与大整数的质因数分解是等价的。数论中大整数的质因子分解非常困难,但随着计算机硬件和算法的进步,密钥要求越大越好,因而实际应用中密钥的位数一直在增加。当然,密钥长度的增加会导致加密/解密速度降低,给应用带来很重的负担。

另外,公钥密码需不断寻找质数生成密钥对,质数会不会被用完呢?不需要担心。512比特的整数能够容纳的质数的数量大约为10的150次方,这个数量比整个宇宙中原子的数量还要多。

当前使用最多的公钥密码是RSA,目前认为RSA的密钥长度需要2048个二进位(相当于617位的十进制数)才有安全保障。我国国家商用密码管理办公室制定的公钥密码有SM2和SM9。SM2是我国自主设计的公钥密码,包括SM21、SM22和SM23,可分别用于数字签名和数据加密等。

3. 混合密码

现在的密码大多采用标准化技术,使密码能作为公有财产被开发、研究和利用。无论是对称密码还是公钥密码,加密/解密的算法都是公开的,需要保密的是密钥。这样做的好处是,密码算法若能经过密码破译者长期尝试破解未果而存活下来,则强度较高,另外,这也有利于制造商开发出低成本的芯片来实现算法。

密码算法和密钥分开后。密钥才是秘密的精华。因此,如何管理密钥很关键。对称密码的密钥管理和分发非常复杂。假设网络中有n个用户需要相互通信,它就需要n(n-1)/2个密钥,当n数目很大时,如何保管和分配密钥才能不泄露就很困难。

公钥密码的密钥分配和管理比较简单。因为同样是有n个用户需要相互通信,只需要n个私有密钥和n个公共密钥,数量比对称密码要少得多。

混合密码同时使用了对称密码和公钥密码两种技术来解决上述困难。其思想是:用对称密码保护需要传输的消息(处理速度比较快),用公钥密码保护会话密钥(可安全发送密钥)。所谓会话密钥是指为本次通信而生成的一次性密钥,它一般通过伪随机数生成器产生,用作对称密码的密钥使用。混合密码系统先把会话密钥用公钥密码的公钥加密传送给接收方,接收方就得到了会话密钥,然后再发送用对称密码加密的消息(密钥是会话密钥),接收方即可解密所收到的消息了。

混合密码中,会话密钥既是对称密码的密钥,同时也是公钥密码的明文。会话密钥一般比需要传输的消息短,因此即使公钥加密的计算复杂,要加密一个会话密钥也花不了多少时间。

4.5.2数字签名

1. 单向散列函数

单向散列函数(oneway hash function,以下简称散列函数)有一个输入和一个输出,其中输入称为消息(message),输出称为散列值(hash value)(图460)。单向散列函数具有如下性质:

(1) 输入消息长度可任意,计算出的散列值长度固定。

图460单向散列函数

(2) 快速。可快速计算出散列值。

(3) 抗碰撞。消息不同(哪怕只有1比特的区别,),有很高的概率散列值也不同。

(4) 单方向。即根据消息计算散列值很容易,但无法通过散列值反过来推算出原消息。

这里的消息可以是文字,也可以是图像或其他任何数据,单向散列函数都会按它们的二进制代码来计算散列值,且散列值的长度与消息的长度无关。例如SHA256单向散列函数,无论消息是1比特,还是100MB,甚至是100GB,它所计算出的散列值的长度永远是256比特(32字节)。

单向散列函数也称为哈希(Hash)函数或者杂凑函数,散列值也称为消息摘要(message digest)或消息的指纹(fingerprint)。

MD4和MD5是20世纪90年代初设计的单向散列函数,但其抗碰撞性已被攻破。现在普遍使用的是SHA2和SHA3,它们输出的散列值长度在224~512之间可选。对于暴力破解而言,散列值长度越长,其抵御暴力破解的能力也就越强。

2. 消息认证码

消息认证码(message authentication code,MAC)是一种确认消息的完整性并进行认证的技术,它是散列函数的应用之一。

消息认证码的实现方法是:① 计算消息的散列值h1;② 使用共享密钥/对称密码将h1加密得到MAC1值;③ 将消息和MAC1值一起发送给接收方。接收方进行认证的过程为:① 对收到的消息计算其散列值h2;② 使用相同的共享密钥/对称密码将h2进行加密得到MAC2值;③ MAC2与MAC1进行比较,若不一致,则通信过程中发生了错误或者消息已经被篡改。

全球大多数国家的大多数银行参加的SWIFT组织(环球同业银行金融电讯协会),银行与银行之间的交易消息,就是使用消息认证码来确认消息的完整性并对消息进行验证的。互联网中网络互连层的IP协议,为增加安全性,使用消息认证码来完成消息完整性的检验和通信双方的身份认证,这称为IPsec协议。

3. 数字签名

数字签名是通信过程中附加在消息(例如邮件、公文、网上交易数据、软件等)上并随着消息一起发送的别人无法伪造的一串代码。与日常生活中手写签名或加盖印章一样,它是发送者发送信息真实性的一个有效证明。不仅如此,数字签名还能确保消息传输的完整性,即消息传输过程中的任何修改和变化都能被发觉,而且数字签名具有不可抵赖性,因为它隐含了对发送者的身份认证,可以防止网上交易中的抵赖行为。

数字签名是借助散列函数实现的,具体步骤是:① 它通过散列函数将数据“嚼碎”,得到只有很少几行的消息摘要;② 使用消息发送人自己的私钥对摘要进行加密,得到数字签名;③ 再将数字签名添加到原始消息,并一起传送(可加密或不加密)给接收方(图461)。

图461数字签名的过程

接收方收到带有数字签名的消息之后,先使用发送方的公钥对数字签名进行解密,恢复出消息摘要,如果此过程正常,证明这确实是某人发送的消息(因为只有发送方才知道他自己的私钥,所以才能被相应公钥解密),然后再对收到的消息正文进行同样的散列处理,得到一个新的摘要,如果该摘要与解密数字签名得到的摘要相同,表示消息在传送途中没有被篡改。

上述过程只是对消息摘要进行了加密(目的是身份认证),消息本身是明文传送的。如果采用双重加密措施的话,就可达到身份验证和消息保密传输同时进行的目的。所谓双重加密,是指先用发送方的私钥加密摘要,再用接收方的公钥对已添加了数字签名的消息进行加密。接收方的处理正好与发送方相反,其过程如图462所示。

图462用公钥密码技术同时进行数字签名和消息加密

数字签名不但可以识别消息是否被篡改,还可以防止否认。除了使用散列函数,它还与公钥密码有紧密的联系,它通过将公钥密码“反过来用”(用私钥加密散列函数值)而实现防止否认。现在,世界上不少国家(包括中国)的法律已经明确规定,数字(电子)签名具有与手写签名或盖章同等的法律效力。

数字签名的应用已经越来越普遍。例如Outlook、Foxmail等电子邮件系统均可收发加密的和/或数字签名的邮件,保证电子邮件内容在传输中的机密性、完整性和不可否认性,确保电子邮件通信各方身份的真实性;又如Office软件所编写的DOC、PPT、XLS等文档,也可以通过添加数字签名来保护文档内容的真实性和完整性,防止内容被他人篡改。

互联网上有许多软件可供下载,如何保证它们确实是原开发商开发的软件而不是假冒软件呢?软件代码在传输过程中会不会被非法修改嵌入木马程序呢?解决这些问题的有效措施也是数字签名。微软公司为了保证Windows系统和用户的安全,它推出了微软认证码技术,此技术保证只有对驱动程序使用了微软的数字签名并检测通过后才允许在Windows上安装运行。Android操作系统也不允许安装没有数字签名的App。不过,数字签名只是能够检测软件是否被篡改过,而并不能保证软件本身不会做出恶意的行为。

4.5.3身份认证和公钥证书

1. 身份认证

身份认证(身份鉴别)指的是证实某人或某物(消息、文件、网站等)的真实身份与其所声称的身份是否相符的方法和技术,目的是为了防止假冒和欺诈。与日常生活中经常需要进行身份认证一样,在网络虚拟世界里更需要身份认证。

通常,用户在登录计算机或访问数据库和网盘(云存储)时,在开启电子邮箱或登录微信时,在进入办公系统或网上银行、手机银行时,都需要进行登录操作,即输入用户名和口令,其目的就是验明正身——身份认证。

身份认证必须准确快速地分辨出真伪。上述登录操作中使用的方法分成三类:① 依据某些只有被鉴别对象本人才知道的信息来进行鉴别,例如口令、手机验证码等;② 依据某些只有被鉴别对象本人才具有的信物(令牌)来进行鉴别,例如IC卡、口令牌、U盾等;③ 依据某些只有被鉴别对象本人才具有的生理和行为特征来进行鉴别,例如指纹、手纹、笔迹、声纹(话音)、虹膜或人脸等。

最简单也是最常用的身份认证方法是口令(密码)。口令的长度一般为6~8个字符,选择的原则是易记、难猜、抗分析能力强。采用口令进行身份认证的安全性并不高,因为它容易泄露、容易被猜中、容易被窃听、容易从计算机中被分析出来。因此在使用口令作为身份认证时,应采取一些防范措施,如严格限制非法登录的次数,要求口令中既有字母又有数字,口令长度至少6~8位,在口令验证中插入实时延迟,不要使用与用户特征相关的口令(如生日、电话号码等),要求口令定期修改,等等。

采用令牌进行身份认证的缺点是丢失令牌将导致他人能轻易进行假冒。借助生理特征(如指纹和人脸)进行身份认证的做法目前在智能手机上比较流行,特别是指纹和人脸识别已经得到很多用户的认可。

目前许多应用中流行双因素认证,即把上面几种做法结合起来。例如,银行的ATM柜员机就是将IC卡或磁卡(你所有的)和一个6位数的口令(你所知的)结合起来进行身份认证。网上银行则采用USB钥匙(U盾)与口令相结合的方法进行身份认证。手机支付、手机银行等应用中,除了口令、指纹之外,还需要输入对方用短信发送的一个(随机数)验证码,这种方法也有一定的安全性,但前提是手机不丢失、不被盗号。

2. 公钥证书

登录过程中进行身份认证是非常必要的,但它仅仅是第一步。用户在进入系统之后还需要与系统或其他用户进行交互,频繁地访问和传输数据,在此过程中如何保证通信双方身份的真实性呢,如何防止数据传输途中不被窃听、篡改呢?

数字签名可以帮助识别篡改和伪装,还可以防止否认,但前提是发送者的公钥必须是可信的。为此公钥本身也需要用数字签名来确保其真实性,这就是公钥证书。所谓公钥证书(简称证书),就是将公钥当作一条消息,由一个可信的第三方对其签名后所得到的公钥。

通常,公钥证书是权威的证书授权机构——CA中心(certificate authority)审核签发的,证书中至少包含有公钥、拥有者信息、有效时间以及证书颁发者的数字签名等信息。例如,开通网上银行/手机银行时提供给用户的U盾,其中就包含有公钥证书,证书颁发和使用的过程如图463所示。其中,CA中心为中国金融认证中心CFCA(其实是它在各个银行的代理机构),它要通过当面认证和身份证明确认本人身份后才发放U盾;密钥对可以由银行生成,也可以由CA中心生成;证书上的数字签名,需要使用CA中心自身的私钥,所以CA中心的公钥必须随U盾提供给客户。

图463公钥证书的发放与使用

公钥证书不仅是一个数字身份证,它还是通信过程中验证通信实体身份的工具,既证明自己的身份,也识别对方的身份;它可以对网络上传输的信息进行加密和解密,进行数字签名和签名识别,确保传输信息的机密性、完整性及交易的不可抵赖性。

人们在淘宝网上购物时,支付宝作为独立的第三方支付平台为用户提供了安全快速的网上支付,还能完成转账收款、缴费、信用卡还款等多种功能。其安全措施是多方面的,除了登录密码、支付密码、安全登录控件(对账户密码再次加密,防止被木马程序窃取)、短信验证、异常监控等措施外,使用支付宝数字证书可以进一步增强用户账户的安全性。支付宝数字证书需申请批准后才会颁发并安装在电脑或手机里,这种证书称为文件证书或软证书。网上银行的做法是将数字证书保存在U盾中,俗称为“硬证书”,这种方法更加安全。

3. 硬证书——U盾

网上银行为了用户能通过互联网进行如汇款、支付、购买金融产品等交易,必须确保交易双方身份的真实性、交易数据的保密性、交易数据的完整性(不被篡改)和交易过程的不可否认性,需要使用身份认证、数据加密、数字签名等多种安全技术。

为此银行采用U盾来存放公钥证书、密钥等关键信息。U盾看起来像一个U盘存储器,实际上它是一个嵌入式计算机。初始化的时候,它为用户生成公钥密码的1个密钥对,私钥存储于密钥区,公钥可以导出到U盾外。另外它还存储了银行CA中心颁发给用户的公钥证书,其中包含有用户姓名、身份证号、有效期、银行公钥和CA中心公钥等信息。U盾内置CPU芯片和固化在ROM中的程序(算法),可以实现随机数生成、密钥生成、数字签名和数据加解密等多种算法,这些算法在U盾内进行,保证了用户密钥不会出现在计算机中。

以某银行为例。客户在申请开通网银时,银行发给用户一个U盾,U盾中已为用户生成了一个2048位的RSA密钥对,用户再从CA中心下载本人的公钥证书至U盾中。数字证书内容包括:证书持有人的身份信息、银行公钥、发证机构的名称、证书序列号、证书有效期、数字签名、CA中心公钥等信息。以网上汇款为例,U盾工作过程大致如下:

(1) 客户在电脑上输入账号、口令登录网上银行。

(2) 登录成功后选择汇款操作,输入收款人账号、姓名、开户行名称、汇款金额等数据。

(3) 电脑提示客户插入U盾,然后输入U盾的口令,启动U盾向银行发送数字证书。

(4) 银行的CA中心验证数字证书,确认证书的有效性(在有效期内,没列入黑名单)。

(5) U盾中的嵌入式处理器使用客户的私钥对上述汇款信息进行数字签名,附加于汇款信息。

(6) U盾随机产生一个会话密钥,使用对称密码对汇款信息和数字签名进行加密,形成交易密文。

(7) U盾使用银行的公钥对会话密钥进行加密,然后随同交易密文一起发送给银行。

(8) 银行接收到信息后,使用银行自己的私钥解密得到客户端送来的会话密钥。

(9) 银行使用会话密钥对交易密文解密,得到汇款数据的明文和附加的数字签名。

(10) 银行使用客户的公钥对数字签名进行验证,若正确则进行汇款处理,否则拒绝交易,通知客户。

由上可见,通过U盾及数字证书、数字签名、交易信息加密等技术手段的使用,客户和银行双方身份的真实性,交易数据的保密性和完整性,以及交易过程的不可否认性均得到了有效保证。

U盾自行产生密钥对,密钥对产生后不允许外部访问,进行数字签名、加密/解密等运算时,凡有私钥参与的运算只在U盾芯片内部完成,全程私钥可以不出U盾介质,从而保证在安全上无懈可击。U盾本身需要口令启动运行,因此即使U盾丢失了,只要口令没有泄露,也不会产生灾难性后果。

4.5.4互联网安全通信

互联网应用大多是在WWW平台上开发的,客户端与服务器的通信使用HTTP协议来完成。为了提高通信的安全性,许多网站已采用HTTPS协议。

HTTPS协议建立在SSL/TLS基础上,它综合运用了对称密码、消息认证码、公钥密码、数字签名等密码技术,可以对通信对象进行认证,还可以确保通信报文的机密性。

1. SSL/TLS协议

HTTPS协议可理解为HTTP+SSL/TLS。通常,HTTP直接调用TCP(或UDP)传输信息。而在使用HTTPS访问服务器时,需进行身份认证,然后把消息压缩、加密之后再调用TCP(或UDP)协议进行传输(图464)。SSL/TLS协议由握手协议和TLS记录协议两部分组成。握手协议负责在客户端和服务器之间协商决定使用何种密码算法和共享密钥,并借助证书完成通信双方的认证;TLS记录协议负责消息的压缩、加密以及对数据的认证(使用对称密码和消息认证码),具体的算法和共享密钥则通过握手协议决定。

图464SSL/TLS的作用

HTTPS的通信过程大致如下(图465):

(1) 客户端向服务器发出请求HTTPS连接的信息,告知客户端可用的密码工具。

(2) 服务器收到客户端请求后,根据客户端和自身情况选定密码工具(如RSA/3DES),与服务器的证书信息(证书中包含公钥)一起发送给客户端。

(3) 客户端根据选定的密码工具,生成1个随机的会话密钥。

(4) 客户端使用收到的服务器公钥将会话密钥加密,传送给服务器。

(5) 服务器收到会话密钥后,用服务器的私钥解密出会话密钥。

此后,通信双方将利用会话密钥对请求报文和响应报文进行压缩和加密,然后交由TCP(或UDP)协议软件进行数据传输。

实际上,步骤(2)客户端收到了服务器送来的证书之后,还必须对证书的可信性进行检验,只有证书可信,才可以从证书中取出公钥用于后续的操作。同样,需要的话服务器也可以要求客户端发送公钥证书,以便检验客户端是否合法。

图465HTTPS协议的执行过程

2. 微信的通信安全

微信既要确保通信安全(防止聊天信息被窃听、篡改、重放和伪造),还要尽量减少时间延迟和手机软硬件资源的消耗,并方便添加安全强度更高的密码工具。微信采用的安全通信协议mmtls,是基于国际标准TLS1.3草案自行设计实现的,其基本思想与HTTPS相同:在用户登录微信时进行认证并协商生成1个对称加密密钥,此后即用此密钥对聊天数据进行加密传输。

微信的mmtls协议是针对微信的特定情况设计的,比TLS要简单一些。例如,它使用的公钥不是通过证书形式派发的,而是直接内置在微信客户端软件中,这样就避免了验证证书需要的时间和带宽消耗。而微信服务器中的私钥需要高度保密,泄露后有被假冒的风险,万一发生这种情况,则立即更换密钥对,并通过强制升级客户端App的方式就能完成公钥撤销及更新。

下面的叙述中会出现多个对称密钥和多个公钥密钥对,为方便理解和避免混淆,凡类似xxx_pub_key、xxx_pri_key这种名字表示是公钥密码的公钥和私钥,若仅以key结尾的如yyy_key,则是对称密码的密钥。(此外,微信协商生成对称加密密钥的方式有3种,下面仅介绍1种。)

微信登录、身份认证和协商生成对称加密密钥的过程大致如下(图466):

(1) 微信客户端(已预置有1个公钥static_svr_pub_key)生成1个公钥密码对{cli_pub_key,cli_pri_key},生成1个随机数Client_Random,使用私钥cli_pri_key和预置的公钥static_svr_pub_key按照共享密钥协商算法ECDH生成1个共享密钥SS。

(2) 微信客户端以SS作为密钥,使用对称密码对登录参数(包括账号、口令、终端设备的识别号等)进行加密得到数据A,把数据A与cli_pub_key和Client_Random一起作为HTTP的请求报文发送给微信服务器。

图466微信的安全登录过程

(3) 微信服务器(持久保存有1个私钥static_svr_pri_key)使用保存的私钥static_svr_pri_key和收到的公钥cli_pub_key按照共享密钥协商算法ECDH生成1个共享密钥SS。

(4) 服务器以SS作为密钥,使用对称密码解密收到的数据A,获得登录参数,检验登录参数的正确性。

(5) 服务器生成1个临时的公钥密码对{svr_pub_key,svr_pri_key},生成1个随机数Server_Random,使用私钥svr_pri_key和收到的公钥cli_pub_key按照共享密钥协商算法ECDH生成1个共享密钥ES。

(6) 计算svr_pub_key、Client_Random和Server_Random三者的散列函数值(算法为SHA256),然后使用私钥static_svr_pri_key进行数字签名(2个随机数参与签名可以防止服务器的临时私钥svr_pri_key泄露后遭到“中间人攻击”)。

(7) 服务器把svr_pub_key、Server_Random以及数字签名一起作为HTTP的响应报文发回给微信客户端。

(8) 微信客户端收到响应报文后,使用微信App中预置的公钥验证数字签名的正确性,准确无误后,即可用收到的svr_pub_key和自己留存的cli_pri_key按照共享密钥协商算法ECDH生成1个共享密钥ES,它与服务器计算所得的密钥ES两者完全一致。

微信登录、身份认证和协商生成对称加密密钥ES的过程到此结束,但ES还不能直接作为此后双方进行对称加密的密钥,需再使用HKDF密钥扩展算法将短密钥变长并保证其随机性,其结果才得到本次登录之后对聊天数据进行加/解密时使用的密钥,数据加/解密使用对称密码为AESGCM(即AES采用Counter模式,并带有消息认证码)。

附带说明几点。① 共享密钥协商算法ECDH,以对方的公钥和自己的私钥作为输入,计算出一个密钥Key,通信双方计算出的密钥Key是一致的,这个Key就可以作为对称密码的密钥使用;② 用于数字签名的公钥密码是椭圆曲线密码(elliptic curve cryptography, ECC),它的特点是相同加密强度所需的密钥长度比RSA短;③ 微信只对服务器做认证,防止服务器假冒,不对客户端做签名认证,因为微信App任何人都可以获得,只要程序没被修改,就是合法的客户端。

4.5.5计算机病毒防范

1. 计算机病毒

计算机信息安全中的一个特殊问题是计算机病毒。计算机病毒是指蓄意在计算机程序或数据文件中插入的具有破坏性的一些指令和程序代码,它能通过自我复制进行传播,在一定条件下被激活,从而给计算机系统造成损害甚至严重破坏。这种有破坏性的程序被人们形象地称为“计算机病毒”。与生物病毒不同的是,所有计算机病毒都是人为制造出来的,一旦扩散开来,制造者自己也很难控制。计算机病毒危害极大,已经成为一种严重的社会公害。

计算机病毒有如下几个特点:

●破坏性。凡是软件能作用到的计算机资源(包括程序、数据甚至硬件),均可能受到病毒的破坏。

●隐蔽性。大多数计算机病毒隐蔽在正常的可执行程序或数据文件里,不容易被发现。

●传染性。计算机病毒能从一个被感染的文件扩散到其他许多文件,从一台被感染的电脑扩散到其他许多电脑。特别是在网络环境下,计算机病毒通过电子邮件、网页链接、扫二维码、软件及文档下载等能迅速而广泛地进行传播,这是计算机病毒最可怕的一种特性。

●潜伏性。计算机病毒可能会长时间潜伏在合法的程序中,遇到一定条件(如到达指定时间),它就激活其破坏机制开始进行破坏活动,这称为病毒发作。

计算机病毒的危害很大。它可能破坏文件内容,造成磁盘中数据丢失;它可能删除系统中一些重要的程序,使系统无法正常工作,甚至无法启动;它可能修改或破坏系统的设置,给用户造成不可弥补的损失。

2. 木马程序

还有一种特殊的病毒——“木马”,它是一种后门程序(即远程监控程序),一旦植入用户电脑之后,它就偷偷监视用户的操作,向网络上的另一程序(黑客)发送用户所键入的数据,盗窃用户账号(如游戏账号,股票账号,网上银行账号)、密码和其他关键数据,甚至使“中马”的电脑被黑客完全操控,安全和隐私完全失去保证。

目前互联网上木马比较猖獗,它往往通过电子邮件的附件进行传播,收信人只要打开附件就会感染木马。另一种途径是软件下载,一些恶意网站以提供软件下载为名,将木马捆绑在软件安装程序上,下载后一不小心,木马就会自动安装在用户的计算机中。

3. 防范措施

现今越来越多的手机用户将许多个人信息存储在手机中,如通讯录、个人信息、日程安排、网站账号、银行账户和密码等,这些信息必然是一些别有用心者盗窃的对象,木马就是窃取用户信息的手段之一。智能手机在收发短信、彩信、微信和电子邮件,浏览网站,下载铃声,安装软件,扫描二维码时都可能感染和传播病毒。手机中毒后会无故死机、关机、资料被删,或者自动向外发送个人信息、自动拨打电话和发送邮件、短信等,甚至会损毁SIM卡和芯片等硬件。

检测与消除手机和电脑病毒最常用的方法是使用专门的杀毒软件,坚持预防和查杀相结合的原则。为了确保安全,首先要做好预防工作。例如,及时更新操作系统及应用软件,不使用来历不明的App和数据,不轻易打开来历不明的短信和电子邮件(特别是其附件),在手机和电脑上安装杀毒软件并及时更新病毒数据库,最重要的一条是:经常地及时地做好系统及关键数据的备份工作。

计算机病毒是人为制造的,也是通过人的操作传播和扩散的。因此,只有加强对计算机系统的管理,采取预防病毒入侵的措施,自觉遵守规章制度和道德规范,才能保证计算机安全可靠地工作。

复习题

(1) 什么是密码技术?对称密码与公钥密码有什么区别?

(2) 什么是散列函数,什么是数字签名?为什么数字签名可以防篡改、防否认?

(3) 身份认证有哪些方法?你使用过哪几种?

(4) U盾是什么?为什么它可以提高网上银行的安全性?

(5) 微信聊天的通信安全是如何保障的?

自测题4

一、是非题

1. 移动通信就是使用电磁波传输信息,所以移动通信系统不需要使用光纤和电缆。

2. 为了在大量终端设备之间有效地进行通信,计算机网络中普遍采用的交换技术是电路交换。

3. Web浏览器不仅可以下载信息,也可以上传信息。

4. 互联网是一个庞大的计算机网络,每一台入网的计算机必须有一个唯一的标识,该标识就是常说的URL(网址)。

二、选择题

1. 通信系统中,为了能将电或光信号进行长距离传输,需要采用的技术是()

(A) 交换技术(B) 复用技术

(C) 调制解调技术(D) 无线技术

2. 广域网是跨越很大地域范围的一种计算机网络,下面的叙述中正确的是()

(A) 广域网是一种公用计算机网,所有计算机都可自由地接入广域网

(B) 广域网主干通常都使用自建的专用通信线路,数据传输速率很高

(C) 中国教育科研网(Cernet)属于广域网

(D) 广域网像某些局域网一样采用广播方式进行通信

3. 互联网使用TCP/IP协议实现全球范围计算机网络的互连,连接在互联网上的每一台主机都有一个IP地址。下面不能作为IP地址的是哪一个?()

(A) 201.256.39.68(B) 120.34.0.18

(C) 21.18.33.48(D) 37.250.68.0

4. 以太网是目前使用最广泛的局域网,下面是关于以太网的叙述:

① 计算机中只能安装1块以太网卡

② 以太网中的每台计算机都有一个唯一的地址,发送每一帧信息时,必须包含自己的地址和接收计算机的地址,该地址就是IP地址

③ 以太网的数据传输速率通常为10~100Mbps,甚至更快

④ 有线以太网大多使用交换机组网,网络中每台计算机通过网卡和双绞线与之连接

以上叙述正确的是()

(A) 仅①和②(B) 仅③和④(C) 仅①③和④(D) ①②③和④

5. 互联网上有许多不同结构的局域网和广域网互相连接在一起,它们能相互通信并协调地进行工作的基础,是因为都采用了下面的哪种协议?()

(A) X.25(B) ATM(C) Novel(D) TCP/IP

6. 能把异构的计算机网络互相连接起来的通信控制设备是()

(A) 中继器(B) 路由器(C) 集线器(D) 调制解调器

7. WWW目前已经成为互联网上最广泛使用的一种服务。下面关于WWW服务的叙述中错误的是()

(A) WWW服务大多是按客户/服务器模式工作的。Web服务器上运行着服务器程序,用户计算机上运行的Web浏览器是客户程序

(B) Web浏览器通过超文本传输协议HTTP向服务器发出请求,用统一资源定位器URL指出需要浏览的是哪个Web服务器中的哪个网页

(C) Web浏览器软件的功能是下载、解释和显示服务器下载的HTML文档,它无法向服务器上传信息

(D) Web浏览器不仅能下载和浏览网页,而且还可执行Email、Telnet、FTP等多种互联网功能

8. ADSL是一种互联网接入技术,通过安装ADSL Modem即可实现PC用户的高速联网。下面关于ADSL的叙述中错误的是()

(A) 它利用普通的铜质电话线作为传输介质,成本较低

(B) 在上网的同时,还可接听和拨打电话,两者互不影响

(C) 用户计算机中必须有以太网卡

(D) 无论是数据的下载还是上传,传输速度都很快,至少都在1Mbps以上

9. 下面关于信息安全的叙述中,错误的是()

(A) 计算机病毒会通过下载软件和收发电子邮件进行传播

(B) 智能手机大多不使用Windows系统,所以很少感染病毒

(C) 公钥密码和对称密码各有特点,它们常常是联合使用的

(D) 数字签名的作用堪比日常使用的印章,甚至比印章的功能更强

10. 下面是智能手机中有关微信的叙述,其中正确的是()

(A) 发送成功的微信将直接抵达收信人的手机

(B) 微信的内容可以是文本、图片、视频、声音,但不能是网页

(C) 收到的微信已经保存在手机中,此后无须连接网络即可阅读

(D) 用微信发送照片每次数量是有限制的

三、填空题

1. 目前广泛使用的IP协议还是第4版,其IP地址的长度是二进制位。

2. 在互联网中,为了把大量不同的广域网、局域网进行互连,必须统一采用通信协议。

3. 某用户通过WiFi无线上网,花费了大约10分钟从网上下载了一个40MB大小的文件,其平均数据传输速率大约是kb/s。

4. 互联网提供的一种允许人们实时快速地交换消息的通信服务(如QQ、微信、Skype等)此类通信服务称为。

第4章阅读材料

4.1数字通信的应用

1. 长途电话中继通信

数字通信技术最早是被长途电话系统采用的。由于模拟信号在远距离传输时存在衰减,需要放大器来接力,而沿线每个放大器都会轻微扭曲信号并引入噪音,所以长途电话的声音品质受到很大影响。所以,20世纪60年代电话公司就使用数字通信技术来解决这个问题。模拟声音信号在需要通过中继线和长途线进行远距离传输之前,先转换为数字形式(此过程称为“数字化”或“PCM编码”,参见第5章5.3节),然后经过时分多路复用和数字调制,在中继线和长途线路上进行传输,到达接收方所在地区的交换局之后,再使用分路器把不同的话路分开,经解码器还原成模拟声音信号后,由用户线传输至接听方的电话机(图467),这样就能显著改善长途电话的通话质量。目前90%以上的中继线和长途线已经采用光纤,全面实现了数字传输技术。

图467数字通信技术在固定电话通信中的应用

2. 数字电视传输

人们收看的卫星电视也采用了数字通信技术。由于卫星通信传输的是数字信号,电视台的节目在发送到卫星去传输之前,先要把图像和伴音信号进行数字化,还要进行数据压缩(参见第5章5.4节),然后经数字调制后发射到卫星,再由卫星转发到目的地的地面接收站,地面站对接收到的信号进行解调、解码后再经由有线电视电缆送到用户家中(图468)。

图468使用人造卫星传输数字电视信号

目前我国大部分城市的有线电视也都采用了数字传输技术。不过经数字调制后的信号不是通过卫星而是通过光纤和同轴电缆进行传输,解调和解码等任务则由用户家中的机顶盒完成。数字有线电视能传输更多质量更好的电视节目,并可开展互动电视(如视频点播、频道回看等)及上网等数据服务业务。

3. 卫星通信

通信卫星的基本工作原理如图469(a)所示。从地面站1发出的无线电信号,被通信卫星天线接收后,首先在通信转发器中进行变频和功率放大,然后通过卫星的通信天线把放大后的信号重新发向地面站2,实现地面站之间的远距离通信。

图469通信卫星工作原理

通信卫星的运行轨道有两种。一种是中轨道或低轨道,在这种轨道上运行的卫星相对于地面的位置是变动的,卫星天线覆盖的区域也小,地面天线必须随时调整角度跟踪卫星;另一种是高度约为36000km的同步定点轨道,卫星的运行周期与地球自转一圈的时间相同,因此在地面上看这种卫星好似静止不动,称为同步轨道卫星。它的特点是覆盖面大,理论上三颗卫星就可以覆盖地球的几乎全部面积,可以进行24小时的全天候通信[图469(b)]。目前已有不少同步轨道卫星正在运行,实现了从卫星到车、船和飞机等移动物体的话音和数据通信,增强了空中和海上的通信和定位能力。

卫星通信的主要特点是通信距离远(最远13000km),频带宽,容量大,通信质量高,可靠稳定,但它的成本高,费用昂贵,只是为了补足海底电缆通信的不足而发展起来的。例如,海轮、飞机等远离陆地的交通工具,在无法使用有线通信时,便需要使用通信卫星。现在许多航空公司在其客机上为乘客提供互联网接入服务,就是利用通信卫星转发信号。美国SpaceX公司提出一个星链(Starlink)计划,2024年前将4425颗卫星送入太空,通过近地轨道卫星群提供覆盖全球的高速互联网接入服务。计划是否可行,还需假以时日。

4. 卫星定位

卫星通信的另一种重要应用是导航和定位,它为地面用户提供实时的全天候全球范围的导航服务,为车辆、船只、飞机、行人等确定地理位置,进行地球资源勘探、工程测量、地壳运动和变形的监测等。

以美国研制的GPS系统为例,它有31颗人造卫星在离地面12000km的高空以12小时的周期环绕地球运行,使地面上任意位置在任何时刻都可以同时观测到4颗以上的卫星。由于卫星的位置是精确可知的,地面接收机可测出与卫星的距离,再利用三维坐标系中的距离计算公式,就可以推导出GPS信号接收机所在位置的经度、纬度和高程。

GPS无须任何授权即可任意使用。它全天候工作,全球覆盖率达98%,可用于导航、定位、定速和提供时间数据,使用过程中接收机不需要发出任何信号,增加了隐蔽性。由于卫星运行轨道及卫星时钟均存在一定误差,大气对流层和电离层对信号也有影响,再加上其他人为因素,GPS定位精度通常在500~30cm,民用精度较低,军用GPS精度较高。

我国第3代北斗卫星导航系统(北斗三号,BDS)于2020年全部建成。系统由30颗卫星组成,建设过程中已连续稳定为全球提供服务一年多,可全天候、全天时提供高精度(小于5m)的定位、测速(精度0.2m/s),授时(精度10ns)服务,并具有双向收发短信(1000字内)功能,弥补了GPS的不足。支持北斗三号的22nm工艺的射频和基带电路一体化的导航定位芯片,已实现规模化生产,并广泛应用于导航仪、智能手机、穿戴式电子设备。

北斗卫星导航系统与美国的GPS、俄罗斯的格洛纳斯、欧洲的伽利略并称为全球四大卫星定位系统。人们刚开始使用卫星导航时,由于美国GPS最早投入使用,所以用得最多的就是GPS。日久习惯了一说卫星导航大家就想到GPS,手机厂商、地图软件开发商也往往用GPS来代替所有卫星导航系统。其实这些系统已经兼容并蓄了,实际应用中App的导航数据往往是多个卫星导航系统的综合结果。

5. 辅助卫星定位技术

卫星定位系统的误差主要来自两个方面,一个是大气电离层的影响,另一个是城市建筑物的影响(直射信号与反射信号抵达时间不同,造成信号干扰)。因此室外空旷处定位比较准确,在高楼林立、大楼内部或者地下停车场,误差就相对较大。

智能手机现在使用的定位技术称为AGPS(assisted GPS),即辅助卫星定位技术。AGPS将卫星定位和基站定位两种技术相结合,先通过基站大致定位自己的位置,然后把位置通知AGPS服务器,服务器根据这个位置信息,将此时经过你头顶的卫星参数(哪几颗、频率、位置、仰角等信息)反馈给手机,手机的GPS软件就可以快速搜索卫星,很快即可定位。

基站定位的原理与雷达有相似之处,它根据目标物对电磁波的反射,进行空间位置测算。城市中,一部手机通常会被多个基站的信号所覆盖。手机会对不同基站的下行信号进行“测量”,得到各个基站的信号到达时间或时间差。根据测量结果,结合位置服务器中基站的坐标位置,就能够计算出手机的坐标值(图470)。这就是即使没有打开卫星定位开关,手机仍然能进行定位的原理。

同样,使用WiFi(无线路由器)也能帮助定位,因为每个WiFi有一个全球唯一的MAC地址,并且无线路由器在一段时间内一般不会移动。手机开启WiFi后,可以搜索到周边无线路由器的信号,获取它们的MAC地址和信号强度,参考位置服务器中的数据计算出手机所在位置。

图470辅助GPS定位(AGPS)

4.2有关5G若干问题的问答

1. 为什么5G的速度那么快,比U盘、硬盘还快吗?

数据传输速度是5G移动通信的关键性能指标之一,国际电联定义了2个速度指标:理论下载速率峰值达到10~20Gb/s,用户体验速率达到100Mb/s,两者均比4G高10倍。其中用户体验速率指真实网络环境下用户可获得的最低传输速率,而不是理论值。达到如此高的传输速率需要使用多种技术,主要有:

(1) 使用频率更高的频段并增加载波的带宽。5G的载波带宽为100MHz,在毫米波频段时可达400MHz,远大于2G时代的200kHz、3G的5MHz、4G的20MHz带宽。载波带宽就像是高速公路的宽度,带宽越大,道路越宽,同时能跑的车辆就越多,单位时间内货物(比特)运输量就越大。

(2) 载波聚合。同时用多个载波进行传输,这些载波可以服务于不同的用户,也可以同时服务于一个用户来提高单用户的峰值速率。当n个单载波服务一个用户时,用户能获得的频带宽度就是单载波带宽的n倍,这样,用户体验到的速度也能提高n倍。

(3) 大规模MIMO技术。基站和手机都安装了多根天线,多根天线发送,多根天线接收,这可以非常有效地提升数据传输速度(图471)。理想情况下,上下行天线数目为M时,信道容量(最大数据传输速度)可以提升M倍。5G非独立组网方式中,一般采用16TR、32TR和64TR的配置,独立组网使用的天线数目更多。

图471MIMO技术(2×2)

(4) 先进的调制、复用技术和信息帧格式等对数据传输速率的提高提供了有力支持。

5G下载速率峰值可达10Gb/s,相当于1250MB/s,已经超过硬盘的SATA接口和Micro SD卡的eMMC接口或UFS接口的速率(参看第2章2.6节)。那么是不是手机App就不再需要预先下载安装,而可以在需要运行时直接从相关服务器中下载到手机内存启动运行就行了呢?这样人们就无须经常对App进行升级了;浏览器、视频播放器等也不再需要先把网页/图片/音频/视频等缓存到本地硬盘再进行渲染/显示/播放了。

问题是国际电联定义的下载速率峰值10Gbp/s是理想情况下的期望值,而且它只是终端(5G手机)接入网络后终端与基站之间的传输速率(空口速率)。该速率与许多因素有关,如同时接入的用户数目多少,终端与基站的距离,室内还是室外,运动状态还是静止状态,手机的接入能力,天气好坏,有无障碍物等等。因此国际电联提出的另一个指标是要求5G用户的平均体验速率能达到100Mb/s,即用户在浏览网页、观看视频或网络下载时数据速率能达到12.5MB/s。实际上该速率不仅与空口速率有关,还与运营商网络间互连互通的带宽、互联网国际出口的带宽、网站服务器的接入带宽和处理能力、网站采用的上网加速技术、用户终端配置等诸多因素都有关系,所以,5G取代硬盘/SD卡目前还不现实。

2. 5G通信使用的是不是毫米波,对身体有害吗?

正文中说过,移动通信使用微波进行数据传输。微波是直线传播,传输距离与频率(波长)有关。频率低,衰减小,传播距离长;频率高,衰减大,绕射能力差,传播距离短。

最开始在1G和2G时代,主要是使用800~900MHz左右的频段,属于低频频段,频率低,穿透能力较好,单个基站能覆盖几千米。后来用户数量激增,800~900MHz频率资源不够用,于是就新增了1700~1900MHz的频段。虽然覆盖范围小了,但缓解了容量问题。

3G对传输速率有更高的需求,加上低频段被2G占用,所以,不得不使用1800~2000MHz,甚至2000MHz以上的频段。覆盖效果明显不如2G网络。所以3G网络建成之后,在野外偏远地区,或者室内角落位置,往往只有2G信号,没有3G信号。

4G网络使用的频段更高一些,甚至到了2600MHz左右,基站覆盖范围更小(1km内),室内信号更差。据统计,80%以上的数据流量都来自室内。所以出现了微基站,用于场馆、会所人群密集地方的信号覆盖,确保大家都能上网。

对于5G通信,如果没有低频的广覆盖,实现连续覆盖都难,还怎么实现万物互连和高可靠低时延?而如果没有高频的大带宽,又怎能实现闪电般的传输速度?

300~3000MHz的商用无线频段穿透性好,覆盖范围大,已经相当拥挤。频率3000MHz(波长10cm)以上的频段,特别是频率高于30000MHz(波长小于1cm,就是毫米波)的频段则资源很丰富。然而,毫米波在传播过程中会遭遇非常严重的衰减,一般只能用于视距通信,无法承受遮挡,室内情况尤为严重。毫米波的利用有很大挑战性,国内外一直在积极探索研究之中。

鉴于上述情况,国际电联把5G的频谱资源分成两个域:FR1和FR2。FR1(又称为Sub6)频率范围从450~6000MHz(现在的2G,3G和4G使用的频段全部包括在内);FR2(又称为mmWave)频率范围从24.25~52.6GHz,其中大部分属于毫米波的范围。

我国工信部分配给三大运营商用于5G试验的频率有两个频段:3300~3600MHz和4800~5000MHz,波长在6~9cm之间,均属于FR1,还不是毫米波。至于24.75~27.5GHz、37~42.5GHz 的毫米波频段如何分配还在征集意见中。

那么5G使用的电磁波频率提高了,特别是开通毫米波频段之后,电磁波辐射对人体有害吗?

辐射就是一个向外传送能量的过程。电磁波产生的辐射,是电磁辐射。频率高于3000GHz(波长小于100nm)的电磁辐射称为电离辐射。紫外线是电离辐射和非电离辐射的分界线。比紫外线频率更高的,例如宇宙射线、X射线、γ射线,都属于电离辐射。而热辐射、紫外线、电波(微波、短波、中波、长波),都属于非电离辐射。

真正会对人体造成伤害的是电离辐射。一定强度的持续的电离辐射会导致人体细胞损伤累积及细胞功能异常。核爆炸、核泄漏事故、CT、X射线等会产生电离辐射,剂量大,就会造成伤害,剂量小,就可以被合理利用。

5G通信使用的频率离电离辐射还差很远,属于非电离辐射。至于基站的辐射强度,通常室外的宏基站功率在200W左右,离基站10m距离时辐射强度16μW/cm2,低于国家标准(40μW/cm2)和国外同类标准(美国是600μW/cm2)。

其实,与基站相比,手机对人体的辐射还稍大一些。因为手机的天线辐射功率虽然仅几mW,但离人体距离更近。手机电磁辐射还有一个特点,就是信号越弱,辐射反而越强。当基站覆盖信号较弱时,为保证通信正常,手机会加大自身天线的功率,辐射也随之增加(但仍在安全范围以内),耗电量也随之增多。这就是为什么乘坐高铁时或室内信号较差时,手机电量消耗较快的原因。

3. 5G基站会入户吗?WiFi会不会淘汰?

上面说过,随着1G、2G、3G、4G的进展,移动通信使用的电磁波频率越来越高。因为频率越高,可使用的频率资源越丰富,频率资源越丰富,能实现的传输速率就越快。

但是,频率越高,传播中的衰减也越大,因此5G传输距离大幅缩短,基站覆盖能力显著减小。覆盖同一个区域,需要的5G基站数量将数倍于4G,建设成本相应提高。

5G网络将从两个方面来解决这个问题。一方面是提高基站(特别是天线)的性能,另方面是增加基站类型,改进基站部署。

5G初期使用频率为3.3~3.6GHz、4.8~5GHz(波长6~9cm),此后为28GHz(10.7mm)。电磁波波长越短使用的天线也越短[天线的长度约为波长的1/2,参看图472(a)],5G的天线长度只有几厘米甚至几毫米,因此5G通信采用了大规模MIMO(mMIMO)技术,即多根天线发送,多根天线接收。5G基站使用的天线不是按根来计算,而是几十甚至上百根天线,它们组成了一个“天线阵列”。

5G基站不仅采用天线阵列,而且通过自动调节各个天线信号发射的相位,使电磁波波束变窄,精准地指向它所服务的手机,并根据手机的移动而不断调整方向。多个天线服务于同一手机时,能有效提高信号的强度[波束赋形,图472(b)]。波束与波束之间相互不会干扰,因而在同一空间中提供了更多的通信链路,大大提高了基站的通信容量(空间复用技术)。

图472大规模MIMO和波束赋形

5G使用的电磁波频率高、穿透性却比较差,而用户对速度的要求反而更高。因此基站将分为两类:宏基站和微基站。室外那种大铁塔的是宏基站,一般可以覆盖数百米,支持的用户数目几百人。另一类是微基站,覆盖范围十几米至几十米,可支持数人至数十人。安置在灯杆、建筑物外墙上的称为微站,悬挂在室内天花板或墙壁上的称为皮站或飞站。宏站主要负责广域覆盖,皮站和飞站专门用来进行室内的深度覆盖(毫米波)。

目前家用WiFi都基于光纤宽带接入,网速100~200Mbps,好像并不比5G速度高,但它的潜力大,目前正在向千兆接入发展。而从使用便捷性来看,5G不分室内室外可以随时随地上网,不必像使用WiFi那样到处找网络问密码,安全还得不到保证。如果5G通信计费也改为不限流量包月使用,那么5G对WiFi还是有威胁的。

4. 当前在建的5G网是否“伪5G”?5G建成后2G、3G、4G网是否关闭?

5G网是分步建设的。初期先以NSA(非独立)方式建网,即在现有4G网基础上进行改造,增加一些5G设备,使用户可以体验到5G的超高网速,又不浪费现有设备。后期再以SA(独立)方式组网,建设一套全新的5G网络,包括基站和核心网。

建设5G网的初期,5G主要用于覆盖上网需求大的用户密集城区,覆盖还不连片,也没有5G的核心网,因此需要4G提供基本服务,5G只是锦上添花。此时,手机采用双连接的方式同时连接4G和5G基站。在有5G信号覆盖的区域,由5G基站经由4G核心网接入互联网,没有5G信号覆盖的区域,所有流量均由4G处理。这样可避免对已有4G核心网做过多的改动,又发挥了5G基站速度快能力强的优势。

NSA组网方式需要的投资不算多,有效地实现了5G的高速功能。但是,NSA组网方式没有5G核心网,不能敏捷高效地创建“网络切片”以应对不同行业的多样化5G应用;不支持能减轻核心网和传输网负担和减少网络时延的“边缘计算”功能,限制了工业自动控制、自动驾驶等低时延大带宽的5G应用;此外,5G核心网比4G核心网具有更强的加密功能,更全面的安全防护,开放性也更好。

总之,NSA组网比SA组网有相当差距,但NSA组网可以利用现有的设备,节省投资,快速部署5G并开发短期的应用。目前国内外5G建设均以NSA组网起步。我国2019年5G建设开始加速,截至年底全国已建成5G(宏)基站十多万座,大多是在现有2G/3G/4G基站的基础上新增5G设备而成。许多一、二线城市的5G信号覆盖目前已初具规模。

5G的SA(独立)组网虽然是大势所趋,但5G信号频率高(波长短),传输衰减大,一个5G基站的覆盖范围(约300米)比4G基站(约1千米)要小很多,覆盖全国所有区域需要建设的5G基站比4G多很多(全国4G基站有300多万个),基站建设费用又高(每个需数十万元),仅上千万个5G基站的建设费用就是天文数字,还有传输网的扩容改造,核心网的建设,应用场景的开发,运营和维护成本等,因此独立组网的5G不是很快就能建成的。

正因为如此,一段时间内3G/4G网将主要负责郊外或复杂环境的信号覆盖,5G网则负责覆盖人口密集区域,和谐共存,不会由5G一统天下。即使2G网络,由于其超强的覆盖能力,穿透力也强,在一些农村、车库、电梯等没有3G/4G信号的地方,却会有2G信号;再加上有些4G/3G的VoLTE还不如人意,需回落到2G网才能打电话,所以2G暂时也不会退网。

5. 5G手机与4G手机有何差别,4G手机能升级为5G手机吗?

5G是一次通信技术革命,绝非在4G基础上修修补补,即使是现在最先进的4G手机,也无法满足5G通信的要求,不能连接5G网络使用。

第2章曾经介绍,手机硬件由很多部件组成,如液晶触摸屏、摄像头、麦克风/扬声器、CPU、GPU、存储器、传感器等,这些都没有4G、5G之分。5G和非5G手机之间的区别主要是基带处理器和天线。

基带处理器也称为基带芯片或基带电路,简称为基带。它用于完成基带信号的调制解调、分合、编解码等功能。手机支持什么样的网络(GSM、CDMA、WCDMA、4G、5G等)、能达到多高的传输速率等,都是由基带处理器决定的。基带处理器的作用类似于台式计算机使用的“网卡”或“猫”(调制解调器),手机打电话、发短信、上网、微信聊天等,都是上层的App下发指令给基带处理器,由基带处理器执行,然后在手机和基站之间建立一条通路,话音、短信或微信数据都通过这个通路进行传输。

其实,基带处理器不仅仅是基带部分,它还包括射频(辐射到空间的电磁频率)电路,后者负责射频信号收发、频率合成、功率放大等功能,两者同在一个芯片里,物理上合一,统称为基带处理器(美国高通公司称为MODEM)。基带处理器可以是一块独立的芯片,但大多会整合在手机的主处理芯片中,成为SoC的一部分(图473)。

图473基带处理器与手机芯片

目前能制造5G基带芯片的厂家仅有高通、华为、联发科、三星和紫光展锐。2019年它们都发布了5G基带处理器产品,这些基带处理器都采用7nm工艺制成,既支持NSA组网也支持SA组网(双模)。除了连接能力(能达到的最高上行速率和最高下行速率)互有高下之外,它们还有两个区别:一是能否支持毫米波,二是基带是否外挂。目前全球使用毫米波的运营商还寥寥无几,而支持毫米波后功耗和体积增加,使集成到SoC难度变大,若芯片外挂,又影响整机性能。

市场上已有多款5G手机销售,如果仅从通信功能角度考虑,选购5G手机需要关注:是否支持双模(NSA和SA),基带芯片是集成还是外挂,连接能力(最高下行和上行速率),功耗大小,支持的制式(5G/4G/3G/2G)和频段是否完整,等等。当然,手机的存储容量、摄影/摄像功能、屏幕、音视频功能、价格等也必须综合考虑,关键是能否满足用户需求,适用即可。

4.3以太网的工作原理

1. 码型变换

以太网中计算机之间的距离并不很长,所以数字信号不需要经过调制就可在传输介质上直接进行传输(称为“基带传输”)。但由于原始的数字信号大多含有直流成分或不便于同步,不适合直接传输,必须将它们作码型变换,使原来的数字信号(不归零制码)变换成适合于在信道中传输的基带信号——曼彻斯特编码(图474)。

信源(宿)不归零制码

码型

变换器曼彻斯特编码

信道曼彻斯特编码

码型变

换器不归零制码

信宿(源)

图474以太网的码型转换

码型变换的要求是:既要使传输码型的高频成分和低频成分都尽量地少,又要使码流中“1”和“0”的统计概率各占1/2左右,还要使得码流中包含有时钟频率成分,且变换器应简单可靠。图 475 是以太网上传输信息时所采用的曼彻斯特编码的例子。信源输出的二进制信号是不归零制码(NRZ),它用低电平表示“0”,高电平表示“1”。缺点是难以分辨一位的结束和另一位的开始,且当信号中有一连串的“0”或一连串的“1”时,信号直流分量将增加,容易引起传输错误。经过码型变换后得到“曼彻斯特码”(也称相位编码),其特点是每一位中间都有一个跳变,从低电平跳到高电平表示“0”,从高跳到低表示“1”。这就克服了NRZ码的不足,电平的跳变既可表示数据,又可作为时钟进行信号同步,且平均直流电平为“0”。

这种做法在传输代码的同时,也将时钟同步信号一起传输到对方,具有自同步能力和良好的抗干扰性能,曼彻斯特编码常用于以太网信息传输。

图475NRZ码和曼彻斯特编码

2. 载波侦听多路访问(CSMA/CD)

以太网中的数据是组织成帧进行传输的。数据帧的格式如图476所示,其中8个字节的同步码用于标识一个帧的开始,MAC地址用6个字节(48个二进位)表示,有效载荷(发送的数据)长度在46字节到1500字节之间,CRC是循环冗余检验码。

图476以太网数据帧的格式

在传统的总线结构以太网中,多台计算机共享一条总线,因此计算机相互通信时,必须保证在任何时候只有一台计算机在总线上发送数据帧,为此采用了“带冲突检测的载波侦听多路访问”(CSMA/CD)方法。载波侦听是指计算机在发送帧之前必须先对总线侦听,判断总线是否处于空闲状态。如果空闲(没有载波),就进行发送;如果忙(有载波),则等待一些时间后再重试。此外,每台计算机在发送帧的期间,还必须检测是否有冲突发生(即是否有其他计算机也发送了帧),若有冲突,则都立即停止发送,然后在随机等待了一段时间之后再重试。这样,就能够实现多台计算机无冲突地使用总线发送信息了。

那么发送的数据帧如何被目的计算机所接收呢?由于总线结构以太网采用了广播方式进行通信,即一台计算机发送的帧可以送达总线上的所有其他计算机,而连接在总线上的所有计算机时时都在检测总线所传输的数据帧中的接收地址,若某计算机网卡的MAC地址与帧中的接收地址相同,则该计算机的网卡就把数据帧接收下来进行处理。上述数据帧的发送和接收都由网卡独立完成,CPU在此期间仍可执行其他任务。

目前广泛使用的快速以太网(100BASET、1000BASET等),为了最大限度地减少传输冲突,提高网络速度和效率,使用以太网交换机(switch hub)进行组网。这样,以太网的拓扑结构就成了星型结构,一般不会发生传输冲突,不再需要使用CSMA/CD机制,但为了保持技术的向下兼容,这些网卡仍然支持CSMA/CD协议。

3. 网卡的结构与组成

网卡用于将PC、手机或服务器连接到以太网,在操作系统协议软件的控制下,实现与网络中其他计算机相互通信。它的主要任务是将计算机需要发送的数据分解为适当大小的帧,然后向网络发送出去。网卡的任务是双重的:它既负责将宿主计算机上的数据帧送入网络,又负责接收网络上其他计算机发来的数据帧,解包后再将数据交给CPU处理。

以太网卡由几个部分组成[图477(a)]:发送器和接收器;冲突检测部件;发送和接收控制部件;曼彻斯特编码/解码器;以太网控制部件等。这些部件互相配合,实现以太网的CSMA/CD协议。现在,组成网卡的上述电路和部件都已集成在主板南桥芯片或手机SOC芯片中了。

图477以太网卡、网线和RJ45接口

网卡通过双绞线、光纤或者无线电波把计算机、手机等与网络连接起来。使用光纤连接网络通常用于服务器;台式PC和笔记本电脑大多使用双绞线连接网络。百兆以太网的网线使用4芯线缆(5类线,一对线用于发送、另一对线用于接收),千兆以太网需使用8芯线缆(6类线)。网线的插头[图477(b),俗称“水晶头”]插入电脑(或集线器/交换机)上的RJ45插口。网卡上有发光二极管用来指示网络连接是否正常,是否正在进行数据传输。

4. 无线局域网卡

无线局域网卡(简称无线网卡)通过无线电波发送和接收信息,图477(a)中的收/发器通常由扩频通信电路和天线两部分组成。与有线以太网卡不同,无线局域网网卡采用载波监听/冲突避免机制(CSMA/CA协议),每一个用户送出数据包前,先监听接入点AP的状态,发现AP空闲后再等待一段随机的时间后依然没有人使用,才送出数据。由于每个设备采用的随机等待时间不同,所以可以减少发生冲突的概率,提高网络的工作效率。当计算机要接收信息时,扩频通信电路通过天线接收信息,若发现接收到的信号有错,则通过天线给对方发送出错信息,通知发送端重新发送。

无线局域网的接入点AP通常能支持802.11a/b/g/n/ac等多种协议,具有“向下兼容”的特性,但这也带来一个问题。即在使用802.11n协议的AP覆盖范围中,只要有一个使用802.11b网卡的用户接入WiFi,此AP就会自动将速率下调为802.11b的速率,导致此AP覆盖下的所有用户网络速度都会下降,这是需要注意的。

4.4路由器的功能、分类和无线路由器

1. 路由器的工作过程

正文中已经讲过,使用路由器将两个或多个计算机网络进行互连时,参加互连的每一个网络都把该路由器看作属于本网络的一个成员。因此,不但网络中的每一台计算机应分配一个IP地址,而且连接到该网络的路由器端口也应该分配一个IP地址。路由器连接着多个物理网络,它是多个网络的成员,因此每个路由器应分配有多个IP地址。需要注意的是,路由器端口的IP地址必须与相连子网的IP地址具有相同的网络号。本章4.3.2节的图443是三个互连的物理网络和两个路由器的IP地址的例子。

路由器不仅能根据路由表选择合适的路由传送IP报文,而且还要能连接异构的网络,在异构网络之间正确地传输IP数据报,确保各种不同物理网络的无缝连接。

互联网传输数据时,路由器的任务是将一个网络中源计算机发出的IP数据报转发到另一个网络中的目的计算机或下一个路由器。这一过程是很复杂的,因为不同类型物理网络使用的帧格式和编址方案各不相同。当路由器收到一个IP数据报后,它需要完成:路由选择、帧格式的转换、IP数据报的转发等任务。以图443为例,假设以太网中的计算机A要把一个IP数据报发给FDDI网络中的计算机B,其过程大致如下:

(1) 因为目的地计算机B在FDDI网中,所以源计算机必须先把IP数据报送到路由器R1(连接以太网的端口IP地址为131.108.99.5)。IP数据报

(2) 源计算机A与路由器R1都连接在同一个以太网中,它们进行数据通信必须使用以太网MAC地址,因此应将计算机A(131.108.99.2)与路由器R1的IP地址(131.108.99.5)分别翻译为以太网MAC地址,这个过程称为“地址解析”。地址解析由计算机A完成。

(3) 计算机A需发送的IP数据报与以太网数据帧的格式不同,不能在以太网上传输,因此必须将它“封装”成以太网的帧格式。

以太网帧头部IP数据报

(4) 在以太网中将数据帧按以太网MAC地址发送至路由器R1,路由器收到这一帧之后,从帧中取出IP数据报。IP数据报

(5) 路由器R1通过查找路由表知道,计算机B就在与其相连的FDDI网络中,于是经过地址解析,

把路由器R1连接到FDDI的端口IP地址(223.240.129.2)和计算机B的IP地址(223.240.129.5)分别转换为FDDI网络的MAC地址(由路由器R1进行地址解析)。

(6) 路由器R1将收到的IP数据报封装成为FDDI的帧格式。FDDI帧头部IP数据报

(7) 在FDDI网络中,路由器把信息帧按FDDI的MAC地址发送至目的地计算机B,目的地计算机收到这一帧信息后,从帧中取出IP数据报,传输任务到此完成。IP数据报

2. 路由器的功能和类型

路由器看起来有点像交换机,但两者的主要区别是路由器转发的是IP数据报,是在网络互连层进行的。而交换机(如以太网交换机)转发的是以太网数据帧,是在低层(网络接口和硬件层)进行的。而且路由器能连接异构的物理网络,确保IP数据报能在两个不同网络之间进行传输。另外,路由器还具有对IP数据报进行过滤、复用、加密、压缩等处理功能,以及流量控制、配置管理、性能管理等多种管理功能。

路由器是网络互连的“交通枢纽”和“交警”,千千万万个路由器架起了整个互联网。路由器的处理速度是网络通信的主要瓶颈之一,其可靠性则直接影响着网络互连的质量。因此,无论在园区网、地区网乃至整个互联网中,路由器起着举足轻重的作用。

现在,各种不同档次的路由器已经成为实现网络内部互连、骨干网之间互连以及骨干网与接入网互连的关键设备。按照路由器在网络中的位置和作用,路由器可分为两类:核心路由器(core router)和边界路由器(edge router)。核心路由器一般安装在数据中心、电信公司或ISP的机房内。这些路由器通过高速宽带通信线路将许多网络进行互连。核心路由器按其性能和功能又有企业级路由器、电信级路由器等不同档次。边界路由器也称为接入路由器,主要用于将小型网络接入到某个ISP的接入网。如用于家庭或办公室接入互联网的SOHO路由器,带有无线AP的无线路由器,网吧专用路由器等。

3. 家用无线路由器

无线路由器是一种将以太网交换机、无线AP和路由器功能集成在一起的产品,目前流行的无线路由器(例如DLINK、TPLINK、TENDA等)一般都可以与ADSL MODEM、cable MODEM或光猫等直接相连,它有2~4个RJ45插口,用于连接PC电脑,其无线接入点AP则可无线连接笔记本电脑、智能手机等多台便携设备,实现家庭计算机网络的Internet连接共享(图435)。

无线路由器是一个典型的嵌入式计算机系统,所使用的CPU大多采用ARM内核,它包含有一个以太网交换机芯片,专门处理以太局域网内部节点相互间的信息传输。路由器中有多种存储器,用以存储路由器操作系统、路由协议软件、用户配置信息、路由信息等。

无线路由器不仅具备无线AP的所有功能,还支持如DHCP、VPN(虚拟专网)、防火墙、数据加密网络地址转换(network address translation,NAT)功能,以支持局域网用户的Internet连接共享。它还内置有虚拟拨号软件,可以存储拨号上网所使用的用户名和密码,实现自动拨号功能。

无线路由器还支持DHCP(动态主机配置协议)功能。它运行DHCP服务器软件,监听着局域网中连接的客户机(手机、笔记本、电脑等)有无DHCP请求。当设置为“自动获取IP地址”的客户机开机时,会向路由器中的DHCP服务器发出请求,后者就为客户机分配配置参数(包括IP地址、子网掩码、默认网关、DNS服务器等数据)。IP地址分配方式通常有如下3种:

 自动分配方式:局域网中的PC或手机第一次从DHCP服务器分配到IP地址之后,就永远使用这个地址。例如TPLINK无线路由器一般是从192.168.1.100开始进行分配,直至192.168.1.254为止。

 手工分配方式:从192.168.1.2~192.168.1.99为手工分配的IP地址,用户可自行选择。

 动态分配方式:PC或手机从DHCP服务器分配到的IP地址,并非永久使用,只要租约到期,客户机就要释放这个IP地址,供DHCP服务器分配给其他设备使用。

4.5无线路由器的信息安全

无线路由器是将办公室和家庭计算机网接入互联网的关键设备,使用越来越普及,为实现家庭计算机组网和移动通信提供了很大方便。但无线通信容易被窃听,如何确保通信和数据安全就成为非常重要的一个问题。

1. 接入安全

以家用无线路由器为例,为了防止他人非法接入,通常有以下3种安全措施:

(1) 关闭SSID广播。这样,其他无线用户就搜索不到路由器的网络标识(SSID),可以防止无关用户进行连接(“蹭网”)。当然,用户自己也必须以手工方式输入正确的SSID和密码才能进行连接!(注:如果这样还是不能连接的话,可以点开无线网络的TCP/IP设置,输入路由器的IP地址、网关和DNS。通常网关和DNS都与路由器的IP地址相同)。

(2) 使用“MAC地址过滤”来限制连接。在无线路由器的“MAC地址过滤”页面中,输入允许(或禁止)连接到无线路由器的计算机或移动终端的MAC地址,不在列表中的其他设备则禁止(或允许)连接。允许连接的设备还可以使用“单独密钥”功能为指定的某个MAC地址设置一个密钥,这个密钥就只有拥有该MAC地址的设备可以使用,其他MAC地址的设备无效,因而增加了安全性。

(3) 除了上述两种方法之外,还可以对申请接入的设备进行身份认证。身份认证是借助加密算法的密钥自动进行的,大致过程是:① PC或手机向无线路由器发送接入请求;② 路由器向PC或手机发回一个明文;③ PC或手机利用预存的密钥对明文加密,发回数据包给路由器;④ 无线路由器对数据包进行解密,检测明文的正确性,并决定是否同意接入。

2. 加密算法选择

无线路由器通常提供有几种不同安全等级的加密算法,管理员可选择一种用作无线接入时的身份认证,同时也用于在无线传输时对数据进行加密。下面是这几种算法的简单介绍。

(1) WEP(wired equivalent privacy)

WEP的中文名是有线等效加密,又称无线加密协议(wireless encryption protocol),它的设计意图是要提供与传统有线局域网相当的私密性,并因此而命名。WEP是IEEE 802.11协议的一部分,它使用的加密算法是RC4(Rivest Cipher 4),并采用CRC32(循环冗余检验)保证数据的正确性。

RC4是美国人Ron Rivest在1987年设计的密钥长度可变的加密算法。加密和解密使用相同的密钥,因此它属于对称加密算法。RC4的密钥长度可变范围是1~255个字节。该算法由伪随机数发生器和“异或”运算两部分组成(图478)。用户给定一个密钥(key)后,伪随机数发生器以密钥和初始向量(IV)做种子产生一组伪随机数,它们一个字节一个字节地与输入数据进行异或运算,得到输出数据,在此过程中伪随机数顺序会不断变化。加密时输入的是明文,输出的是密文;解密时输入的是密文,输出的是明文。

图478RC4加(解)密算法示意图

许多无线路由器为WEP密钥的长度提供了2种选择:64位或128位。选择密钥长度为64位时,用户需输入10个十六进制字符(0~9、A~F)或5个ASCII字符,此时密钥为40位二进制数,初始向量为24位;选择密钥长度为128位时,用户需输入26个十六进制字符或13个ASCII字符,此时密钥为104位,初始向量仍为24位。

密码专家已经发现了WEP的弱点,有些公开的工具能在三分钟内破解一个用WEP保护的网络。因此WEP在2003年就被WPA算法所淘汰,接着又出现了改进的WPA2算法。不过,WEP虽然有些弱点,但对于一般的非专业人员也足以起到保密作用了。

(2) WPA(WiFi protected access)

WPA的中文名字为WiFi网络安全访问,它是一种无线局域网安全性增强解决方案。为了能沿用原先支持WEP的硬件网卡,WPA的加密算法仍然是RC4,但采用了128位的密钥和一个48位的初始向量来进行加密。在使用过程中它可以动态地改变密钥,再加上使用了更长的初始向量,以及用保证数据不被篡改的Michael算法替代了原先的CRC(循环冗余检验)算法,因而安全性比WEP有了显著提高。

(3) WPA2

由于WPA仍然采用比较薄弱的RC4加密算法,所以黑客只要监听到足够的数据包,借助计算机强大的计算能力就可能破解网络。因此,WPA只是无线局域网安全领域的一个过渡方案。据称,有人已研发出可以在十多分钟内攻破WPA加密系统的方法,甚至还出现了“WiFi蹭网器”。

WPA2是WPA的改进,它经由WiFi联盟验证,已经纳入IEEE 802.11i协议标准。在WPA2中,RC4算法被更先进的AES算法所取代,Michael算法也由更安全的CCMP信息认证码所取代。

实际应用中,不同的用户和不同的应用对安全有不同的要求。例如,企业用户需要很高的安全保护(企业级),否则可能会泄露重要的商业机密;而家庭用户往往只是使用网络来浏览网页、收发Email、打印和共享文件等,对安全的要求相对较低。为了满足不同用户的需要,WPA和WPA2都规定了两种应用模式:

 企业模式(WPA/WPA2),这种模式需采用802.1x认证服务器给每个用户分配不同的密钥,以保护无线网络通信安全。

 个人模式(WPAPSK / WPA2PSK),也称为预共享密钥模式,它不需要使用专门的认证服务器,仅要求在无线路由器(或AP)以及所有无线终端上预先输入一个相同的密钥。

无论是企业模式还是个人模式,上述密钥(可以是8~63个ASCII字符,也可以是64个16进制字符)仅仅用于身份认证过程,而不用于传输数据时的加密。数据加密的密钥是在身份认证成功后动态生成的,WPA/WPA2将保证“一户一密”,不像WEP那样全网共享一个加密密钥,因此大大地提高了无线网络的安全性。

最后还有一个容易被忽视的问题,即关于路由器本身的口令。家用无线路由器出厂时常常使用admin/admin作为默认的用户名和口令,供用户登录路由器进行配置操作。但不少用户没有及时修改默认口令,因而黑客能轻而易举地登录路由器并“做手脚”,例如修改路由器中DNS(域名解析服务)的配置,当用户浏览如银行或购物网站时,路由器就会自动指向仿冒的欺诈网站,造成个人重要信息的泄露。因此,用户最好仔细检查无线路由器的DNS地址,如果出现66.102.*.*和207.254.*.*这两段地址范围内的地址,则说明路由器可能已被黑客攻破,用户应立即复位无线路由器的出厂设置,同时修改路由器的用户名和口令。

第5章数字媒体处理及应用

第5章数字媒体处理及应用

所有计算机应用都是通过计算机对信息进行处理来完成的。数值、文字、声音、图像等都是人们用以表达和传递信息的媒体,它们是计算机程序处理的对象,了解它们在计算机中怎样表示、处理和存储,对于理解和掌握计算机的原理与应用有重要的作用。有关数值信息的基本知识已在第1章做了介绍。本章首先介绍文字信息的处理,然后再对图像、声音和视频信息的处理与应用分别进行介绍。

5.1文本与文本处理

人类社会的知识、文化和历史大部分是以文字形式记录和传播的,人们日常的工作、学习和生活也离不开文字。因此,文字信息的计算机处理是信息处理的一个主要方面,也是各种计算机应用的重要基础。

文字信息在计算机中称为“文本”(text),它由一系列字符所组成。文本是基于特定字符集的一个字符流,每个字符均使用二进制编码表示。文本是计算机中最常用的一种数字媒体,手机短信、微信聊天、电子邮件、Word文档等都属于文本。

文本在计算机中的处理过程包括文本准备(例如汉字的输入)、文本编辑、文本处理、文本存储与传输、文本展现(如打印和显示)等(图51)。根据应用场合的不同,各个处理环节的内容和要求可能有很大的差别。

图51文本在计算机中的处理

5.1.1字符的编码

组成文本的基本元素是字符。字符无处不在,文件名、网址、微信号等也都是由字符组成的。与数值信息一样,为便于在不同的系统之间进行交换,字符必须采用标准的二进位编码表示。但字符与国家、地区的文化有关,情况非常复杂。本节介绍西文字符与汉字字符的常用编码标准。

1. 西文字符的编码

目前计算机中使用得最广泛的西文字符集及其编码是ASCII字符集和ASCII码,即

美国信息交换标准码,有关介绍可参看第1章1.2.3节。

2. 汉字的编码

中文文本的基本组成单位是汉字。我国汉字的总数超过6万字,数量大,字形复杂,同音字多,异体字多,因而汉字在计算机内部的表示、处理、传输与交换以及汉字的输入、输出等都比西文复杂。

(1) GB 2312汉字编码

为了适应计算机处理汉字信息的需要,1981年我国颁布了第一个国家标准——《信息交换用汉字编码字符集·基本集》(GB 2312)。该标准选出6763个常用汉字和682个非汉字图形字符,为每个字符规定了标准代码,以便在不同计算机系统之间进行中文文本的交换。

GB 2312国标字符集由三部分组成。第一部分是字母、数字和各种符号,包括拉丁字母、俄文字母、日文平假名字母与片假名字母、希腊字母、汉语拼音字母等共682个(统称为图形符号);第二部分为一级常用汉字,共3755个,按汉语拼音排列;第三部分为二级常用汉字,共3008个,按偏旁部首排列。

GB 2312的所有字符在计算机内部都采用2个字节(16个二进位)来表示,每个字节的最高位均规定为1(图52)。这种高位均为l的双字节汉字编码就称为GB 2312汉字的“机内码”(又称“内码”),以区别于西文字符的ASCII编码(字节的最高位为0)。例如,“南”字的GB 2312内码是11000100 11001111(用十六进制表示为C4CF)。因此在中西文混合使用的场合,汉字与西文字母很容易区别,方便了计算机的处理。

(2) GBK汉字内码扩充规范

GB 2312只有6763个汉字,均为简体字,在人名、地名的处理上经常不够使用,

尤其是在古籍整理方面有很大缺憾。为此,迫切需要有包含繁体字在内的更多汉字的标准字符集。

×××××××第1字节1×××××××第2字节

图52GB 2312汉字在计算机中的表示

GBK是我国在1995年发布的,全称为《汉字内码扩展规范》。它一共有21003个汉字和883个图形符号,除了GB 2312中的全部汉字和符号之外,还收录了包括繁体字在内的大量汉字和符号,例如“计算机”等繁体汉字和“冃冄円冇鎔”等生僻的汉字。

GBK汉字在计算机内也使用双字节表示。为了与GB 2312保持向下兼容,所有与GB 2312相同的字符,其编码也保持相同;新增加的符号和汉字则给予新的编码,它们的第1字节最高位必须为“1”,第2字节的最高位可以是1,也可以是“0”(图53)。

1×××××××第1字节××××××××第2字节

图53GBK汉字在计算机中的表示

3. UCS/Unicode与GB 18030编码

ASCII编码和GBK编码都是面向一个国家或地区使用的。全球有数以百计的不同语言文字,为了国际交流方便,国际标准化组织(ISO)制定了一个将全世界现代书面文字使用的所有字母和符号集中进行统一编码的标准,称为UCS标准字符集。UCS字符集中包含了世界各国和地区使用的154套书写符号共约14.4万个字符(2020年3月),其中有中、日、韩、越统一的共约12万个表意文字。

UCS对应的工业标准称为Unicode,它的具体编码方案有多种,如UTF8(采用8位、16位、24位或32位的可变长编码)和UTF16(采用16位或32位的可变长编码)已在主流操作系统、编程语言以及许多App(如网页、微信、电子邮件等)中使用。表51是4种常用字符编码标准的比较。

为了既能与国际标准UCS/Unicode接轨,又能保护已有的大量中文电子信息资源,进入21世纪后我国发布并执行新的国家标准:GB 180302005信息技术中文编码字符集。GB 18030标准完全支持UCS/Unicode字符集,与GB 2312和GBK保持向下兼容(双字节编码),ASCII字符采用单字节编码,部分中日韩(CJK)统一表意文字采用4字节编码。实际上它可以看作为UCS/Unicode的另一种编码方案。

表51汉字的4种常用编码标准的比较

编码标准“南京Nanjing”的编码表示(16进制)特点

GB 2312/GBK

(ANSI)C4CF BEA9 4E 61 6E 6A 69 6E 67(汉字使用

GBK编码,

双字节表示,ASCII字符用单字节表示)兼容已有的大量中文信息资源,但不支持多国文字,仅能支持我国使用的汉字

UTF8E58D97 E4BAAC 4E 61 6E 6A 69 6E 67(汉字使用3字节表示,ASCII字符用单字节表示)支持多国文字,有一定容错能力,适合网络传输,得到几乎所有互联网协议的支持。安卓系统使用UTF8

UTF16LE

(小尾序)5753 AC4E 4E00 6100 6E00 6A00 6900 6E00 6700(汉字用双字节或4字节表示,ASCII字符用双字节表示)

UTF16BE

(大尾序)5357 4EAC 004E 0061 006E 006A 0069 006E 0067 (汉字用双字节或4字节表示,ASCII字符用双字节表示,但字节顺序与UTF16LE相反)支持多国文字,便于进行字符串的运算处理,适合计算机内部处理和存储。Windows操作系统使用UTF16LE, iOS和Mac OS X操作系统使用UTF16BE

上述编码标准各有特点。目前PC电脑和智能手机都支持包括汉字在内的多种语言文字的处理,但不同操作系统、不同编程语言和不同App所默认采用的字符集及其编码并不一致,系统进行处理时往往需要进行字符编码的识别和转换。好在这些均是由系统和App自动完成的,用户一般不用理会。

5.1.2文字符号的输入

使用计算机制作一个文本,首先要向计算机输入该文本所包含的字符信息,然后进行编辑、排版和其他处理。输入字符的方法有两类:人工输入和自动识别输入(图54)。人工输入即通过键盘、手写或语音输入方式输入字符,其速度较慢、成本较高,不太适合需要大批量输入文字资料的档案管理和图书情报等应用领域,也不适合在需要快速输入信息的场合(如银行、食堂、公交、超市等)使用。自动识别输入指的是将纸(或磁、电、光等)介质上的文字符号通过识别技术自动转换为字符的二进制代码输入计算机,这种方式速度快、效率高,但技术相对复杂一些。

图54字符信息的输入方法

1. 键盘输入

电子计算机最早由西方国家研制开发,它使用的字符输入工具——键盘是面向西文设计的,输入西文字符非常方便。但汉字是大字符集,字数很多,无法使每个汉字与西文键盘上的键一一对应,因此必须使用一个键或几个键的组合来表示汉字,这种使用西文字符(键)组合输入汉字的方案就称为汉字的“键盘输入编码”。

汉字键盘输入编码方案大体分成四类:① 数字编码,这是使用一串数字来表示汉字的编码方法,例如电报码、区位码等,它们难以记忆,很少使用。② 字音编码,这是一种基于汉语拼音的编码方法,简单易学,特别是增加了模糊音设置和拼音容错等功能后很适合非专业人员使用,如微软拼音、紫光华宇拼音输入、搜狗输入法、微软拼音等。缺点是同音字引起的重码多,需辅以选择操作,不知道汉字的读音时难以使用。③ 字形编码,这是将汉字的字形分解归类按笔画和部首进行输入的编码方法,重码少、输入速度较快,但编码规则不易掌握,五笔字型法和郑码属于这一类。④ 形音编码,它吸取了字音编码和字形编码的优点,使编码规则适当简化,重码减少,但掌握起来也不容易。

现在广泛采用的汉字键盘输入编码方案一般都具有下列特点:易学习、易记忆、效率高(平均击键次数较少)、重码少,有些还充分利用计算机容量大速度快的能力,发挥计算机的统计、学习与联想功能,允许以词、短语或句子作为输入单位,受到了用户的欢迎。

汉字的输入编码与汉字的内码(用于机内表示、存储和交换)是不同范畴的概念,不要把它们混淆起来。

2. 非击键方式的文字符号输入方法

使用键盘向计算机输入文字符号并不适合所有用户,也不能适应各种不同的应用场合和不同的数码设备。为此,人们研究开发了其他各种输入方法,如直接在触摸屏上(或使用专门的书写板和笔),通过书写的方式输入,或使用麦克风通过口述的方式输入,或者使用数码相机、扫描仪把印刷或手写的文字符号数字化并识别后输入计算机,或者通过相应设备对条形码、磁卡、IC卡/射频卡(RFID)等信息载体进行识别输入。有关这些方法的基本原理、应用和发展情况,可参看阅读材料5.1。

5.1.3文本的分类

文本是文字及符号为主的一种数字媒体。使用计算机制作的数字文本(也叫电子文本),若根据它们是否具有排版格式来分,可分为简单文本和丰富格式文本两大类;若根据文本内容的组织方式来分,可以分为线性文本和超文本两大类。

1. 简单文本(纯文本)

简单文本由一连串表达正文内容的字符(包括汉字)的编码所组成,它几乎不包含任何格式信息和结构信息。这种文本通常也称为纯文本,其文件的后缀名是txt。Windows附件中的“记事本”程序所编辑处理的文本就是简单文本,用户可任选表51中4种不同编码之一保存所编辑的txt文件。

简单文本呈现为一种线性结构,写作和阅读均按顺序进行。简单文本的文件体积小,通用性好,几乎所有数字设备、所有文字处理软件都能识别和处理,但是它没有字体、字号的变化,不能插入图片、表格,也不能建立超链接。

手机短消息使用的就是简单文本。它采用UTF16BE编码,70个汉字、字母或数字(共140字节)作为1条短信计费;纯英文的短信则采用7位的ASCII码(删去最高位的“0”),160个字母、数字和符号(共140字节)作为1条短信计费。

2. 丰富格式文本

为了使文本能以整齐、醒目、美观、大方的形式展现给用户,人们还需要对纯文本进行必要的加工。例如对文字所使用的字体、字号、颜色、文字走向等进行设定,确定页面的大小、文本在页面中的位置及布局,将文本分栏、分页等,这个过程称为文本的格式化,俗称为“排版”。经过排版处理后,纯文本中就增加了许多格式控制和结构说明信息,这样的文本称为“丰富格式文本”。Word、WPS、Adobe Acrobat、Adobe Dreamweaver以及支持MIME协议的电子邮件客户端等软件都可以编辑处理丰富格式文本。

此外,许多应用场合还要求在文本中插入图、表、公式,甚至声音和视频。这种由文字、图像、声音、视频等多种信息媒体复合而成的文本也是一种丰富格式文本,若其中包含有声音或者视频,有时也称为多媒体文档。

需要注意,不同软件制作的丰富格式文本其文件扩展名各不相同(如doc、docx、html、pdf等),一般并不兼容,需要使用不同的App进行处理。

3. 超文本

传统的纸质文本其内容的组织是线性(顺序)的,因而读者一般是按顺序先读第1页(从第一

行读到最后一行),再读第2页、第3页……这就是线性文本。

超文本(hypertext)概念是对传统文本的一种扩展。除了传统的顺序阅读方式之外,它还可以通过文本内部所设置的链接进行跳转、导航、回溯等操作,实现对文本内容更为方便的访问。

超文本采用网状结构来组织信息,文本中的各个部分按照其内容的逻辑关系互相链接。WWW网页就是典型的超文本结构,图55是它的示意图。网页(A,B,C,D等)中包含了一些指向其他网页的超链(hyperlink),用于实现网页阅读时的快速跳转。超链是有向的,起点位置称为链源(HTML文档中称为锚),它可以是网页中的一个标题、一句句子、一个关键词、一幅画、一个图标等;目的地(目标)称为链宿,它可以是另一个网页(在本网站或其他网站),也可以是同一网页中的其他部分。链源(锚)和链宿使用HTML标记语言指出。微信中除了纯粹的图片、视频、语音、文字外,其他许多都是使用超链链接的网页。

图55网页的超文本结构

超文本也属于丰富格式文本,使用“写字板”程序和Word、FrontPage、Dreamweaver等软件可以制作、编辑和浏览超文本文档。

5.1.4文本编辑、排版与处理

使用计算机作为文本制作的工具,比传统的手写、打字或铅字排版等具有许多无可比拟的优点,它不但

提高了文本的质量与制作效率,降低了文本制作成本,而且便于保存、复制、管理、传输及

检索。为改善文本的外观质量,在文本制作过程中,除了将文本中的文字、图片、表格等输入计算机之外,还必须对它们进行必要的编辑、排版和处理。

1. 文本编辑和排版

在许多应用场合,特别是为了出版发行和传播的需要,文本必须满足正确、清晰、美观、便于使用等要求。为此,对文本进行必要的编辑和排版是必不可少的。

以文本编辑与排版为主要功能的软件称为文字处理软件(如我国的WPS Office、Microsoft Word、Adobe Acrobat、OpenOffice Writer等),它们都具有丰富的文本编辑与排版功能,包括:

● 对字、词、句、段落进行添加、删除、修改等操作。

● 文字的格式处理:设置字体、字号、字的排列方向、间距、颜色、效果等。

● 段落的格式处理:设置行距、段间距、段缩进、对称方式等。

● 表格制作、绘制图形和编辑图像。

● 定义超链接。

● 页面布局(排版):设置页边距、每页行列数、分栏、页眉、页脚、插图位置等。

为了提高编辑和排版操作的效率,文字处理软件有许多专门设计的功能,例如样式、预定义模板等。随着互联网应用的普及,现在文字处理软件大多都能做到文档的实时云同步,以支持移动办公和多人在线协作,还能提供文档的安全保障,如云端文件加密存储、自动备份、权限管理及文档溯源等。

2. 文本处理

如果说文本编辑、排版主要是解决文本的外观问题,这里的“文本处理”强调的是对文本中所含文字的形、音、义等进行分析和处理。文本处理可以在字、词(短语)、句子、篇章

等不同的层面上进行。例如,在字、词(短语)层面上进行的处理有字数统计、自动分词、

词性标注、词频统计、词语排序、词语错误检测、自动建立索引、汉字简/繁体转换、大陆/台湾

编码及术语转换等;在句子层面上进行的处理有语法检查、文本朗读(语音合成)、文种转换(如中英互译)等;在篇章基础上进行的处理有关键词提取、文摘生成、文本分类、文本检

索等。此外,为了文本的信息安全和有效地进行存储或传输,还可以对文本进行加密、压缩、添加数字水印等处

理。

上面列举的文本处理功能,比较简单一些的在文字处理软件(如Word、WPS)中已经实现。而复杂

一些的如机器翻译、文摘生成、文稿综合、自动写作等功能涉及人工智能中的自然语言理解的范畴,有些正初步实现,有些仍处于研究开发阶段。

3. 常用文字处理软件

许多场合需要使用计算机制作与处理文本,不同的应用有不同的要求,通常使用不同的软件来完成任务。例如,互联网上微博、微信软件和收发电子邮件的程序都内嵌了简单的文本编辑器,它们提供了文字输入和简单的编辑功能;而面向办公应用的文字处理软件,为了保证文本制作的高效率、高质量,同时又要面向广大的非专业用户,使软件好学好用,因此这一类文字处理软件既要功能丰富多样,又要操作简单方便。

目前,PC上使用最多的是MS Office、Adobe Acrobat和我国金山公司自行开发的WPS Office套件,特别是WPS Office,它能覆盖Windows、Linux、Android、iOS等多个平台,全面兼容微软Office 文档格式(doc/docx/xls/xlsx/ppt/pptx等)。具有占用内存少、运行速度快、体积小巧、支持阅读和输出PDF文件等特点,已在智能手机、平板电脑等移动设备上获得广泛使用。

为了使计算机制作的文本能发布、交换和长期保存,Adobe Systems公司在1993年就开发了一种用于电子文档交换的文件格式PDF(portable document format,意为“便携式文档格式”),它将文字、字形、颜色、排版格式、图形、图像、超链、声音和视频等信息都封装在一个文件中,既适合网络传输,也适合印刷出版。它既是跨平台的(所有操作系统都支持),又是一个开放标准,可免费使用。2007年12月已成为ISO 32000国际标准,2009年被批准为我国用于长期保存的电子文档格式的国家标准。

撰写、编辑、阅读和管理PDF文档的软件是美国Adobe公司的Adobe Acrobat。仅用于阅读PDF文档的阅读器软件Adobe Reader是免费软件,可从Adobe公司网站上下载。其他公司开发的可在Windows、Linux/UNIX或iOS、安卓上运行的PDF相关软件很多,有些是商业软件,有些是自由软件。我国金山软件公司的WPS Office既能读写Microsoft Office 的文件格式,还能将文件转换成PDF格式进行保存。

5.1.5文本的展现

数字电子文本主要有两种展现方式:打印输出和在屏幕显示。

存放在计算机存储器中的文本是二进制编码形式,因此,不论是打印还是屏幕显示,都包含了复杂的文本展现过程。

文本展现的大致过程是:首先要对文本的格式描述进行解释,然后将字符和图、表生成相应的映像(bitmap,点阵图像),最后再将点阵图像传送到显示器或打印机输出。承担上述文本展现任务的软件称为文本阅读器。它们可以嵌入在文字处理软件、邮件客户端或网页浏览器中,如微软的Word、Outlook和IE浏览器等;也可以是独立的软件,如Adobe公司的Adobe Reader。

市场上有一种称为“电子书阅读器”的数据产品,它是一种用于阅读txt、doc、html、pdf等电子文档的专用设备,大多采用电子墨水显示屏,被动发光,持续工作时间很长,阅读效果接近纸质图书,还可使用WiFi联网,颇受用户欢迎。

数字电子文本虽然有许多优点,但阅读时需要使用专门的设备和软件,容易被修改和复制,版权保护和信息安全不易保证。此外,限于当前显示器的技术水

平,阅读电子文本时人们的信息感知效率较低,容易疲劳。这些都是有待进一步解决的问题。

复习题

(1) 汉字在计算机中是如何表示的?汉字编码标准有几种?Unicode是什么,它与汉字编码有什么关系?

(2) 你常用的汉字键盘输入方法是哪一种?试分析其优缺点,提出改进意见。

(3) 数字电子文本有哪些类型?文件扩展名分别是什么?

(4) 除了编辑排版功能之外,中文版的Word还具有哪些中文文本处理功能?

(5) 怎样阅读数字电子文本?你熟悉PDF文档和Adobe Reader软件吗?

5.2图像与图形

计算机中的“图”按其生成方法可以分为两类:一类是从现实世界中通过扫描仪、数码相机等设备获取的,它们称为取样图像,也称为点阵图像或位图图像(bitmap),以下简称图像(image);另一类是使用计算机绘制而成的,它们称为矢量图形(vector graphics)或简称图形(graphics)。本节先介绍图像,然后再介绍计算机图形。

5.2.1数字图像的获取

1. 图像的数字化

从现实世界获得数字图像的过程称为图像的获取,例如用扫描仪对印刷品、照片进行扫描,用数码相机或智能手机对景物进行拍摄,通过B超、X光机对人体组织进行检查等。图像获取的过程需使用光学、超声波或X射线等生成景物的映像(模拟信号)并进行数字化,其处理步骤大体分为四步(图56):

(1) 扫描。将景物映像划分为M×N个网格,每个网格称为一个取样点。这样,景物映像就转换为M×N个取样点所组成的一个阵列。

(2) 分色。将每个取样点的颜色分解成红、绿、蓝三个基色(R、G、B),如果不需要生成彩色图像(即生成灰度图像或黑白图像),则不必进行分色。

(3) 取样。测量每个取样点的每个分量(基色)的亮度(也称为“灰度”)值。

(4) 量化。对取样点每个分量的亮度值进行A/D转换,即把模拟量使用数字量(一般

是8~12位的二进制正整数)来表示。

图56图像的数字化过程

2. 数字图像获取设备

图像获取所使用的设备通称为图像获取设备,其功能是将实际景物的映像进行数字化并输入到计算机内。2D图像获取设备(如扫描仪、数码相机、智能手机等)只能对图片或景物的2D投影进行数字化,3D扫描仪

则能获取包括深度信息在内的3D景物的信息。关于扫描仪和数码相机的工作原理,参见第2章2.4.2节的介绍。

5.2.2图像的表示与压缩编码

1. 图像的表示方法与主要参数

从取样图像的获取过程可以知道,一幅图像由M(列)×N(行)个取样点组

成,每个取样点是组成取样图像的基本单位,称为像素(pel)。彩色

图像的像素通常由红(R)、绿(G)、蓝(B)3个分量组成(图57),灰度图像的像素只有一个亮度分量。

图57彩色图像的表示

由此可知,取样图像在计算机中的表示方法是:灰度图像用一个矩阵来表示;彩色图像用一组(一般是3个)矩阵来表示,每个矩阵称为一个位平面。矩阵的行数称为图像的垂直分辨率,列数称为图像的水平分辨率,矩阵中的元素是像素颜色分量的亮度值,通常它是一个8~12位的二进制整数。

在计算机中存储的每一幅取样图像,除了像素数据之外,至少还必须给出如下一些关于该图像的描述信息(称为图像的参数或属性):

(1) 图像大小,也称为图像分辨率,用水平分辨率×垂直分辨率表示。例如800×600,1024×768等。日常所说的全高清图像(FHD)其分辨率为1920×1080左右,现在流行的超高清(Ultra HD)显示器(或4K电视机),可不失真地显示分辨率为3840×2160的图像,像素数目是FHD的大约4倍。

(2) 位平面数目,即像素的颜色分量的数目。黑白或灰度图像只有一个位平面,彩色图像有3个或更多的位平面。

(3) 像素深度,指每个像素用多少个二进位来表示,它是像素的所有颜色分量的二进位数目之和。像素深度决定了该图像可表示的不同颜色(或不同亮度)的最大数目。例如单色图像,若其像素深度是8位,则不同亮度(灰度)等级的总数为28=256。又如R、G、B三基色组成的彩色图像,若3个分量中的像素位数都是8位,则该图像的像素深度为24,图像中不同颜色的数目最多为28+8+8=224,约1600多万种,这称为真彩色图像。

(4) 颜色空间类型,指彩色图像所使用的颜色描述方法,也叫颜色模型。通常,显示器使用的是RGB(红、绿、蓝)模型,彩色打印机使用的是CMYK(青、品红、黄、黑)模型,图像编辑软件使用HSB(色彩、饱和度、亮度)模型。从理论上讲,这些颜色模型都可以相互转换。

2. 图像的压缩编码

一幅未经数据压缩的图像其数据量可按下面的公式进行计算(以字节为单位):

图像数据量=图像水平分辨率×图像垂直分辨率×像素深度/8

表52列出了若干不同参数的取样图像在压缩前的数据量。从表中可以看出,即使是中低分辨率的数字图像,其数据量也比较大。为了节省存储数字图像时所需要的存储器容量,降低存储成本,也为了提高图像在互联网应用中的传输速度,尽可能地压缩图像的数据量是非常必要的。以使用4G手机拍照为例,假设数据传输速率为3Mb/s,则理想情况下,传输一幅分辨率为1920×1080的真彩色(1600万种颜色)未经压缩的手机截屏图片大约需要16s,如果图像的数据量压缩10倍(数据压缩比为10∶1),那么传输时间仅需1.6s左右。

表52几种常用格式图像的数据量

(压缩前的近似值)

颜色数目

图像大小(像素数目)8位(256色)16位(65536色)24位(1600万色)

1024×768(78.6万)

768KB

1.5MB

2.25MB

1280×1024(130万)

1.25MB

2.5MB

3.75MB

1920×1080(200万)

2MB

4MB

6MB

4603×3456(1600万)

16MB

32MB

48MB

数字图像中的数据相关性很强,或者说,数据的冗余度很大,因此对数字图像进行大幅度数据压缩是完全可能的。再加上人眼的视觉有一定的局限性,即使压缩后的图像有一些失真,只要限制在人眼无法察觉的误差范围之内,也是允许的。

数据压缩可分成两种类型,一种是无损压缩,另一种是有损压缩。无损压缩是指使用压缩后的数据还原图像(也称为解压缩)时,重建的图像与原始图像完全相同,没有一点误差。例如行程长度编码(RLE)、哈夫曼(Huffman)编码等。有损压缩是指使用压缩后的数据还原图像时,重建的图像与原始图像虽有一些误差,但不影响人们对图像含义的正确理解和使用。

图像压缩的方法很多,不同方法适合不同的应用。为了得到较高的数据压缩比,数字图像的压缩一般都采用有损压缩,如变换编码、矢

量编码等。评价一种压缩编码方法的优劣主要看三个方面:压缩比(压缩倍数)的大小、重建图像的质

量(有损压缩时)及压缩算法的复杂程度。

微信中发送照片(JPEG图像)时,由于照片原图的分辨率一般都很高(例如 4603×3456,几个MB),如不特别指出以原图发送,微信App都把照片分辨率降低到屏幕的分辨率(例如1920×1080)再进行发送,这样就可以把每张照片的数据量控制在几百KB,这是节省通信流量和缩短传输时间的一种有效方法。

为了便于在不同的系统中交换图像数据,ISO和IEC两个国际机构联合制定了一个静止图像数据压缩编码的国际标准,称为JPEG标准,目前已在互联网和数码相机中得到广泛应用。

3. 常用图像文件格式

图像是一种普遍使用的数字媒体,有着广泛的应用。多年来不同公司开发了许多图像处理软件,因而出现了多种不同的图像文件格式。表53给出了目前互联网网页和PC、智能手机常用的几种图像文件的格式。

表53常用图像文件格式

名称压缩编码方法性质典型应用开发公司(组织)

BMP不压缩无损Windows应用程序Microsoft

RAW不压缩或无损压缩无损数码相机、手机

TIFRLE,LZW(字典编码)无损桌面出版Aldus,Adobe

(续表)

名称压缩编码方法性质典型应用开发公司(组织)

GIFLZW无损网页制作,微信CompuServe

JPEGDCT(离散余弦变换),

Huffman编码大多为有损互联网,数码相机等

ISO/IEC

PNGLZ77派生的压缩算法无损互联网等W3C

WebPVP8视频的帧内编码方法有损/无损互联网网页Google

BMP是微软公司在Windows操作系统下使用的一种图像文件格式,每个文件存放一幅图像,通常不进行数据压缩(也可以使用行程长度编码RLE进行无损压缩)。它是一种通用的图像文件格式,几乎所有图像处理软件都能支持BMP文件。

RAW图像文件格式在数码相机中使用较多,其含义是“未经加工的原生图像”。它不但包含了CMOS或者CCD感光器件将捕捉到的光信号转化为数字信号的未经任何处理的像素数据,而且还记录了拍摄时相机的一些设置参数,如ISO的设置、快门速度、光圈大小、锐度、对比度、饱和度、色温、白平衡等。与JPEG相比,虽然图像数据量要大得多,但它更有利于后期处理,以得到专业应用的高质量图片。

TIF(或TIFF)图像文件格式大多使用于扫描仪和桌面出版,能支持多种压缩方法和多种不同类型的图像,有许多应用软件支持这种文件格式。

GIF是目前互联网上广泛使用的一种图像文件格式,它的颜色数目不超过256色,数据量特别小,适合互联网传输。由于颜色数目有限,GIF适用于在色彩要求不高的应用场合作为插图、剪贴画等使用。GIF格式能够支持透明背景,具有在屏幕上渐进显示的功能。尤为突出的是,它可以将多张图像保存在同一个文件中,显示时按预先规定的时间间隔顺序进行播放,产生动画的效果,因而在网页制作和微信的动态表情中使用。

JPEG(或JPG)是图像文件的一种国际标准,也是最常用的图像文件格式之一。它采用有损压缩算法,算法复杂度适中,既可用硬件实现,也可用软件实现,压缩比可灵活调整(一般为8~10)。它特别适合处理各种连续色调的彩色或灰度图像,在互联网和数码相机中被广泛采用。

PNG是20世纪90年代中期由W3C开发的一种图像文件格式,它既保留了GIF文件的特性,又增加了许多GIF文件格式所没有的功能,例如支持每个像素为48比特的真彩色图像,支持每个像素为16比特的灰度图像,可为灰度图像和真彩色图像添加α通道等。PNG图像文件格式主要在互联网上使用。

WebP(发音“weppy”)是Google公司推出的图像文件格式。由于互联网上传输的信息65%都是图片,为了减少数据量、加快传输速度,WebP格式的优点是压缩率比JPEG和PNG显著提高,网页的平均加载时间大约可以减少1/3。不足之处是WebP格式图像的编码时间比JPEG格式图像要长得多,且目前尚未像JPEG格式那样得到各种软硬件厂商的广泛支持。

5.2.3数字图像处理与应用

1. 数字图像处理

使用计算机对照相机、摄像机、传真机、扫描仪、医用CT机、X光机等设备获取的图像,进行去噪、增强、复原、分割、提取特征、压缩、存储、检索等操作处理,称为数字图像处理。一般来讲,数字图像处理的主要目的有以下几个方面:

(1) 提高图像的视感质量。如调整图像的亮度和彩色,对图像进行几何变换,包括特技或效果处理等,以改善图像的质量。

(2) 图像复原与重建。如对航拍的照片进行图像姿态校正,对拍摄多年的老照片消除图像退化的影响,或者使用多个一维投影重建图像,目的是产生一个等价于理想成像系统所获得的图像。

(3) 图像分析与识别。提取图像中的某些特征或特殊信息,如频域特征、灰度(或颜色)特征、边界特征、区域特征、纹理特征、形状特征、拓扑特征以及关系结构等,通过分析,进而对图像进行分类、识别、理解或解释。

(4) 图像数据的变换、编码和数据压缩,使能更有效地进行图像的存储和传输。

(5) 图像的存储、管理、检索,以及图像内容与知识产权的保护等。

最近几年,由于人工智能技术特别是机器学习在图像处理中得到了很好的应用,图像中对象(目标)的分类、定位、检测和分割等取得了显著进展,识别率和准确率明显提高(图58),其成果有些已经可以实用。例如人脸识别已经在安保、电子商务、金融等领域中得到了初步应用;微信小程序“识花君”可以识别用户拍摄的花草,向用户介绍其名称、价值、生长环境等知识,其过程是小程序将照片上传至服务器,服务器软件先对图像(花草)进行分类、识别,然后再进行信息检索,并将检索结果(花草名称、形态特征、价值等)返回至用户手机。

图58图像对象的分类、定位、检测和分割

2. 图像处理软件

图像处理软件与应用领域有密切的关系,具有很强的专业性,如遥感图像处理软件、医学图像处理软件等。普通用户使用较多的是面向办公、出版与社交的图像处理软件,也称为图像修饰或图像编辑软件,它们能支持多种不同的图像文件格式,提供图像编辑处理功能,可制作出生动形象的图像。其中美国Adobe公司的PhotoShop最为有名,它集图像扫描、编辑、绘图、图像合成及图像输出等多种功能于一体。其主要功能包括:

(1) 图像的显示控制。如图像的缩放、图像的全屏显示等。

(2) 图像区域的选择。区域可以是矩形、正方形、椭圆形、圆形以及它们组合产生的规则区域,也可以是使用套索或魔术棒工具选择的不规则区域。

(3) 图像的编辑操作。如调整图像尺寸(分辨率),校正图像色彩,图像旋转与翻转,图像的变形,以及图像的增强(如图像的柔化、锐化、加光/遮光)等。

(4) 图像的滤镜操作。用于弥补图像的缺憾,清除原图像上的灰尘、划痕、色沉着和网点等(图59),也可用于产生一些特技效果。

(a) 处理前图片上有划痕(b) 处理后划痕被清除

图59图像的滤镜操作

(5) 绘图功能。用户利用绘图工具可以徒手绘画。绘图工具包括各种不同类型的画笔,直线、曲线、矩形、多边形、椭圆等基本形状,以及各种不同的色彩、底纹和图案等。

(6) 文字编辑功能。用于在图片上添加文字说明,其字形、字号、文字的路径等都可以任意设定

,并产生与图像融为一体的特殊效果。

(7) 图层操作。允许用户将一幅图像分为若干层,每一层均可分别进行独立的编辑处理。利用图层操作(如图层复制、图层激活、图层显示、图层排列、图层关联等)可以大大提高图像编辑制作的灵活性(图510)。

(a) 背景图案

(b) 前景图

(c) 复合后的图像

图510图层操作

其他常用的图像编辑处理软件还有多种,如Windows操作系统附件中的画图软件(paint)和映像软件(imaging for windows),Office中的Microsoft Photo Editor和Picture Manager软件,Ulead System公司的PhotoImpact软件,ACD System公司的ACDSee32等。它们各有自己的特点和用户对象,这里不再细述。

智能手机和平板电脑一般都自带了照片编辑软件,但功能较简单,仅能进行裁剪、修改大小等一些基本的操作。现在使用智能手机摄影已广为流行,用户对照片编辑软件的要求也越来越高。因而手机版的图像处理软件已经相当丰富,例如Photoshop Touch for phone不仅具备Photoshop的图层功能,而且还提供滤镜操作,同时它还支持云服务,用户通过智能手机创建的项目无论是在智能手机、平板电脑,还是在PC上都可以随时随地使用Photoshop进行编辑处理。

3. 数字图像处理的应用

数字图像处理在通信、遥感、电视、出版、广告、工业生产、医疗诊断、电子商务等领域得到了广泛的应用,例如:

(1) 图像通信。包括传真、可视电话、视频会议等。

(2) 遥感。无论是航空遥感还是卫星遥感,都需要使用图像处理技术对图像进行加工处理并提取有用的信息。遥感图像处理可用于矿藏勘探和森林、水利、海洋、农业等资源的调查,自然灾害预测预报,环境污染监测,气象卫星云图处理以及用于军事目的的地面目标识别。

(3) 医疗诊断。如通过X射线、超声、计算机断层摄影(即CT)、核磁共振等进行成像,结合图像处理与分析技术,进行疾病的诊断与手术治疗(图511)。

图511医学图像与生物特征图像

(4) 工业生产中的应用。如产品质量检测,生产过程的自动监控等。

(5) 机器人视觉。通过实时图像处理,对三维景物进行识别,用于自动驾驶、军事侦察、危险环境作业、自动生产流水线等。

(6) 军事、公安、档案管理等方面的应用。如军事目标的侦察、制导和警戒,武器的控制,指纹、手迹、印章、人像等的辨识,古迹和图片档案的修复与管理等。

5.2.4计算机图形

1. 景物的计算机表示

与上面介绍的从实际景物获取其数字图像的方法不同,人们也可以使用计算机来绘图。众所周知,手工绘图是需要长时间训练和实践的一门技艺,甚至还需要一些天赋。而借助计算机软件绘图则相对容易一些,其过程一般分为两步:首先是使用计算机描述景物的结构、形状与外貌,然后再根据其描述和用户观察景物的位置及光线情况,生成该景物的图像并在屏幕上或打印机(绘图仪)上输出。

景物在计算机内的描述即为该景物的模型(model),使用计算机进行景物描述的过程称为景物的建模(modeling),通常需使用专门的软件来完成;计算机根据景物的模型生成其图像的过程称为“绘制”(rendering),也叫作图像合成(image synthesis),这是借助计算机中的绘制软件和图形卡(显卡)实现的。研究如何使用计算机描述景物并生成其图像的原理、方法与技术称为“计算机图形学”(computer graphics,简称CG)。图512给出了计算机绘图的简单过程。

图512景物的建模与图像的绘制

在计算机中为景物建模的方法有多种,它与景物的类型有密切关系。以普通工业产品(如电视机、电话机、汽车、飞机等)为例,它们可使用各种几何元素(如点、线、面、体等)及表面材料的性质等进行描述,所建立的模型称为“几何模型”,这在工业产品的计算机辅助设计/制造(CAD/CAM)中有着重要的应用[图513(a)]。

现实世界中,有许多景物很难使用几何模型来描述,例如树木、花草、烟火、毛发、山脉等。对于这些景物,需要找出它们的结构和生成规律,并使用相应的算法来描述其规律,这种模型称为过程模型或算法模型。图513(b)是使用过程模型所描述和绘制的山脉与云彩。

(a) 使用几何模型描述和绘制的机械零件(b) 使用过程模型描述和绘制的山脉与云彩

图513使用计算机描述和绘制的景物

2. 计算机图形的绘制

在计算机中建立了景物的模型之后,按照该模型在显示器屏幕上生成供用户观看的景物图像的过程,称为“图像绘制”。图像绘制需要进行一系列复杂的处理,大致过程为(图514):① 应用软件(如产品设计或游戏软件)把景物模型中每个物体的表面用三角形近似表示,将三角形顶点的颜色和三维坐标数据作为原始输入;② 按照用户的观测位置和取景范围,将景物向成像平面作透视投影(并裁剪掉不在取景范围内的景物数据),此时顶点数据将转换为投影平面上的二维坐标数据;③ 然后根据顶点的颜色,通过采样和插值计算出景物视图(图像帧)中每个像素的颜色(光栅化);④ 接着再按照光照情况、景物表面使用的材质,从纹理库中选择合适的纹理映射到物体表面,计算出每个像素的亮度。经过这几个步骤,显示器的帧缓存中就形成了该景物的1帧图像,上述过程称为计算机图形的绘制流水线。

图514从景物模型绘制景物图像的流水线处理过程

图形绘制流水线的功能是由软件和硬件协同完成的。提供软件支持的主要是OpenGL和Direct3D。特别是OpenGL,几乎一直是计算机图形学的标准,它可以运行在几乎所有的主流操作系统上,向应用开发提供丰富高效的API(应用程序接口),做到性能和通用性的统一。它还尽可能提供对GPU底层的硬件访问,以最大地发挥GPU的潜力。

用户在显示屏上看到的景物图像,每个像素的颜色和亮度都需要经过大量复杂的计算才能得到,这些都由专门设计的微处理器——图形处理器GPU(又称图形引擎)来完成。PC电脑的CPU和智能手机的SoC芯片中都包含有GPU,其功能和算力大小已经成为影响整机性能的一个重要因素。有关GPU的情况可参看第2章阅读材料2.5的介绍。

3. 计算机图形的应用

使用计算机绘制图形,是发明摄影技术和电影与电视技术之后最重要的一种制作图像的方法。使用计算机绘制图形的主要优点有:计算机不但能生成实际存在的具体景物的图像,还能生成假想或抽象景物的图像,如游戏和科幻片中的怪兽,工程师构思中的新产品外形与结构等;计算机不仅能生成静止图像,而且还能生成各种运动、变化的动态图像。在绘制图形的过程中,人们可以与计算机进行交互,参与图像的生成。正因为这些原因,计算机绘制图形有着广泛的应用领域。例如:

(1) 计算机辅助设计和辅助制造(CAD/CAM)。如在电子CAD中,计算机可用来设计和绘制逻辑图、电路图、集成电路掩模图、印制板布线图等;又如在机械CAD中,用数学模型精确地描述机械零件的三维形状,既可用于显示/绘制零部件的图形或进行三维打印输出,又可提供加工工艺数据,还能分析其应力分布、运动特性等,大大缩短了产品开发周期,提高了产品质量。

(2) 利用计算机制作各种地形图、交通图、天气图、海洋图、石油开采图等。既可方便、快捷地制作和更新地图,又可用于地理信息的管理、查询和分析,这对于城市管理、国土规划、石油勘探、气象预报等提供了极为有效的工具。

(3) 作战指挥和军事训练。利用计算机通信和图形显示设备直接传输战场态势的变化和下达作战部署,在陆、海、空军的战役战术对抗训练乃至实战中可发挥很大作用。

(4) 计算机动画和计算机艺术。动画制作中无论是人物形象的造型、背景设计,还是中间画的制作均可由计算机来完成。计算机还可辅助人们进行美术和书法创作,这已经大量应用于工艺美术、装潢设计及电视广告制作等行业。

除此之外,计算机图形在电子游戏、出版、数据处理、辅助教学等许多方面也有着广泛的应用。

4. 矢量绘图软件

为了区别于通常的取样图像,计算机绘制的图像也称为矢量图形,用于绘制矢量图形的软件称为矢

量绘图软件。由于不同的应用需要绘制不同类型的图形,例如机械零部件图、电路图、地图

、工艺美术图、建筑设计与施工图等,因而存在着许多不同用途的矢量绘图软件。AutoCAD、ARCInfo、PROTEL和国产的SuperMap GIS和CAXA电子图板等就是面向不同应用领域的专业绘图软件。

在日常办公与事务处理、平面设计、电子出版等领域中,使用的大多是2D矢量绘图软件

。流行的矢量绘图软件有Corel公司的CorelDraw,Adobe公司的Illustrator,Macrom

edia公司的FreeHand,微软公司的Microsoft Visio等。微软公司的 Office 办

公套件和金山WPS Office软件都具有内嵌的矢量绘图功能,它们允许用户在文本或幻灯片中插入在线绘制的2D矢量图形。

用户需要自己开发具有计算机绘图功能的应用软件时,可以选用工业标准OpenGL或微软公司的DirectX中的Direct3D作为支撑软件,它们提供了丰富的2D和3D基础绘图功能。

复习题

(1) 取样图像是怎样获取的?有几个步骤?需要使用哪些设备?

(2) 一幅具有1600万种颜色(真彩色)、分辨率为1920×1080的数字图像,在没有进行数据压缩时,它的数据量大约是多少?

(3) 常用的图像文件有哪些类型?各有什么特点?适合哪些应用?

(4) 数字图像处理有哪些主要的应用?列举一至两种你熟悉的应用,并说明图像是如何获取的?使用计算机进行了哪些处理?得到什么结果?

(5) 使用计算机绘制图形的软件有哪些?分别适用于哪些应用领域?Word和PowerPoint有哪些绘图功能?

5.3数字音频及应用

声音是传递信息的一种重要媒体。信息技术中,人耳能听到的声音称为音频信号,简称音频(audio)。计算机处理、存储和传输音频的前提是必须将音频信号数字化。本节先介绍数字音频的获取、表示、编辑及应用,然后简单介绍计算机语音识别和语音合成的原理及应用。

5.3.1数字音频的获取

1. 音频信号的数字化

声音由振动而产生,通过空气等介质进行传播。声音是一种波,它由许多不同频率的谐波组成。计算机等数字设备处理的声音主要是人耳可听见的音频信号,其频率范围为20Hz~20kHz,称为全频带音频。人的说话声音频带较窄,仅为300~3400Hz,称为言语(speech),也称为话音或语音。

音频是模拟信号。为了使用计算机进行处理(或用手机打电话),必须将它转换成二进制编码表示的形式,这个过程称为音频信号的数字化。音频信号数字化的过程如图515所示。

图515音频信号的数字化

(1) 取样。把时间上连续的音频信号离散成为不连续的一系列的样本。为了不产生失真,按照取样定理,取样频率不应低于音频信号最高频率的两倍。因此,语音的取样频率一般为8~16kHz,全频带音频(如交响乐)的取样频率应在40kHz以上。

(2) 量化。取样得到的每个样本一般使用8位、12位、14位或16位二进制整数表示(称为“量化精度”),量化精度越高,声音的保真度越好;量化精度越低,声音的保真度越差。

(3) 编码。经过取样和量化得到的数据,还必须进行数据压缩,以减少数据量,并按某种格式将数据进行组织,以便于计算机进行存储、处理和传输。

20世纪80年代以前,音频信号的记录、回放、传输、编辑等一直是以模拟信号的形式进行的。随着数

字技术的发展,把模拟声音信号转换成数字信号进行处理已经成为主流技术。这种做法有许多优点,例如,以数字形式存

储的音频在复制和重放时没有失真;数字音频的可编辑性强,易于进行特效处理;数字

音频能进行数据压缩,传输时抗干扰能力强;数字音频容易与文字、图像等其他媒体相互结合(集成)组成多媒体,等等。

2. 数字音频的获取设备

数字音频获取设备包括麦克风(话筒)和声卡。麦克风的作用是将声波转换为电信号,然后由声卡进行数

字化。声卡既负责音频信号的获取,也负责音频信号的重建,它控制并完成声音的输入与输出。主要功能包括音频信号的获取与数字化、音频信号的重建与播放、MIDI声音的输入、M

IDI声音的合成与播放等。

数字音频的获取过程就是把模拟的音频信号转换为数字形式。声源可以是麦克风(话筒)输

入,也可以是线路输入(声音来自音响设备或CD唱机的输出)。声卡不仅能获取单声道声音,

而且还能获取双声道的声音(立体声)。

声卡以数字信号处理器(DSP)为核心,DSP是一种专用的微处理器,它在完成数字音频的编码、解码、MIDI声音合成及音频编辑操作中起着重要的作用。图516是声卡的原理框图。其中混音器的功能是将不同的音频信号进行混合,并进行功率放大和音量控制。

① MIDI是电声乐器的数字接口,它传输的不是声音信号,而是音符及其控制参数等指令,它指示音乐合成器演奏哪个音符、多大音量等。MIDI文件则是编曲界使用的数字音乐标准格式,它用数字符号来记录音乐。

图516声卡的工作原理

随着PC主板技术的发展以及CPU性能的提高,为了降低整机成本,缩小机器体积,现在大多数中低档声卡几乎都已经集成在主板上。平时人们所说的“声卡”,指的多半是这种“集成声卡”,只有少数专业用的高档声卡才做成独立的插卡形式。

集成声卡有软声卡和硬声卡之分。软声卡只有一个CODEC芯片(负责取样、量化、重建、滤波等处理),I/O控制器集成在主板上的南桥芯片中,DSP的功能需由CPU协助完成;而硬声卡除CODEC芯片之外主板上还有1块音频主处理芯片,很多音效处理任务无须CPU参与就可独立完成,因而减轻了CPU的负担。

除了利用声卡进行在线(online)数字音频获取之外,也可以使用数码录音笔进行离线(offline)数字音频获取,然后再通过USB接口直接将已经数字化的数字音频数据从数码录音笔送入计算机中。数码录音笔的原理与上述过程基本相同,不过由于取样频率较低,仅适合录制语音使用。

3. 数字音频的输出

计算机输出声音的过程通常分为两步。首先要把音频从数字形式转换成模

拟信号形式,这个过程称为声音的重建,然后再将模拟音频信号经过处

理和放大送到扬声器发出声音。

声音的重建是音频信号数字化的逆过程,它也分为三个步骤。先进行解码,把压缩编码后的数

字音频恢复为压缩编码前的状态(由软件和DSP芯片协同完成);然后进行数模转换,把音频样本从数字量转换为模拟量;

最后进行插值处理,通过插值,把时间上离散的音频信号转换成在时间上连续的模拟音频信

号(图517)。声音的重建也是由声卡完成的。

图517数字音频的输出

声卡输出的波形信号需送到音箱(喇叭)去播放。音箱有普通音箱和数字音箱之分,普通音箱接收的

是重建的模拟音频信号,数字音箱则可直接接收数字音频信号,由音箱自己完成声音重建,这样可以避免模拟音频信号在传输中发生畸变和受到干扰,声音的质量更有保证。

手机在接听电话或播放音乐时,都包含了上述的声音重建过程。例如播放音乐,CPU会通过操作系统读取闪存中的音频文件,将其解压缩后传送给数模转换芯片,后者负责把数字信号转换成模拟信号,再将放大后的模拟信号传给耳机或扬声器播放出来。为了改善声音的播放质量,一些高端手机使用了专业的CODEC和DAC(数字模拟转换器)芯片,以及独立的(而非集成的)功率放大器芯片。不过,为了达到满意的效果,除了手机之外,还需要配备一款不错的耳机并下载高质量的音频文件。

5.3.2数字音频的表示与应用

1. 数字音频的主要参数

数字音频是一种使用二进制表示的按时间顺序组织的串行比特流(bitstream)。为了便于在不同系统之间进行交换,它必须按照一定的标

准或规范进行编码。数字音频的主要参数包括取样频率、量化位数、声道数目、使用的压缩编码方法以及比特

率(bit rate)等。比特率也称为码率,它指的是每秒钟有多少二进位。数字音频未压缩前,码率的计算公式为:

数字音频的码率=取样频率×量化位数×声道数(单位:bits/s)

压缩编码以后的码率则为压缩前的码率除以压缩倍数(压缩比)。

表54是手机通话时数字化的语音信号和CD唱片上记录的高保真全频带数字立体声的主要参数(未压缩时)。

表54两种常用数字音频的主要参数

声音类型声音信号带宽

(Hz)取样频率

(kHz)量化位数

(bits)声道数未压缩时的

码率(kb/s)

电话数字语音300~340088164

CD立体声20~2000044.11621411.2

2. 数字音频的文件格式及其应用

数字音频的数据量很大。从表54可以算出,1小时电话声音的数据量接近30MB,1小时CD质量的立体声高保真的数字音乐的数据量大约是635MB。为了降低存储成本和提高在网络中的传输效率,必须对数字音频进行数据压缩编码。

根据不同的应用需求,数字音频采用的压缩编码方法有多种,文件格式也各不相同。表55是目前常用数字音频的文件格式、编码类型以及它们的主要应用。

表55常用数字音频的文件格式、编码类型及其主要应用

音频

格式文件

扩展名编码

类型效果主要应用开发公司(组织)

WAVwav未压缩声音达到CD品质,

码率约为1.4Mb/s支持多种采样频率和量

化位数,获得广泛支持

微软公司

FLACflac无损压缩压缩比为2∶1左右高品质数字音乐Xiph.Org基金会

M4Am4a无损压缩压缩比为2∶1左右QuickTime, iTunes,

iPod,Real Player苹果公司

MP3mp3有损压缩MPEG1 audio层3

压缩比为8~12∶1互联网,MP3音乐ISO

MPEG1 层3

WMAwma有损压缩压缩比高于MP3

使用数字版权保护互联网,音乐微软公司

AC3ac3有损压缩压缩比可调,支持

5.1、7.1声道DVD,数字电视,家庭

影院等

美国Dolby公司

AACaac有损压缩压缩比可调,支持

5.1、7.1声道DVD,数字电视,家庭

影院等

ISO

MPEG2/MPEG4

其中,WAV是未经压缩的数字音频,音质与CD相当,但对存储空间需求太大,不便于交流和传播。FLAC和M4A采用无损压缩方法,数据量比WAV文件大约可减少一半,而音质仍保持相同。MP3是互联网上最流行的数字音乐格式,它采用国际标准化组织提出的MPEG1层3算法进行有损的压缩编码,以8~12倍的比率大幅度降低了数字音频的数据量,缩短了网络传输的时间,也使一张普通CD光盘可以存储大约100首MP3歌曲。WMA是微软公司开发的数字音频文件格式,采用有损压缩方法,压缩比高于MP3,质量大体相当,它在文件中增加了数字版权保护的措施,防止未经授权进行下载和拷贝。

语音(speech)是一种特殊的音频信号,由于其频率范围远不如全频带音频,所以取样频率较低、数据量较小。为了能在固定(或移动)电话网和互联网上有效地进行传输,对数字语音也需要进行压缩编码。固定电话通信中使用PCM编码(称为脉冲编码调制,码率为64kb/s,文件扩展名为pcm或wav)和ADPCM编码(自适应差分脉冲编码调制,码率为32kb/s, 文件扩展名为wav),移动电话通信中采用自适应多速率(AMR)的压缩编码方法(文件扩展名为amr),能使压缩后语音的码率控制在4.75~12.2kb/s之间,微信中的语音就采用AMR文件格式。

传统的电话是一种以发送与接收语音信号为主的通信设备,它已经有约150年的历史。随着微电子、计算机和通信技术的进步,电话已经从固定电话向移动电话、模拟电话向数字电话、“笨”电话向“智能”电话的方向发展。目前广泛使用的智能手机已不仅仅是电话,它还是一种通用的多功能的信息处理设备,是计算机、软件和通信技术高度融合的成果,集中并全面地体现了当代信息技术的最新成就。

为了在互联网环境下开发数字音(视)频的实时应用,例如通过互联网进行在线音(视)频广播和点播,音(视)频服务器和互联网必须以高于音(视)频码率的速度向用户提供音(视)频数据,使用户可以边下载边收听(看)。为此,一方面要压缩数字音(视)频的数据量,另一方面还要合理组织音(视)频数据,让它们以正确的顺序像水流一样源源不断地进行传输(流式传输)。实现上述要求的媒体分发技术就称为“流媒体”,这需要在客户端—服务器之间采用实时传输协议RTP、实时传输控制协议RTCP、实时流协议RTSP和资源预留协议RSVP才能予以保证。

5.3.3数字音频的编辑与播放

1. 数字音频的编辑

在制作多媒体文档(如产品演示、PPT讲稿等)时,人们越来越多地需要自己录制和编辑数字音频。目前使用的数字音频编辑

软件有多种,它们能够方便直观地对数字音频(如WAV文件)进行各种编辑处理。

以Windows附件中娱乐类的“录音机”程序为例,它是一个非常简单的数字音频编辑器,具有如下功能:

(1) 录制音频。将用户通过麦克风输入的模拟音频信号进行数字化,并以WAV文件的格式保存在磁盘中。

(2) 编辑音频。如音频的剪辑(删除、移动或复制一段音频,插入一段音频等)、音量的调节(加大或降低音量)、音频的加速或减速、更改音频的质量等。

(3) 声音的效果处理。如添加混响和回声效果等。

(4) 格式转换。将不同取样频率和量化位数的数字音频进行转换,将WAV格式转换为MP3或WMA等格式。

(5) 播放音频。只能播放WAV格式的音频文件,其他格式不能播放。

此外,Adobe Audition、MEPMedia Mp3 Editor 和Harrison Mixbus等也是PC平台常用的数字音频编辑软件。

2. 数字音频播放软件

Windows操作系统还捆绑了一个应用软件,称为Windows媒体播放器(Windows Media Player,简称WMP),它是一个通用的数字媒体播放软件,可以播放音(视)频文件,也可用来显示图片。该软件可以播放的音频文件格式包括MP3、WMA、WAV、MIDI等,也可播放CD和DVD光盘。不仅如此,它还具有管理功能,支持播放列表,支持从CD光盘上抓取音轨复制到硬盘,支持刻录CD光盘,支持与便携式音乐设备(如MP3播放器)进行同步。

数字音频播放软件很多,特别是智能手机/平板电脑现在有很多免费软件。例如QQ音乐、千千音乐、酷狗音乐、酷我音乐盒、Winamp等等,它们的功能基本相同但又各具特色,此处不再赘述。

几年前,专用的便携式MP3硬件播放器曾经风行一时,苹果公司的iPod就是其代表。它具有播放MP3的功能,当然它还能播放包括WAV、CD、MIDI等在内的许多其他格式的声音文件。现在智能手机已经普及,单纯的MP3播放器几乎已无人问津。

5.3.4语音识别与语音合成

长久以来,人们一直希望能研发出一种会听、会说、会看、能善解人意的智能计算机,其中“会听”和“会说”就是本节要介绍的语音识别和语音合成。

1. 语音识别

语音识别是将人的说话声音转换成相应的文字,这需要计算机自动识别出语音信号中的单词和语汇,甚至理解其语义(内容)。语音识别技术的应用面很广,包括语音拨号、语音导航、设备操作控制、语音文档检索、听写数据录入等。如果语音识别与机器翻译及语音合成技术相结合,还可以提供从一种语音到另一种语音的计算机同声翻译。

按照不同的应用要求,语音识别技术的复杂程度有很大差别:

(1) 孤立语音/连续语音识别。前者要求用户逐字逐句地说,后者允许用户以自然交谈的方式连续说话。显然前者对各个音节的识别会比较准确,难度减轻不少,而后者却困难得多。

(2) 小词汇量/大词汇量语音识别。前者只允许用户使用预先规定的有限词汇,后者则不受限制。显然,允许使用的词汇量越大,对语音识别技术的要求就越高。

(3) 特定人/非特定人语音识别。特定人语音识别指系统在使用前必须由用户输入大量的发音数据、对识别软件进行训练,然后才能正式使用,非特定人系统则无此要求。显然,识别非特定人的语音困难会更大。

语音识别涉及多门学科,是人工智能领域的一个重要课题,几十年来人们进行了不懈的努力和探索。近几年在GPU平台、大数据训练和深度学习算法的支持下,电话语音数据Switchboard基准测试的词错率已经降低至6%以下,达到了与人工语音识别差不多的水准。尽管还存在不少问题(例如对说话环境要求较高,跨领域识别和方言识别性能较差等),但安静背景、标准口音、常见词汇上的语音识别已经达到可用状态。

以iPad平板电脑和iPhone手机中的Siri软件为例。用户可以与平板电脑/手机进行简单的对话,完成搜寻资料、查询天气、设定手机日历、设定闹铃等多种服务。Siri软件能支持15个国家和地区的语言,包括英语、法语、德语、日语、汉语(普通话、广东话)、韩语、意大利语、西班牙语等。

我国中科大讯飞公司开发的“讯飞输入法”集语音输入、手写输入和软键盘输入于一体,无须切换即可在拼音输入界面进行连续手写和语音输入。采用语音输入时,支持方言语音输入,可以边说边识别,整句识别,自动添加标点符号等,大大加快了发短信、写微博、QQ聊天和输入网址的速度。讯飞输入法支持的平台有Android、iOS、Windows等,用户已经超过了1亿。

2. 语音合成

所谓语音合成,是计算机根据语言学和自然语言理解的知识,模仿人的发声自动生成语音的过程。目前的水平是计算机能按照文本(书面语言)实时进行语音合成(即进行文本朗读),这个过程称为文语转换(texttospeech,简称TTS)。

文语转换过程原理上分成三步(图518):第一步先对文本进行分析,判断每一个字的正确读音,将文字序列转换成一串发音符号(如国际音标或汉语拼音);第二步是韵律分析,它根据文句的结构、位置、使用的标点符号以及上下文等,确定发音时语气的变换以及读音的轻重缓急,这些都由一组韵律控制参数来进行控制;第三步是语音合成,它的主要功能是:根据发音标注,从语音库中取出相应的语音基元,按照韵律控制参数的要求,利用特定的语音合成技术对语音基元进行调整和修改,最终合成出符合要求的流畅自然的语音。语音库中存储了大量预先录制的语音基元(单音、词组、短语或句子)的波形,合成时从库中读取相应语音基元的波形,将这些波形进行拼接和韵律修饰,然后输出连续的语音流。

文本文本分析词典、发音规则库韵律处理韵律规则库

语音合成语音库合成语音

图518文语转换过程

为了合成出高质量的语言,除了依赖于语义学、词汇学、语音学规则外,还必须对文本内容有一定的理解,这就涉及人工智能中的自然语言理解问题。因为自然语流中的语音与孤立状况下的语音往往有很大区别,如果只是简单地把各个孤立的语音生硬地拼接在一起,合成的语音将难以理解。

计算机合成语音应达到:发音清晰可懂,语气语调自然,说话人(男、女)可选择,语速可变化,允许中文、英文以及中英文混合等。几十年来,语音合成技术已经取得了很大的进步,目前已基本达到实用要求,在语音朗读、语音导航、语音播报、语言学习、自动报警、残疾人服务等领域得到了应用。

例如,微软公司的Office软件中的[朗读]功能可在Outlook、PowerPoint及Word中進行文字—语音转换(TTS),把文档内容用普通话或英语朗读出来。如果下载安装了其他语言的TTS引擎还可用其他语言朗读。若同时使用翻译软件,则可以听到这些文字内容的外语翻译。

不少智能手机也具有文语转换功能。例如华为Mate8手机提供了一种TalkBack服务,它是专门为有视力障碍的用户提供的。启用该服务后,手机对用户的操作会进行语音提示,并可自动报出用户所触摸、选择和激活的文字内容。TalkBack与文语转换功能结合使用,借助TTS软件,可以选择不同的语种(中文、英文)和语速进行语音合成。

语音合成与语音识别技术相结合,还能实现智能客服中心和语音交互机器人等新颖应用。例如,“语音助手”软件可以听用户的讲话,进行语义分析,然后迅速做出相应的回应:或者与用户语音聊天,或者帮用户查找资料,或者按指令帮用户操控智能设备。此类语音助手软件目前有:苹果公司的Siri,谷歌公司的Google Now,微软公司的Cortana(微软小娜),科大讯飞公司的灵犀,以及百度公司的度秘等。虽然这些软件还不完美,但它依然是人工智能技术在人们日常生活中比较受欢迎的一种应用。

复习题

(1) 数字音频是怎样获取的,它分为哪几个步骤?怎样得到比较高的音频质量?

(2) 数字音频的码率如何计算?一张CD唱片可以播放多长时间的音乐或歌曲?

(3) 数字音频有哪些常用文件格式?什么软件可以播放数字音频和MIDI音乐?

(4) 计算机语音识别和合成语音有哪些应用?你用过哪些有关的App?

5.4数字视频及应用

本书中所说的视频(video)泛指内容随时间变化的图像序列,也称为活动图像或运动图像(motion picture)。常见的视频有电视(电影)和计算机动画。电视能传输和再现真实世界的图像与声音,是当代最有影响力的信息传播工具。计算机动画是计算机制作的图像序列,是一种计算机合成的视频。下面先介绍数字视频,然后再简单介绍计算机动画。

5.4.1数字视频基础

1. 数字视频的主要参数

数字视频是以一定速率顺序显示的一个数字图像序列。视频中的每一幅图像称为1帧(frame),每秒钟显示多少帧图像称为帧速率或帧频,单位是fps(frames per second)。电视是最重要的一种视频,我国电视采用PAL制式,帧频为25fps。电影的帧频是24fps。

为了在传输图像时节省带宽资源,通常采用隔行信号传输的方法。为此,摄像机拍摄视频时往往把一帧图像分成两场:奇数场只包含图像中奇数行的像素,偶数场只包含偶数行的像素,两者合在一起才组成一帧图像,这称为隔行扫描(interlaced scanning),用字母i作为其标志。随着网络速度的提升和对图像质量要求的提高,许多视频也采用逐行扫描方式(progressive scanning)进行拍摄,这种视频一帧图像只有1场,图像中包含了所有像素,用字母P表示。

除了帧频和扫描方式之外,数字视频还有2个重要的参数:帧大小和帧的颜色深度。帧大小指的是每帧图像的分辨率,即图像宽度×图像高度(单位:像素);颜色深度即像素深度,指的是图像中每个像素的二进位数目(16位或24位)。有了这几个参数后,可以推算出数字视频的其他一些性质。

例如,持续时间为1小时的一段数字视频,假设帧大小是720×576,像素深度为24位,帧速率为25fps,则该数字视频(未压缩时)具有下列性质:

● 每帧的像素数目=720×576=414720像素

● 每帧的二进位数目=414720×24=9953280≈9.95Mb

● 视频流的比特率=9.95×25≈248.75Mb/s

● 视频流的大小=248Mb/s×3600s=892800Mb≈111600MB=111.6GB

数字视频的获取设备主要是摄像机、数码相机和摄像头,它们可以在线获取(如视频直播、交通监控)视频图像,也可以离线获取(如电影/电视拍摄)。视频获取设备的原理与数码相机基本相同,第2章已做了介绍,此处不再重复。

现在智能手机几乎都具有摄像功能,拍摄的视频性能越来越高。例如华为P40的后置摄像头有3个,主摄像头为5000万像素(广角,f/1.9光圈),最大支持4K(3840×2160)视频录制,支持AIS防抖(融合了AI算法);还可支持拍摄720p@960fps的超级慢动作视频。

2. 数字视频的显示格式

我国电视行业按照图像的分辨率,将数字电视分为以下3种显示格式:

● 标准清晰度电视(SDTV,也表示为576i)图像画面的分辨率为720×576,隔行扫描,帧频为25fps,视频流(压缩后)的比特率约为3Mb/s。目前数字有线电视的大部分频道用于播放标准清晰度电视节目,DVDVideo光盘中的视频大多也是SDTV格式。

● 高清晰度电视(HDTV,也表示为1080i)分辨率为1920×1080,隔行扫描,帧频为25fps,视频流的比特率约为8Mb/s。它比标准清晰度电视可以展现更多的影像细节,数字有线电视中高清频道播放的就是HDTV节目。

● 超高清晰度电视(UHDTV,也称为4K电视)分辨率达3840×2160甚至更高,是HDTV的4倍以上,许多数字电影就是4K格式。近几年4K电视机和LCD显示器已经成熟,电脑显卡也都支持4K显示,就连一些高端智能手机也能拍摄4K视频。可以预期,超高清晰度格式的视频节目会越来越丰富。

在视频网站上播放或下载视频节目时,通常会有几种不同的视频格式供选择,用户可以根据自己的网络带宽、显示器、存储容量、可消耗的数据流量等选择其中之一。与电视行业不同,网站上使用的名称五花八门。例如爱奇艺网站上把视频格式分为:流畅(相当于VCD的低分辨率图像,仅240线)、高清(仅相当于SDTV格式)、720P(1280×720,帧频为60fps,不少人也把它作为高清电视格式)和1080P(1920×1080,帧频为50fps,为区别于1080i,也把它称为“全高清”),而优酷网站却把它们分别称之为标清、高清、超清和1080P,这是需要注意的。

还要说明的是,现在液晶显示器的图像处理电路(GPU)处理能力非常强,它使用“倍线”技术把隔行扫描的1080i的图像处理成逐行的1080p的图像,把每秒24、25或30帧的图像处理成每秒50、60或更高帧进行显示。尽管如此,分辨率相同而扫描方式和帧速率不同的视频源,播放时在影像细节和流畅性方面还是有差别的。

5.4.2数字视频的压缩编码和文件格式

1. 数字视频的压缩编码

数字视频的数据量大得惊人。1分钟的标准清晰度(分辨率720×480)数字视频其数据量超过1G字节,高清、超高清视频更为可观。这样大的数据量,无论是存储、传输还是处理都有很大的困难。解决这个问题的方法就是对数字视频信息进行数据压缩。

由于视频信息中画面内部有很强的信息相关性,相邻画面的内容又高度连贯,再加上人眼的视觉特性,所以数字视频的数据量可压缩几十倍甚至上百倍。

为了便于视频信息的存储、传输与交换,必须对视频信息的压缩编码格式制定标准。负责制定视频编码标准的有两个组织:国际电信联盟通信标准部(ITUT)和国际标准化组织/国际电工技术委员会(ISO/IEC)。前者制定的视频编码标准使用H.26x的名称,它主要是为视频会议和可视电话等实时视频通信应用设计的;后者制定的标准使用MPEGx的名称,它主要是为视频存储、广播以及视频流(如网上视频、无线视频等)设计的。两大国际组织还合作开发了H.262/MPEG2、H.264/MPEG4AVC以及H.265/MPEGH标准(图519)。

图519视频编码的主要国际标准

视频编码标准是发展的,不同标准有不同的背景和应用。H.261适用于在低速通信网中进行可视电话/视频会议,MPEG1适用于VCD光盘,它们现在已很少使用。MPEG2/H.262的用途较广,如数字卫星电视、数字有线电视、DVD光盘等。H.263及其后续改进主要应用于低码率(通常只有20~30kb/s或更高一些)的视频通信,如桌面环境的视频会议、电子监控、远程医疗、手机视频等。

H.264/MPEG4 AVC具有很高的数据压缩比。在同等图像质量的条件下,H.264的压缩比是MPEG2的2倍以上。例如,原始视频文件的大小为88GB,采用MPEG2压缩后变成3.5GB,压缩比为25∶1,而采用H.264压缩后变为879MB,压缩比达到惊人的102∶1,大大节省了下载时间和数据流量费用。不仅如此,H.264在具有高压缩比的同时还拥有高质量的流畅的图像,能很好地在互联网环境和2G、3G和4G等移动通信网上传输(以低于1Mb/s的速率实现标准清晰度数字视频的传送)。

H.265/HEVC的全称是高效视频编码(high efficiency video coding),与H.264标准相比,压缩比又提高了一倍。这也意味着,智能手机、平板电脑等移动设备通过4G、5G网将能够直接在线播放1080p的全高清视频。它可支持4K分辨率的超高清电视(UHDTV),最高分辨率甚至可达到8192×4320(8K分辨率)。

除了上述国际组织制定的视频编码格式之外,有些公司也开发了自己的视频编码格式,如早期的Indeo·Video(Intel公司)、Cinepak(苹果公司),现在流行的RealVideo(Real Network公司)、WMV(微软公司)以及VP8、VP9(Google公司)等,它们各有特色,在不同产品中应用。

实现上述各种视频编码的硬件或软件称为视频编码器/解码器(video codec)。video codec有多种,它们实现的编码标准不同,性能和技术各有特色,用途也有差异。例如,有名的DivX (Digital Video Express)就是MPEG4 ASP的codec,它能以较大的压缩比和较高的图像质量对视频信息进行编/解码,在互联网、MP4播放器和Xbox 360、Sony PlayStation 3游戏机中得到了较好的应用。

2. 数字视频的文件格式

数字视频按照上述某种编码格式进行编码后,通常还需要与音频数据及必要的一些文字(如字幕)和图片信息,一起封装在称之为多媒体容器(multimedia container)的封包文件中。日常所说的视频文件其实就是这种封包文件,下面把它们称为音像文件(或视频文件、影音文件)。

音像文件/视频文件中既包含有视频数据,也包含有音频数据,还包含文字(字幕)、图片等其他信息,它们分别采用哪种编码格式、数据如何组织、相互间如何同步等都需要有明确的规范,不同的规范就形成了几十种不同格式的音像文件。表56是目前常用的一些音像文件格式,供参考。

表56常用音像文件(视频文件/影音文件)的比较

音像文件/视频

文件名称(格式)视频编码格式音频编码格式

支持情况举例

WMPiPhoneMate

MPEG(mpeg、mpg)MPEG1/2 videoMPEG1层I, II, III

MPEG4(mp4)MPEG2 Part2

H.263/MPEG4 ASP

H.264/MPEG4 AVC

VC1, Dirac等MPEG2/4 AAC

MPEG1/2 Layers I, II, III (MP3), AC3, Apple Lossless等

苹果QuickTime

(mov、qt)(大体同上)(大体同上)仅低

版本

3G通信合作项目(3gp、3g2)H.263/MPEG4 ASP

H.264/MPEG4 AVCAMR, AACLC等

微软ASF

(asf、wmv)(几乎所有格式)(几乎所有格式)

微软AVI(avi)(不支持可变码率、可变帧率等高级特性)(几乎所有格式)

(续表)

音像文件/视频

文件名称(格式)视频编码格式音频编码格式

支持情况举例

WMPiPhoneMate

Motion JPEG

(mj2、mjp2)1280×720像素,每秒30帧Ulaw、PCM立体声

DivX公司(divx)MPEG4ASPMP3, PCM, AC3

RealNetworks公司(rm、rmvb)RealVideo 8, 9, 10RealAudio (HE)AAC,Vorbis,

Matroska

(mkv、mk3d)

Google (webm)VP8、VP9及包括H.265的所有格式MP2, MP3, Vorbis, AAC, AC3, PCM等

Adobe公司Flash(flv、f4v)H.264/MPEG4 AVCMP3, AAC等

5.4.3数字视频的编辑与播放

1. 数字视频的编辑

编辑数字视频的过程比较复杂,通常在编辑前应把拍摄的素材以数字形式输入计算机硬盘中,编辑时根据需要对不同长短、不同顺序的素材进行剪辑,配上字幕、特技和各种动画,再进行配音、配乐,最终制作成所需要的视频节目。Adobe公司的Premiere Pro是目前Mac和PC平台上流行的一种专业数字视频编辑软件。

在Windows平台有一个免费的视频编辑软件——Windows Movie Maker。使用该软件可以通过摄像机、数字摄像头或其他视频源将音频和视频捕获到计算机中,也可以打开硬盘中已有的音频、视频或静止图片,然后在Windows Movie Maker中完成对音频与视频内容的编辑(包括添加片头、使用视频过渡或特技效果等),最后就可以将制作的视频保存到硬盘中,或者通过CD或DVD刻录机保存在光盘上,供媒体播放器进行播放。

2. 视频播放器

现在,不论是台式PC、笔记本还是智能手机,它们都能支持数字视频的播放,这些系统中均安装有“媒体播放器”或“视频播放器”软件。例如微软公司的Windows Media Player,苹果电脑的QuickTime Player,iPhone手机、华为手机中的“视频”App等。视频播放器功能比较丰富,能支持多种音像文件格式,既可播放本地文件,也可在线播放。表56给出了Windows媒体播放器(WMP)和iPhone 6s、华为Mate手机自带的视频播放器可以播放的视频文件格式。

从表56可以看出,这些播放器并不能播放所有不同格式的音像文件,即使能播放某种音像文件,也不是其中所有的视频/音频规格都能支持。解决这个问题的方法有几种,一种是为播放器下载和安装相应的插件,一种是进行转码(transcode)处理,把不能播放的文件格式转换成另一种可以播放的格式,或者是安装第3方开发的其他视频播放器,如RealPlayer等。

3. 视频网站

最近几年,随着互联网主干的提速和宽带接入的普及,以提供视频节目为主的视频网站日益增多。视频网站初期旨在分享自拍短片,随着用户要求的提高、影片限制放宽和P2P技术的应用,一些视频网站通过BT下载、点播(VOD)或直播等方式开展了影片共享服务(免费或收费)。现在最有人气的影片共享网站是美国的Youtube,国内知名度较高的视频网站有CNTV、优酷网、爱奇艺、腾讯视频、搜狐视频等。

视频网站往往有自己的视频播放器,只要电脑或手机上看过了电影或电视剧,就会在电脑/手机上生成一个缓存文件,等于把电影下载到了电脑上,回看或下次再看时,就不需要重复下载并缓存了。为了保护网站自身的权益,视频网站一般都会开发自己专用的视频文件格式。例如迅雷的XV文件格式、腾讯视频的QLV格式、优酷的KUX格式、爱奇艺的QSV格式、搜狐影音的IFOX视频格式等,它们只能在网站各自的专用播放器中播放。

视频网站、视频客户端、视频播放器等功能大体类似,侧重有所不同。有些以线上视频播放、下载及上传为主,有些则面向或兼顾本机视频(预先下载存放在辅存中的视频)的播放,有些还具有格式转换、裁剪等简单的视频处理功能。

5.4.4计算机动画

计算机动画是用计算机制作供实时演播的图像序列的一种技术。借助计算机动画可以辅助制作

传统的卡通动画片,或通过对物体运动、场景变化、虚拟摄像机及光源设置的描述,逼真地

模拟三维景物随时间而变化的过程,所生成的画面以每秒25至30帧的速率演播时,

利用人眼视觉残留效应便可产生景物连续运动或变化的效果。计算机动画也可转换成电视或电影输

出。与数字摄像机获取的真实场景的数字视频不同,计算机动画是一种计算机合成

的虚拟场景的数字视频。

计算机动画的基础是计算机图形学,它的制作过程是先在计算机中生成场景和形体的模型,

然后描述它们的运动,最后再生成图像并转换成视频信号输出。动画的制作要借助于动画制作软件,如二维动画软件Animator Pro和三维动画软件3ds MAX、MAYA、Adobe Director、Renderman、Lightwave 3D等。

为了使微信的内容生动活泼、图文并茂,人们经常在其中加入一些小动画。上面5.2.2节中曾经介绍,GIF图像文件中可以包含一组图像,显示时按照预先规定的时间间隔和顺序重复播放,从而产生动画的效果。PC和智能手机都可以下载制作GIF动画的工具,使用时只要预先将每一幅图片准备好,保存为GIF、BMP或JPG格式,然后再按序导入GIF文件中即可。

微信在发送一些特殊词语(如“生日快乐”)的时候,整个页面会有动态的小表情自上而下飘下来,这些动画是使用HTML5+CSS3制作的,以达到渲染气氛的效果。这种做法比加载flash动画更快更方便。

5.4.5数字视频的应用

1. 可视电话与视频会议

顾名思义,可视电话就是在打电话的同时还可以互相看见对方。视频会议则是通过电信网或计算机网实时传送声音和图像,使分散在两个或多个场地的与会人员就地参加会议。智能手机上的微信和QQ软件、iPad/iPhone的FaceTime软件就能用来打可视电话和举行视频会议,其视频编码采用的是MPEG4 AVC(H.264)标准。

参加视频会议的成员,可以面对摄像机和麦克风发表意见,将声音和图像传送给与会的其他成员,需要时还可以出示实物、图纸和文件,或者使用电脑上的“电子白板”写字画图,使参加会议的成员感到大家正在进行“面对面”的商谈。视频会议可以节省大量的差旅费用,在办公自动化、紧急救援、现场指挥调度、远程医疗、远程教学等领域能发挥很好作用。

2. 数字电视与IPTV

数字电视是传统电视技术与数字技术相结合的产物,它将电视信号进行数字化,然后以数字形式进行编辑、制作、传输、接收和播放。数字电视与模拟电视相比有很多优点。例如,容易进行编辑修改,复制和传输时不会引起信号质量下降,有利于传输(抗干扰能力强,易于加密),节省频率资源等。随着计算机和数字通信的发展,现在电视(电影)技术从摄像、编辑制作、节目传输到接收播放已全面实现了数字化。

图520数字电视(视频)传播系统

图520是数字视频传播系统的示意图。数字电视(视频)的传播途径是多种多样的,除了卫星转播、地面微波接力和有线电视之外,互联网性能的提高已经使其成为数字电视传播的一种新途径(即所谓的IPTV)。近几年出现了越来越多的视频网站(如CNTV、优酷网、爱奇艺等),受到了广大用户的欢迎。此外,光盘也是存储和传播数字视频的重要媒体,表57列出了3种不同光盘在视频存储和传播中的应用。

表57光盘在数字视频存储中的应用

名称光盘类型光盘容量视频音频说明

VCDCD650MB1小时低清晰度视频(352×240)支持双声道立体声已基本淘汰

DVD影碟DVD4.7GB/单层

8.5GB/双层2小时标准清晰度视频(720×576)支持5.1声道环绕立体声也应用于软件的发行

蓝光影碟

(4K影碟)BD25GB/单层

50GB/双层全高清(1080P)和超高清(2160P)电视、电影同上内容丰富,常包含特制的菜单、评论、幕后花絮等内容

数字视频的接收播放设备目前大体有两类:一类是电视机外加一个机顶盒(有线电视机顶盒或者IPTV机顶盒),另一类是连接互联网的PC或智能手机等手持数码终端设备,它们借助视频(媒体)播放器软件或视频网站的客户端软件就可以收看视频节目。

数字电视除了具有频道利用率高、图像清晰度好等优点之外,它还可以开展多种交互式数据业务,包括电视购物、电视游戏、点播电视等。其中,点播电视(VOD)意即用户可以根据自己的需要选择观看电视节目,它改变了用户只能被动收看电视直播的状况。点播电视也是基于客户/服务器(C/S)模式的一种网络服务。首先电视台(或视频网站)需要把电视(电影)节目数字化并保存在视频服务器中,用户点播时再以实时数据流的形式进行传输。节目的传输必须以稳定的速率进行,以保证节目平滑地播放。任何由于网络拥塞、CPU争用或磁盘的I/O瓶颈等产生的系统或网络的拥塞,都会导致视频传送的停滞,影响用户的收看效果。

3. 视频监控

视频监控是为银行、商场、交通管理等建立安全防范系统的重要组成部分,随着计算机、通信网络及图像处理与传输技术的发展,视频监控已经在我国得到广泛的应用。

视频监控系统主要由摄像、传输、控制、显示、录像等部分组成。摄像机通过有线或无线传输将拍摄的数字视频压缩编码后传输到控制主机,控制主机再将视频信号分发到各个监视器,并使用录像设备进行保存。通过控制主机,操作人员可发出指令,对摄像机云台的角度进行控制,也可以对镜头进行变焦操作以获取合适的图像,并可通过视频矩阵对多路摄像机进行切换。

图521是城市地铁视频监控系统组成的示意图。它利用先进的视频编解码技术及高速无线数据通信技术实现对地铁列车的实时监控,不仅提供驾驶员对列车车厢和前方站台旅客候车情况的实时监控,而且通过车地双向实时通信系统实现车站值班员、控制中心调度员、车辆段车务人员对列车的实时监控,并能将指挥中心下发的视频和音频信息在全线列车内实时播放。

图521城市地铁视频监控系统的组成

人工智能特别是计算机视觉(computer vision)技术对于提高视频监控系统的效用将会产生重大的作用。例如,在视频画面中自动识别出移动物体是轿车、客车、摩托车还是行人(甚至识别出是老人、妇女还是儿童);自动测量车速和识别车牌号码;自动测算车辆和行人的流量;自动发现车辆或行人的异常行为(车辆碰撞、翻倒,行人突然奔跑、摔倒或追打等);甚至能自动跟踪可疑车辆和行人的运动轨迹等。有关人工智能技术的发展请参看本章阅读材料5.2的介绍。

复习题

(1) 数字视频的主要参数分别是什么含义?我国数字电视有哪几种格式?如何获取数字视频?

(2) MPEG1、MPEG2和MPE

G4等视频压缩编码标准各有什么应用?

(3) 数字视频有哪些传播途径?其接收和播放设备有哪些产品形式?

(4) 试用微信、QQ等即时通信软件与他人进行音频和视频通信。

自测题5

一、是非题

1. 采用GB 2312、GBK和GB 18030三种不同的汉字编码标准时,一些常用的汉字如“中”“国”等在计算机中的二进制代码是相同的,而采用Unicode编码时却不相同。

2. 在计算机中图像和图形是两个不同的概念,它们的文件类型也不一样。

3. MP3是目前流行的一种音频文件格式,它采用MPEG3标准对数字音频进行压缩

编码。

4. 智能手机可以拍摄活动图像,并将其转换成数字视频

文件存储在手机中。

二、选择题

1. 下列有关汉字编码标准的叙述中,错误的是()

(A) GB 2312国标字符集所包含的汉字许多情况下已不够使用

(B) Unicode字符集既包括简体汉字,也包括繁体汉字

(C) GB 18030编码标准中所包含的汉字数目超过2万字

(D) 我国台湾地区使用的汉字编码标准是GBK

2. 为了发布、交换和保存计算机制作的文档,目前国内外广泛使用的用于电子文档交换的文件格式是下面的哪一种?()

(A) DOC(B) PDF(C) HTML(D) TXT

3. 数字图像的文件格式有多种,下列哪一种图像文件经常在网页中使用并可具有动画效

果?()

(A) BMP(B) GIF(C) JPEG(D) TI

4. 计算机绘制的图形(graphics)也称为计算机合成图像,下面关于计算机图形的叙述中,错误的是()

(A) 计算机只能生成实际景物的图像,不能生成假想或抽象景物的图像

(B) 计算机不仅能生成静止图像,而且还能生成各种运动、变化的动态图

(C) 图形处理器GPU在计算机生成图像的过程中起着重要作用,许多处理

都是由GPU完成的

(D) 计算机图形在产品设计、绘图、广告制作等领域有着广泛的应用

5. 人们用手机打电话时语音信号必须数字化之后才能由移动通信网发送给通话方。假设语音信

号数字化时取样频率为8kHz,量化精度为8位,数据压缩比为4,那么1分钟数字语音的数据量是()

(A) 960KB(B) 480KB(C) 120KB(D) 60KB

6. 声卡是获取数字声音的重要设备,在下列有关声卡的叙述中,不正确的是(

(A) 声卡既负责声音的数字化(输入),也负责声音的重建(输出)

(B) 声卡既处理波形声音,也负责MIDI音乐的输入与合成

(C) 声卡中的数字信号处理器(DSP)在完成数字声音编码、解码及编

辑操作中起着重要的作用

(D) 与个人电脑一样,智能手机中也有独立的声卡

7. 数字音像文件(视频文件)大多采用封包文件的格式,其中既有视频、音频,还可以有文字、图片等信息。下面4种文件中不属于音像文件的是()

(A) RMVB(B) MP4(C) MP3(D) MOV

8. 数字视频信息的数据量相当大,对存储、处理和传输都是很大的负担,为此必须对数

字视频信息进行压缩。目前数字有线电视和卫星电视所传输的数字视频采用的压缩编码标准大多是()

(A) MPEG1(B) MPEG2(C) MPEG4(D) MPEG7

三、填空题

1. 采用网状结构组织信息,各信息块按照其内容的关联性用指针互相链接起来,使得阅读时可以非常方便地实现快速跳转的一种文本,称为。

2. 数字图像的主要参数有图像分辨率、位平面数目、像素深度、颜色空间类型等。假设像素深度为1

6,那么一幅图像中具有的不同颜色数目最多是种。

3. 一些智能手机能模仿人把屏幕上的文字朗读出来,这种由计算机合成语音的过程称为文语转换或文本朗读,其英文名称是。

4. 若数码相机的存储卡容量仅为2GB,它一次可以连续拍摄65536色

的1024×1024的彩色相片4000张,由此可以推算出图像数据的压缩比是。

第5章阅读材料

5.1非击键方式的文字符号输入方法

自从计算机出现之后,敲击键盘一直是计算机输入信息的主要途径。但对于移动计算设备(如手机、平板电脑等),由于没有键盘或键盘上的键又少又小,击键输入就很不方便了。另外,在需要把大批文档资料输入计算机的场合(如档案室、图书馆),或者在超市、食堂、银行、公交、地铁、高速公路收费站等需要快速输入信息的场合,依靠人工敲击键盘,既费时费力,也容易出错。因此,人们研究开发了多种不必使用键盘的文字符号输入方法。

1. 联机手写识别输入

联机手写识别输入可以按平常书写的习惯,把要输入的中西文字符号直接写在触摸屏上,或者写在一块叫“书写板”的设备上(图522)。触摸屏或书写板将指尖或笔尖的运动(包括抬笔、落笔、笔段轨迹以及各笔段的顺序关系等)按时间顺序取样后送到计算机中,由计算机软件自动进行识别,判断出所书写的文字或符号之后,以该汉字(或符号)所对应的二进制代码进行保存。现在所有手机和平板电脑都提供了手写输入的功能。

图522联机手写输入

汉字的手写输入技术已经比较成熟,通常它能识别简体字、繁体字、异体字、英文、数字、日文假名及各种符号,正识率达95%(工整字)或90%(自由字)以上。手写输入技术不仅用于输入文字符号,而且还可以代替鼠标器控制电脑进行各种操作。

2. 光学字符识别输入

光学字符识别(OCR)是将印刷或打印在纸上的中西文字符号扫描输入计算机,经过识别转换为二进制代码表示的一种技术。这种技术对于将现存的大量书、报、刊物、档案、资料等输入计算机是非常重要的一种手段,在数字图书馆等应用中特别有用。

印刷体字符识别的过程如图523所示。纸质文本通过扫描仪转换为二值(黑白)图像,然后先进行预处理(如倾斜校正、去噪声等),再对版面进行分析,区分出扫描图像中的文字、图形和表格三类不同的区域,接下来把文字区域切割为行,再从行中分离出一个个字符,之后就对每一个字符的图像进行特征提取,根据这些特征进行字符的识别,同时,还要利用词义、词频、语法规则和语料库等语言知识对识别结果进行必要的提示或校正(后处理)。

图523印刷体文字识别的过程

我国汉字OCR技术的研究从20世纪80年代开始,经过30多年的努力,印刷体汉字识别技术取得了很大进步:从简单的单字体识别发展到多种字体的识别,从中文印刷材料的识别发展到中英文混排印刷材料的识别,从支持GB 2312的6763个汉字到支持GB 18030的近3万简、繁体汉字的识别,基本解决了多字体、多字号、中西文混排、文字表格混排的识别问题,识别率可达99%左右。

有些智能手机已将光学字符识别(OCR)功能做了进一步的应用开发。例如华为手机“快速将名片信息添加到联系人”的应用,用户只需将名片放在手机摄像头前拍摄一下,即可将名片上的姓名、手机号码、单位、职务等多种信息导入到联系人中。还有一种“拍照实时翻译”的应用。用户出国旅游,无论是用餐还是观光,只要将镜头对准要识别的文字,并确保文字完整地套入扫描框中,手机就会自动识别并翻译出扫描框中的文字(需在线进行)。

3. 语音识别输入

语音识别能将人们所说的字、词、短语或句子自动转换成相应文字的二进制代码,这是用户向计算机输入信息的一种重要手段,也是计算机和数码设备具有智能的标志之一。有关内容可参见正文5.3.4中的介绍。

4. 条形码/磁卡/IC卡自动识别输入

超市、银行等许多场合需要快速准确地输入信息,使用键盘既费时也容易出错。为此人们开发了多种信息标示和自动识读的技术,如条形码、磁卡、IC卡/射频卡等。

条形码是一种将文字符号进行图形化表示的方法,通过使用特定的扫描设备进行识读,转换成二进制信息输入到计算机。条形码分为一维条形码和二维条形码两大类。

一维条形码将宽度不等的黑条(简称“条”)和白条(简称“空”)按一定的编码规则排列成平行线图案,用以对物品进行标识[图524(a)]。例如商品的生产国家、制造厂家、商品名称、生产日期,或者图书的分类号、邮件的起止地址、类别、日期等,它在商品流通、图书管理、邮政管理等领域已广泛使用。

图524一维条形码和二维条形码

条形码的识读需要使用专门的扫描器。它用光源(激光、红外线等)照射条形码,再利用光电转换器接收反射的光线,将反射光线的明暗转换成数字信号。不论采取何种编码规则,一维条形码都由静空区、起始符、数据字符与终止符等组成。有些条码在数据字符与终止字符之间还有校验码。

一维条形码只在一个方向表达信息,信息量有限(几十个字符),只能包含字母、数字和一些特殊符号,尺寸相对较大,校验也比较简单。

二维条形码使用某种特定的几何图形按一定规律在平面(二维方向)上以黑白相间的图形记录文字和符号信息,通过图像输入设备或光电扫描设备进行识读以实现信息的自动输入。

二维条形码有两大类:一类是堆叠式(行排式)二维条码,其编码原理是将一维条码按需要堆叠成2行或多行,如PDF417等;另一类是短阵式(棋盘式)二维条码,它是在一个矩形空间里通过黑、白像素的不同分布进行编码[图524(b)]。在矩阵相应元素位置上,有点(方点、圆点或其他形状)出现表示“1”,没有点表示“0”,点的排列组合确定了二维条码所代表的信息。常见的矩阵式二维条码有QR码、Maxi码、Code One等。

二维条形码能够在横向和纵向同时表达信息,信息容量大。目前我国广泛使用的是QR码,它最多可以容纳2710个数字,或者1850个字母,或者500多个汉字,也可以表示签字、指纹等信息;检错和纠错功能较强,能360°全方位识读,可靠性高,还可引入加密技术,具有一定的保密性和防伪性。我国高铁车票的二维条形码就采用了信息加密措施,以防止车票伪造。

二维条形码的识别有两种方法:① 通过线型扫描器逐层(行)扫描进行解码;② 通过照相和图像处理进行解码。堆叠式二维条形码用上述两种方法均可识读,但大多数矩阵式二维条形码必须用照相方法进行识读。由于手机/平板电脑可以用作二维条码的扫描器,二维条码的应用已日益普及。

使用手机/平板电脑扫描二维码非常方便,只要安装一个条码扫描器软件(微信和支付宝均自带扫码功能),借助手机/平板电脑的拍照功能,对准二维码,将它套在取景框中,1~2秒钟就能自动读出二维条码所存储的信息,便于网址快速链接、文本自动传输、内容下载、身份认证和商务交易等。

但是,当前二维码生成和识读工具缺乏统一的审核、监控、追溯和认证等监管机制,使二维码泛滥成为不良信息传播的新渠道,需要引起人们足够的重视。

磁条卡的信息记录和读出原理类似于磁盘存储器,现在主要使用在各种银行卡上。银行卡磁条中有3个磁道,用于记录账号等有关信息以标识用户的身份。由于磁条易读出和复制,安全性差,目前正在逐步更换为IC卡。IC卡和射频卡(RFID)已在本书第1章1.3.4节和阅读材料1.4中做过介绍,这里不再重复。表58是常用的几种自动识别输入技术的比较,供参考。

表58常用自动识别输入技术的比较

一维条形码二维条形码磁卡接触式IC卡非接触式IC卡/RFID

信息量小中较小大大

读/写只读只读可读/可写可读/可写可读/可写

标识成本很低低较低中等稍高

识读成本低低较低中等中等

优点成本低,抗

磁力抗静电成本低,抗

磁力抗静电成本较低,

可读写成本适中,

可读写,安全信息量大,

可读写,安全方便

缺点安全性差,

信息量小安全性差,

信息量不大安全性较差需接触式

识读成本稍高

5.2人工智能与机器学习

1. 什么是人工智能

人工智能(artificial intelligence, AI)指使用计算机模拟人的智能行为,目的是构造出具有特定智能的人工系统以完成以往需要人的智力才能胜任的工作,甚至在某些方面能超越人自身的能力,比人做得更好。

人工智能中的“智能”并没有严格的定义。当人们谈到人工智能时,有时指普通人的感知和认知能力,有时指专家的专业技能,有时指人类的群体智慧。因此,关于人工智能,长久以来一直存在两种不同的目标或者理念。一种是希望借鉴人类的智能行为,研制出更好的工具以减轻人们的智力劳动,一般称为“弱人工智能”(也称为“专用人工智能”)。另一种是希望研制出达到甚至超越人类智慧水平的人造物,它具有自主心智和独立意识,能根据自己的意图开展行动,一般称为“强人工智能”(也称为“通用人工智能”“完全人工智能”,科幻电影中的机器人就属于此类)。

人工智能的研究已经有60多年的历史了。20世纪50年代到70年代初,人工智能研究处于“推理期”。那时人们以为只要赋予计算机逻辑推理能力,计算机就具有智能。这一阶段的代表性工作主要有A.Newell和H.Simon研发的“逻辑理论家”程序,该程序在1952年证明了著名数学家罗素和怀特海的名著《数学原理》中的38条定理,继而在1953年证明了全部52条定理,其中定理2.85的证明甚至比作者更加巧妙。两位学者为此获得了1975年的图灵奖。

随着研究工作的推进,人们逐渐认识到,仅有逻辑推理能力远远实现不了人工智能。以E.A. Feigenbaum为代表的学者认为,要使计算机具有智能,必须使计算机拥有知识。在他们的倡导下,20世纪70年代中后期,人工智能进入了“知识期”,其间不少专家系统问世,在一些应用领域取得了成果,E.A.Feigenbaum也在1994年获得了图灵奖。

但是,人们逐渐认识到专家系统面临“知识工程瓶颈”,因为由人把知识总结出来再教给计算机是相当困难的。于是一些学者想到如果计算机能自己学习知识(称为“机器学习”)就好了,这就是人工智能现在所处的“学习期”。从20世纪90年代中期开始,基于统计学理论的“统计学习”方法逐渐兴起,计算机开始从数据中学习知识。

进入21世纪后,互联网的发展和计算机的广泛应用,人们积累的数据多了,拥有的计算能力强大了,基于多层神经网络的“深度学习”方法取得了比较丰富的成果,人工智能再次掀起热潮。特别是最近几年,人工智能正处于高速发展阶段。

人工智能技术迄今所取得的进展和成功,都是缘于弱人工智能而不是强人工智能的研究。例如,在图像识别、语音识别方面,机器已经达到甚至超过了普通人的水平;在机器翻译方面,便携式翻译机已成为现实;在棋类游戏方面,机器已经打败了最顶尖的人类棋手,等等。这都是一些特定类型的智能行为,而不是完全智能行为,没有也不必考虑人的心智、意识、情感之类的东西。

目前在计算机界研究强人工智能的学者不多,主要是太困难,因为人们还不知道如何用数学模型表现并刻画人的智能,如认知能力、意识与情感等。国内外有人在进行“类脑芯片”的研究,试图模仿人脑神经元结构和人脑感知认知方式来设计一种完全与传统冯·诺依曼结构不同的计算机芯片,目前还处于探索阶段。总之,完整地实现人工智能是长期的、极具挑战性的,人工智能的顶峰可能永远无法到达。但不管怎样,人工智能技术将会不断发展,计算机将会变得越来越加智能。

2. 机器学习

(1) 计算机的学习过程

实现人工智能的途径之一是模拟。模拟就是将人的智能行为的输入与输出记录下来,用计算机进行模仿,在相同输入的情况下使计算机给出与人相似的反应。机器学习就是模拟人类智能的一种有力工具,它是近几年人工智能领域中最热门的一项技术。从网上购物到自动驾驶汽车,从刷脸付费到微软小冰聊天机器人,都有机器学习的功劳在内。

机器学习与人的学习过程颇为相似。人们在生活中积累了许多经验,通过对这些经验的归纳总结,形成规律(知识),当遇到新情况新问题时,就使用这些规律/知识进行分析,做出预测[图525(a)]。机器学习则是计算机利用已有的经验数据,得出某种模型(规律),并利用此模型判断/预测未知数据的一种方法[图525(b)]。

例如,把各种各样的狗的图片输入计算机,计算机通过机器学习算法可得出狗的模型(特征),这个过程称为训练;当不明对象的图片输入计算机时,计算机即可使用该模型进行判断/预测,判定图片中的对象是不是狗。

图525计算机的学习过程

机器学习的算法有多种,如回归算法、支持向量机算法、聚类算法、降维算法、人工神经网络(ANN,简称神经网络)技术等。下面简单介绍人工神经网络技术。

(2) 人工神经网络

人脑的神经网络非常复杂,它由大约1000亿个神经元组成[图526(a)]。1904年生物学家就已经知晓了神经元的组成结构[图526(b)]:一个神经元通常由细胞核和多个树突及一条轴突组成,树突用来接收信息,细胞核负责处理信息,轴突通过尾端的多个轴突末梢给其他神经元传递信息。图526(c)是1943年心理学家McCulloch和数学家Pitts提出的神经元的数学模型,它有若干输入和输出(有多个输出时所有输出均相同),其中箭头线称为“连接”,用于传递信号,每个连接有一个“权值”w,信号a经传递后变成a×w。圆圈f表示计算,输入输出之间的关系可表示为:Z=g(a1×w1+a2×w2+a3×w3),其中g称为激活函数,它可以是符号函数sgn(当输入大于0时,输出1,否则输出0),也可以是将变量映射到0、1之间的平滑函数sigmoid。

图526神经元及其模型

人工神经网络是一种模拟人脑神经网络的机器学习技术,它由输入层、输出层和中间层(也称隐藏层)组成。输入层用于数据输入,只负责传输数据,不做计算;输出层用于输出预测结果;中间层和输出层中的圆圈(也称为节点或单元)代表处理单元,它负责对前一层送来的输入进行计算。若干个节点组成一个层,若干个层组成一个人工神经网络。图527(a)只有一个计算层,称为“单层神经网络”(没有中间层)。图527(b)有2个计算层,称为“两层神经网络”(有1个中间层)。图527(c)超过2个计算层,称为“多层神经网络”,基于多层神经网络的机器学习方法称为“深度学习”。

图527神经网络

神经网络输入层的节点数需要与输入数据的维度相匹配,输出层的节点数要与目标的维度匹配,它们的节点数目是固定的,中间层的节点数目可以有多种选择。例如图527(b)的神经网络用于车牌字符识别时,输入是120个节点(因为每个字符由10×12的像素矩阵表示,每个节点输入1个像素值),输出共65个节点,分别对应需预测(识别)的65个不同的字母、数字和符号。实验表明,中间层(隐藏层)节点的数目选择40时效果较好。

3. 深度学习

神经网络的本质是一个简单函数经过多层嵌套叠加形成的一个数学模型,通过调整网络中的参数(权值wi)与激活函数g来拟合输入与输出之间的真实函数关系。为了使神经网络(模型)尽可能地逼近真实的函数关系,必须对网络进行训练。具体做法是:首先给所有参数赋随机值,使用这些随机值对训练数据进行预测,将预测值yp与训练数据的真实值y进行比较,定义其残差为(yp-y)2。训练过程就是不断调整和优化网络中的参数,使得所有训练数据的残差之和∑(yp-y)2达到最小。为此,网络中的参数需反复多次调整才能逐步逼近其最优解,所以训练过程的计算量很大。

研究发现,增加神经网络中参数的数目能提升网络的学习能力,在参数数目相同的情况下,增加网络的层次比增加网络的宽度更为有效。2006年,加拿大多伦多大学的杰夫·辛顿在《Science》上论证了多层神经网络具有优异的学习能力,生成的模型更精准。2012年他组队参加计算机视觉领域的ImageNet竞赛,使用深度学习方法以超过第二名10个百分点的成绩引起大家关注,深度学习就此兴起。微软研究院2015年也在ImageNet竞赛中使用152层的神经网络夺冠。这几年随着人们收集、存储、传输和处理数据的能力飞速提升,深度学习已经成为机器学习中的主流技术,在人工智能应用中取得了许多不凡的成绩。

例如,微软公司演示的一个全自动的同声传译系统,讲演者用英文演讲,后台的计算机一气呵成自动完成语音识别、英中翻译以及中文语音合成,其中的关键技术是深度学习。谷歌公司耗巨资开发的AlphaGo(阿尔法狗)围棋程序,使用了强化学习、深度学习以及蒙特卡洛树搜索技术,通过对几千万局棋谱数据的训练学习,2017年以3∶0完胜围棋世界冠军柯洁,令世人瞩目。

我国科大讯飞公司在国际最高水平的语音合成比赛Blizzard Challenge(暴风雪竞赛)中7项指标全部第一,参加第4届CHiME Challenge国际多通道语音分离和识别大赛也获取了全部3项赛事的第一名,中文语音识别系统多年保持领先,英语语音识别同样也达到了国际领先水平。讯飞公司开发的便携式实时翻译机“讯飞·译呗”,解决了方言、俚语和背景噪声的干扰问题,可在中文和其他十多种语言之间进行精准的同声互译,并可充当速记员进行记录并显示,还能通过使用口语进行信息查询。

尽管以深度学习为代表的机器学习技术目前在图像处理、语音识别与合成、计算机视觉等应用领域中取得了很大成功,但现在的机器学习算法还存在若干问题:训练数据需求量大、环境适应能力弱、模型的可解释性差、经验分享困难、理论研究还没有跟上等。相信更多优秀的机器学习算法今后还会不断出现。

5.3大数据、云计算与人工智能

1. 人工智能与机器学习

机器学习只是人工智能的分支之一,它是从数据中自动分析获得规律,并利用规律对未知数据进行预测的一类算法。人工智能涵盖的领域很广,除了机器学习之外,还包括专家系统、进化计算、模糊逻辑、粗糙集、多代理、规划问题等。最近几年,人工智能的发展主要得益于机器学习特别是深度学习取得的突破,其他领域的进展相对较小。

深度学习是机器学习的一个分支。深度学习特别热门是因为它在图像、视频、语音方面取得了很大的成功,人们接触较多,感受也比较深。其实其他机器学习方法在各自的领域也都有成就,不同方法适用不同的领域。

另外,深度学习的基础是多层神经网络,人工神经网络的研究早期确实受到人脑神经网络的启发,但不能说深度学习模拟了人脑,其实它与人脑的工作机理差别非常大,不宜对之产生不切实际的奢望。

2. 人工智能与大数据

通常讲大数据都会提到4个V,即Volume(数量大)、Velocity(更新快)、Variety(类型多)、Value(有价值)。它不仅数据量大,而且类型多,关键是要将不同类型的多源数据进行融合(即把来自不同领域的数据中的知识相互结合,形成1+1>2的合力),这是大数据的战略制高点。

从数据生命周期这个角度来看,大数据是提供数据采集、管理、分析挖掘到服务的解决行业应用的知识获取过程,数据库、机器学习、人工智能等都是其中的重要环节。

数据挖掘是从数据中获取知识的过程,挖掘工具和方法可以是基于数据库的挖掘方法,也可以使用机器学习(如深度学习)方法,同样也可以使用人工智能中非机器学习的方法,比如遗传算法和粗糙集等。当数据挖掘被用来挖掘多源数据中蕴含的知识时,需要设计新的多源数据融合的机器学习算法。

当数据量非常大时,数据挖掘需要借助云平台来承载数据,并利用云平台中的分布式计算单元来提高数据挖掘效率。

3. 人工智能与云计算平台

云计算平台一般是由IT公司建立的涵盖基础设施、计算资源和平台软件的集成体。云平台解决了用户各自搭建计算平台的困难(周期长、升级慢、建设和维护成本高),使用户可以专注于自己的业务处理。用户可以高效、灵活地调整自己的资源配置,IT公司则根据用户使用的资源收取费用。

云计算平台为大数据的存储和分析提供了条件,许多云计算平台也是大数据平台。近些年不少公司(如微软、谷歌、IBM、 Facebook和我国的百度、腾讯、阿里巴巴等)开发了基于云计算平台的数据分析和机器学习工具,并把这些算法和工具集开源/开放出来,提供基于人工智能的云服务,供更多开发人员在平台上开发智能软件,拓展人工智能的应用,以期获得更大的市场(图528)。

图528云计算和AI平台

以百度公司的人工智能平台“百度大脑”为例。百度大脑是百度基于超级计算机和深度学习技术开发的综合应用平台,包括语音及自然语言处理、计算机视觉、机器学习等核心技术,目前向合作伙伴开放百度机器学习平台BML和百度深度学习平台PaddlePaddle,可以助力合作伙伴开拓创新,共创AI技术的新天地。

4. 人工智能与芯片

深度学习与传统计算任务的最大区别是需要大量进行并行运算,传统的处理器(如x86、ARM处理器)以串行处理为主,无法胜任大规模并行处理任务,因此必须有更适合此类算法的新的硬件来加快深度学习的计算过程。

本书第2章阅读材料2.5中介绍了图形处理器GPU。GPU是作为应对图形绘制和图像处理需求而开发的芯片,每个GPU芯片包含有数以百计的运算处理部件,特别适合海量数据的并行计算,与深度学习的需求不谋而合。2011年谷歌大脑使用了12个英伟达(Nvidia)公司的GPU芯片,提供了相当于2000个CPU的深度学习性能,取得了惊人效果。之后GPU芯片迅速切入人工智能领域(如运行AlphaGo围棋程序的系统使用了约170个GPU和1200个CPU)。

然而,GPU用于深度学习也有不足之处,主要是其结构固定,功耗较高。另一种称为FPGA(现场可编程门阵列)的芯片可以在运行深度学习算法时获得相同的性能,而所需功耗小于GPU,硬件结构可以灵活进行配置,很适合算法不断更新、应用非常活跃的人工智能领域。百度公司发布的云计算加速芯片XPU、深鉴科技针对图像识别与语音识别的专用DPU等都采用了FPGA方案。

为适应人工智能的普及应用和产业规模化发展的需要,近年来芯片业界大力研发专用于人工智能的专用芯片(ASIC),用创新的架构和高密度、高并行、可扩展的计算和存储结构来大幅度加大深度学习的性能。如NVIDIA专门为深度学习设计的芯片Tesla,谷歌为机器学习定制的TPU芯片,英特尔的子公司Movidius的视觉处理器Myriad X等。我国中科院计算所寒武纪公司研发的云端智能芯片ambricon MLU100,可支持各类深度学习和经典机器学习算法,充分满足视觉、语音、自然语言处理、经典数据挖掘等领域在复杂场景下云端智能处理的需求。

深度学习的训练阶段需要处理海量的训练数据,计算量特别巨大,目前只能在部署了大量计算力的云端完成,而无法在资源有限的终端设备(如PC、手机、机器人、自动驾驶仪等)上进行。深度学习训练出来的模型仍很复杂,由终端设备完成推理/预测也有相当难度,通常都由云端完成推理计算后把结果传送给终端设备(例如花卉图片的自动识别)。

然而,有不少应用如高级辅助驾驶系统(ADAS)、虚拟现实(VR)、智能监控、人脸识别、机器翻译等对实时性有一定要求,终端设备必须自行完成推理计算,这就希望终端设备具备足够的推理计算能力。这几年适用于终端设备的低功耗、低延迟、低成本的专用深度学习芯片也在不断出现,它们应用更广泛,需求更多样,因此竞争也更激烈。

以智能手机为例,苹果公司iPhone X手机使用的A11芯片中,配置了1个称为“Apple Neural Engine”的神经网络处理器,它用于完成面部识别、语音识别等人工智能相关任务,提升了AI算法的效率。国产华为智能手机Mate10、P20和荣耀10使用的麒麟970芯片中,也包含了1个神经网络处理器NPU(寒武纪1A),浮点运算性能可以达到1.92 TFLOPS,相比使用4个CortexA73 CPU处理同样的人工智能任务,性能可提高25倍。

第6章计算机信息系统与数据库

第6章计算机信息系统与数据库

在当今社会信息化的进程中,综合应用各种新技术的计算机信息系统是功不可没的。信息系统使全社会的信息管理、信息检索、信息分析达到了新的水平。因此,学习信息系统和数据库的相关基础知识,了解信息系统的数据处理和分析过程,对于信息时代的每一个成员而言都是十分必要的。

6.1计算机信息系统

6.1.1什么是计算机信息系统

许多情况下,计算机信息系统(computer information system)是一个比较笼统的概念。本章所说的计算机信息系统(以下简称信息系统),是特指一类以提供信息服务为主要目的的数据密集型、人机交互式的计算机应用系统。它有下列4个特点:

(1) 涉及的数据量很大,有时甚至是海量的。例如银行信息系统中包含了数以千万计的集团客户和个人客户的所有存/取、贷款和交易数据。

(2) 绝大部分数据是持久的,它们不会随着程序运行结束而消失,需要长期保留在计算机系统中。

(3) 这些持久数据为多个应用程序和多个用户所共享,用户范围小则一个部门、一个单位,大则整个行业、地区甚至全国或全球共享使用。

(4) 除具有数据采集、存储、处理、传输和管理等基本功能外,信息系统还可向用户提供信息检索、统计报表、事务处理、分析、控制、预测、决策、报警、提示等多种信息服务。

20世纪60年代以前,计算机主要用于科学和工程计算,计算机应用是以数值分析算法为中心展开设计的,数据一般由文件系统管理。后来,出现了一些基于文件系统的计算机事务处理系统,目的是代替人们做某些诸如进、出账管理和自动生成统计报表等事务性操作。70年代,以数据的集中管理和共享为特征的数据库系统成为数据管理的主要形式,计算机的大量应用也从科学计算开始转向事务处理与分析,包括辅助人们对某些复杂事务进行规划和决策。80~90年代,随着计算机网络、数据库技术和个人计算机的发展与普及,以信息为中心的计算机信息系统成为主流的计算机应用系统。

进入21世纪以来,互联网和移动互联网成为计算机应用的基础设施,基于网络和数据库的计算机信息系统,已经广泛应用于各个行业和领域的信息化建设,在数据挖掘对决策支持的应用方面也取得了显著成果。当今,人们对于数据管理和应用提出了更多新的需求,因此云计算、物联网、大数据和区块链等技术应运而生,使得相应的信息系统在功能、规模和深度上都发生了巨大改变。

在计算机硬件、系统软件和网络等基础设施支撑下运行的计算机信息系统,其结构如图61所示,通常可以划分为3个层次:

图61计算机信息系统层次结构图

(1) 资源管理层,包括各种类型的数据信息,以及实现信息采集、存储、传输、存取和管理的各种资源管理系统,主要有数据库、数据库管理系统和目录服务系统等。

(2) 业务逻辑层,由实现各种业务功能、流程、规则、策略等应用业务的一组程序代码构成。

(3) 应用表现层,其功能是通过人机交互等方式,将业务逻辑和资源管理紧密结合在一起,并以直观形象的形式向用户展现信息处理的结果。

当前,计算机信息系统已广泛应用于各个行业和领域的信息化建设,种类繁多。从功能来分,常见的有电子数据处理、管理信息系统、决策支持系统等;从应用领域来分,有办公自动化系统、军事指挥信息系统、医疗信息系统、民航订票系统、电子商务系统、电子政务系统等。阅读材料6.1介绍了一种典型的信息系统,即电子商务和淘宝网,供学习参考。

必须指出,上面叙述中使用的“信息”和“数据”这两个术语,其概念在计算机信息处理中是既有区别又有联系的。计算机信息处理是比较宏观的属于计算机应用层面的提法,微观上(或者说技术上)它就是由计算机进行数据处理的过程。也就是说,通过采集和输入信息,将信息以二进制数据的形式存储到计算机系统,并对数据进行编辑、加工、分析、计算、解释、推论、转换、合并、分类、统计和传送等操作,最终向人们提供多种多样的信息服务。在许多场合下,如果不引起混淆的话,信息和数据一般并不严格加以区分。这一点请读者注意。

6.1.2信息系统与数据库

通常,图61中的资源管理层主要是由数据库和数据库管理系统所组成的。

1. 数据库

数据库是长期存储在计算机内、有组织、可共享的数据集合。顾名思义,它是存放大量数据的“仓库”。数据库中的数据必须按一定的方式(称为“数据模型”)进行组织、描述和存储,具有较小的冗余度,较高的数据独立性和易扩展性,并可为各种用户所共享。

数据库在对大量信息的有效存储和快速存取方面发挥着重要作用,它是大型信息系统的核心和基础。数据库的应用领域从传统的面向商业与事务处理已经扩展到科技、经济、社会、生活的各个领域。

数据库的设计和建立是一项技术要求很高、工作量很大的任务。即使数据库建成了,为保证数据库系统的正常运行和服务质量,数据库需要经常性地进行数据更新和维护、数据库监护、安全控制等,有时还需要进行调整、重组甚至重构,这些都是由称之为“数据库管理员”(DBA)的专业人员负责的。

2. 数据库中的数据如何组织——数据模型

为了有效存取和快速处理数据库中的数据,数据库中的数据都是有序地、有组织地进行存储的,或者说它们是按照指定的“数据模型”进行存储的。

举个简单的例子。某班级有若干学生,他们划分为几个学习小组,同时还按照个人的爱好成立了一些运动队(例如棋类队和球类队),运动队为开展活动方便,约定了相互间的联络人以便互相通知。有关的这些数据可以组织成如图62所示的三种形式。

姓名代号职务棋类队棋·联络人球类队球·联络人

陈军A班长是发起否/

成一兵B1组组长是F否/

程红C2组组长否/是H

戴平凡D1组组员是A否/

邓君E1组组员否/是发起

丁颖F1组组员是D是G

范仁义G2组组员否/是C

冯代民H2组组员是B是E

(a) 关系模型

(b) 层次模型

(c) 网状模型

图62三种数据模型举例

图62中,(a) 以二维表格形式来组织数据的方法称为关系模型,表格中的每一行是一个学生有关数据的记录,它由7个数据项组成,每一列用来指出对应数据项的属性,这种方式具有一目了然的优点,便于对数据进行分析统计。(b) 以树的层次形式来组织数据,它能明显地表示出学生在班级中的分组情况以及相关职务。(c) 以网络的形式来组织数据,它能清晰地指出每个运动队成员相互间的联络路径情况。

建立在上述三种不同数据模型基础上的数据库,分别称为关系数据库、层次数据库和网状数据库。其中,关系数据库借助于关系代数等数学概念和方法来处理数据,有严格的理论依据。现实世界中的各种实体以及实体之间的各种联系均可以用关系模型来表示。20世纪80年代以来,关系数据库已经成为数据库技术的主流。

3. 关系数据库

上面说过,采用关系模型的数据库就是关系数据库(relational database),它采用二维表结构来表示各类实体及其间的联系,二维表由行和列组成。一个关系数据库由许多张二维表组成。

例如,大学教务信息管理系统的数据库中,就存放着与教务管理相关的大量数据,其中用于反映关于学生选课和成绩管理的有三张二维表(图63),分别是学生登记表S(数据项有学号,姓名,系别,性别,出生日期,身高),学生选课成绩表SC(数据项有学号,课程号,成绩)和课程开设表C(数据项有课程号,课程名,学时,开课学期)。

SNOSNAMEDEPARTSEXBDATEHEIGHT

A041周光明自动控制男1997.8.101.7

C005张雷计算机男1998.6.301.75

C008王宁计算机女1997.8.201.62

M038李霞霞应用数学女1999.10.201.65

R098钱欣管理工程男1997.5.161.8

学生登记表(S)

SNOCNOGRADE

A041CC11292

A041ME23492.5

A041MS21190

C005CC11284.5

C005CS20282

M038ME23485

R098CS20275

R098MS21170.5

CNOCNAMELHOURSEMESTER

CC112软件工程60春

CS202数据库45秋

EE103控制工程60春

ME234数学分析40秋

MS211人工智能60秋课程开设表(C)

学生选课成绩表(SC)

图63教务管理数据库中的三张表

仔细分析一下上面的学生登记表S,表中的每一行是一个记录;表中的每一列是一个属性,该表有6列,对应6个属性(学号,姓名,系别,性别,出生日期,身高)。属性有一定的取值范围,称为域,表中性别的域是(男,女),系别的值域是一个学校所有系名的集合。表中每个学生的学号都不相同,它可以唯一确定一个学生。特别需要指出的是,这三张表不是相互孤立的。学生登记表S中的SNO(学号),对应学生选课成绩表SC中的学号;学生选课成绩表SC中的CNO(课程号),对应课程开设表C中的课程号,它们之间有着密切的关联。

关系数据库管理系统可以对二维表进行各种运算,例如并、交、差、选择、投影、连接等。有关内容在下一节做介绍。

4. 数据库管理系统

资源管理层中与数据库紧密相关的另一个部分是数据库管理系统(data base management system, DBMS),它是一种操纵和管理数据库的大型系统软件,其任务是统一管理和控制整个数据库的建立、运行和维护,使用户能方便地定义数据和操纵数据,并保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的数据库恢复。用户可以通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。

DBMS提供多种功能,可使多个应用程序和用户用不同的方法在相同或不同时刻去建立、修改和查询数据库。通常,数据库管理系统具有以下几个方面的功能:

● 定义数据库的结构,组织与存取数据库中的数据。

● 提供交互式的查询。

● 管理数据库事务运行。

● 为维护数据库提供工具,等等。

现在流行使用的数据库管理系统产品有多种。代表性的有:美国甲骨文公司的ORACLE,IBM公司的DB2,微软公司的Microsoft SQL Server、Access和VFP,以及自由软件MySQL和POSTGRES等。

5. 基于数据库的信息系统

当计算机开始应用于数据处理领域之后,面对数据管理的需求,人们就致力于研究在计算机信息系统中如何准确地表示数据,如何有效地获取与组织数据,以及如何高效地存储和处理数据。特别是20世纪60年代中期以后,由于数据量急剧增长,计算机用于管理并实现共享数据的需求越来越迫切,人们逐步开发了采用数据库技术的信息系统——数据库系统(DBS)。在数据库系统中,它以统一管理和共享数据为主要特征,数据不再仅仅服务于某个应用或用户,而是按一定的结构存储于数据库中,作为共享资源,由数据库管理系统(DBMS)统一管理,使数据能为更多的应用和更多的用户服务。

图64以一个学校信息系统为例,说明数据库系统中应用程序、数据库管理系统、操作系统以及数据库之间的相互关系,它与图61的结构是相对应的。其中,各种应用程序是根据学校教学科研工作的需求,利用程序设计语言和DBMS所提供的功能,实现对数据库中的数据资源(二维表)进行运算和处理,用来解决各种管理和决策问题。如学生选课管理、成绩管理、学分管理、收费管理、教务管理、教室管理、教材管理和科研管理等。

图64学校信息系统的组成

这种基于数据库的信息系统有以下几个主要特点:

(1) 数据结构化。数据库系统中的数据面向整个单位的全局应用,它们采用一定的数据模型(关系模型)进行描述和定义,因而数据具有整体结构化的特征。如前已述及的学生登记表S、课程开设表C及学生选课成绩表SC均具有二维表结构形式,且这三张表之间还存在着一定的关联(图63)。

(2) 数据共享性高,冗余度低。例如学校信息系统中的学生信息只需一处存放,而学校的各个部门(如教务处、学生处、财务处等)都可以查询和使用,不但节省了存储空间,而且保证了数据的一致性。

(3) 应用程序与数据相互独立。由于DBMS提供模式转换机制,当数据库中的数据结构发生变化时,不会影响应用程序。

(4) 统一管理和控制数据。DBMS一般都具有数据安全性、完整性、并发控制和故障恢复功能。

通过以上说明可以看到,数据库系统、数据库管理系统、数据库这些术语在概念和内涵上是不同的,但在一般叙述中,若不引起混淆,也常常把数据库系统简称为数据库。

6.1.3信息系统中的数据库访问

所谓“数据库访问”,就是用户(最终用户和程序开发人员)根据使用要求对存储在数据库中的数据进行操作,例如对相关的二维表进行查询、计算、修改、合并等。上面说过,数据库的所有操作都是通过数据库管理系统(DBMS)进行的。为了方便用户进行数据库访问,DBMS一般都配置有结构化数据库查询语言(structured query language, SQL),供用户使用。

SQL是一种比较接近英语的语言,它具有定义、操纵和控制数据库中数据的能力。详见6.2.3节的介绍。

1. 如何访问数据库中的数据

假设我们已经在数据库中建立了图63所示的三张二维表(建立二维表的方法见阅读材料6.4)。如果某位教师为了分析当前学生学习情况,需要计算机提供一张“男学生选课成绩表”,那么,他可以从键盘上直接键入一条如下的“查询SQL命令”:

SELECT SNAME,DEPART,CNAME,GRADE

FROMS,C,SC

WHERES.SNO=SC.SNOANDSC.CNO=C.CNOANDS.SEX=‘男’;

随后,系统在DBMS(数据库管理系统)控制下,执行该SQL命令(即将图63的三张二维表进行“连接”,按男学生选课的条件进行“选择”处理,生成一张“男学生选课成绩表”),并将所产生的结果在屏幕上进行显示(图65)。

姓名系别选课名成绩

张雷计算机软件工程84.5

张雷计算机数据库82

周光明自动控制软件工程92

周光明自动控制数学分析92.5

周光明自动控制人工智能90

钱欣管理工程数据库75

钱欣管理工程人工智能70.5

图65使用“SQL命令”直接访问数据库

必须指出,上面这种让用户自己使用“查询SQL命令”直接访问数据库的方式,对用户来说是很不方便的,且功能也受限制。因此,数据库管理系统一般都会提供相应的图形用户界面,例如菜单、按钮、窗口和对话框等,让用户按照需要输入有关的查询条件(图66)。在查询结果的展现方面,DBMS也会向用户提供包括更多信息的可视界面(图67)。

图66分类查询的表单

图67查询结果展现:男学生选课成绩表(带有相关统计数据)

以上面的例子为例,不仅可以要求列出每个男学生的选课成绩,还可以要求系统自动统计出每个男学生选课的门数、计算出每人的平均成绩,并且按照用户设计的表格格式把结果显示或打印出来。当然,这就需要软件开发人员将实现上述功能的语句(即命令)编制成应用程序,存入程序文件。在用户访问数据库的时候,就可以调用并运行该程序,通过表单让用户输入查询要求,然后按下“进入”按钮,系统运行后即可得到输出结果。

在上面的简单例子中,分类查询的表单和展现查询结果的表格窗口,都属于图61中应用表现层所提供的功能,而统计选课门数和计算平均成绩,则属于业务逻辑层应该完成的任务。

2. 数据库访问的模式

上面所举的例子是在单台计算机上完成的,这是数据库应用中最简单的情况。其实,数据库更一般的应用情况是:① 信息系统中的数据库要为许多用户服务,这些用户大多是分散的远程用户,与数据库不在同一计算机上,必须通过网络访问数据库。② 相关被查询的二维表可能存储在多台计算机的多个不同数据库中,要求“SQL命令”能够访问不同的数据库。

为了适应上述应用要求,目前计算机信息系统中数据库访问通常采用客户/服务器(C/S)模式或浏览器/服务器(B/S)模式,或者是将两种技术相结合的混合模式。下面先介绍对C/S模式数据库访问过程。

(1) C/S模式

如图68所示,在这种C/S模式中,客户机直接面向用户,应用表现层和业务逻辑层(应用程序)均位于客户机中。用户使用数据库系统时,客户机在屏幕上显示查询表单,接收用户的查询任务,然后执行相应的应用程序。当应用程序执行遇到“SQL 语句”时,表示需要对数据库进行操作,客户机就将这个任务通过网络委托给数据库服务器执行。而数据库服务器也只接收客户机的这种委托请求,完成对数据库的查询(过程与上述单机以SQL命令直接访问数据库相同),并把查询得到的“男学生选课成绩表”返回给客户机。客户机应用程序再按所要求的表格格式展现查询结果。

图68C/S模式的数据库访问

在这种C/S模式数据库访问方式中,由于在网络上只传输查询语句和查询结果,而不必将所需要使用的三张二维表传输到客户机中,这样可以减少在网络上的数据传输量,提高系统效率;同时,在客户机上可以独立存放各自的应用程序,对其修改不影响其他用户的使用。这种C/S模式的优点对于客户机较少、而应用程序相对稳定的信息系统是很适宜的。

(2) B/S模式

信息系统的B/S模式如图69所示。不难看出,这种“B/S三层模式”实质上是中间增加了Web服务器的C/S模式。其第一层是客户层,客户机上配置有浏览器,它起着应用表现层的作用。中间层是业务逻辑层,其中的Web服务器专门为浏览器做“收发工作”和本地静态数据(包括网页、文件系统)的查询,而动态数据则由应用服务器运行动态网页所包括的应用程序而生成,再由Web服务器返回给浏览器。当应用程序中嵌有数据库查询SQL语句时,它就将数据库访问的任务作为一种“查询请求”委托数据库服务器执行。B/S模式的第三层是数据库服务器层,它专门接收使用SQL语言描述的查询请求,访问数据库并将查询结果(结果二维表)返回给中间层。ODBC/JDBC是中间层与数据库服务器层的标准接口(也称为应用程序接口API),通过这个接口,不仅可以向数据库服务器提出访问要求,而且还可以互相对话,它可以连接一个数据库服务器,也可以连接多个不同的数据库服务器。

图69B/S模式的数据库访问

在将Web技术与数据库技术相结合的发展过程中,已经开发出了多种动态网页与数据库访问技术。例如CGI(通用网关接口)、ASP、PHP和JSP等。以ASP技术为例,它可以作为脚本语言程序解释、数据库访问控制和查询结果输出的工具,提供有关数据库访问的Web页面,在ODBC/JDBC支持下,ASP访问数据库执行过程包括:① 连接到所需的数据库;② 指定相应的存储区;③ 执行数据库访问SQL语句并在存储区保存结果二维表;④ 对于存储区中的结果二维表,可以按网页要求进行检查,也可以作为共享数据提供使用。

复习题

(1) 什么是计算机信息系统?说明计算机信息系统的特点。

(2) 说明计算机信息系统结构的三个层次和各层次的功能。

(3) 分析比较信息系统中数据库访问的C/S和B/S模式有哪些异同?

(4) 说明B/S模式信息处理过程中,Web服务器和数据库服务器的作用。

(5) 从数据管理的需求看,说明数据库系统的组成、功能和特点。

6.2关系数据库简介

关系数据模型建立在关系代数的数学理论基础上,概念清晰简洁,能够用统一的结构表示实体集和它们之间的联系,因此,当今大多数数据库都采用关系数据模型。这一节介绍关系模型的三大要素(结构、完整性、运算)和数据库语言方面的内容。

6.2.1关系数据模型的二维表结构和完整性

1. 关系数据模型的二维表结构

从用户的观点看,用关系数据模型描述的数据其逻辑结构具有二维表的形式,它与人们日常所使用的表格相似,由表名、行和列组成。在关系代数中,二维表的每一行称为一个元组,每一列称为一个属性。前面举例中,学校教务管理系统用到的三张表,即学生登记表S、课程开设表C和学生选课成绩表SC都是二维表。其形式、内容和表之间的联系见图63。将这些二维表的数据以文件形式存放在外存储器中的结构称为存储结构。图610说明了数据库系统逻辑结构和存储结构的概念。

图610关系模型的数据结构

数据库中的每个二维表的结构(例如包含多少属性,每个属性的名称、类型及取值范围等)各不相同,它们是用“关系数据模式”来进行说明的,形式为:

R(A1,A2,…Ai…,An)

其中,R为关系模式名,即二维表名。Ai(1≤i≤n)是属性名,也就是表中的数据项名。例如,对于图63中的三张表,表示成关系数据模式分别为:

学生登记表(学号,姓名,系别,性别,出生日期,身高)

课程开设表(课程号,课程名,学时,开课时间)

学生选课成绩表(学号,课程号,成绩)

有时为了简洁,也可以用缩写符号表示:

S(SNO,SNAME,DEPART,SEX,BDATE,HEIGHT)

C(CNO,CNAME,LHOUR,SEMESTER)

SC(SNO,CNO,GRADE)

对于关系数据模式而言,还有一个重要的要求,即必须确定该模式的“主键”。“主键”的作用是用它来唯一区分二维表中不同的元组(行)。“主键”实际上就是该数据模式中的属性(如S模式中的SNO)或者属性组(如SC模式中的SNO与CNO)。上面三个关系数据模式中用下划线标注出的属性就是该模式的主键。

数据库是应用单位所涉及数据的综合,它不但要反映该单位数据本身的内容,而且要反映数据之间的联系。现实世界的数据如何在关系数据库中用二维表来表示,它的数据模式如何设计,有关介绍可以参见本章阅读材料6.2。

2. 关系数据模型的完整性

关系模式用R(A1,A2,…Ai…,An)表示,仅仅说明关系结构的语法,但并不是每个符合语法的元组都能成为R的元组,它还要受到语义的限制。数据的语义不但会限制属性的值,而且还会制约属性间的关系。如学生选课成绩表中的学生必须是学生登记表中已注册的学生等。数据库系统用这种制约来保证数据的正确性,并称其为关系数据模型的完整性。关于关系数据模型完整性的内容,可参阅有关教材和资料。

6.2.2二维表的主要运算

关系数据库中,可以对已知关系(二维表)进行一些规定的“运算”,生成新的关系(二维表)。本节介绍与6.1节教务信息系统实例有关的三个主要运算(选择、投影和连接)。

1. 选择运算

选择运算是一种一元运算。它应用于一个关系并产生另一个新关系。新关系中的元组(行)是原关系中元组的子集。选择运算根据要求从原先关系中选择部分元组。结果关系中的属性(列)与原关系相同(保持不变)。图611是一个选择运算的例子。其操作要求是从学生登记表S中,选出性别为“男”的学生元组,组成一个新关系“男学生登记表”。

学生登记表S

SNOSNAMEDEPARTSEXBDATEHEIGHT

A041周光明自动控制男1994.

8.101.7

C005张雷计算机男1995.

6.301.75

C008王宁计算机女1994.

8.201.62

M038李霞霞应用数学女1996.

10.201.65

R098钱欣管理工程男1994.

5.161.8

选择

SNOSNAMEDEPARTSEXBDATEHEIGHT

A041周光明自动控制男1997.8.101.7

C005张雷计算机男1998.6.301.75

R098钱欣管理工程男1997.5.161.8

图611选择运算

2. 投影运算

作为一元操作的投影运算,它作用于一个关系并产生另一个新关系。新关系中的属性(列)是原关系中属性的子集。在一般情况下,虽然新关系中的元组属性减少了,但其元组(行)的数量与原关系保持不变。图612给出了一个投影运算的例子,即当需要了解学生选课情况而不关心其成绩时,可对学生选课成绩表SC进行相关的投影运算,其结果的每个元组仅包括学号SNO和课程号CNO两个属性。

SC

SNOCNOGRADE

A041CC11292

A041ME23492.5

A041MS21190

C005CC11284.5

C005CS20282

M038ME23485

R098CS20275

R098MS21170.5

投影

SNOCNO

A041CC112

A041ME234

A041MS211

C005CC112

C005CS202

M038ME234

R098CS202

R098MS211

图612投影运算

3. 连接运算

连接运算是一个二元运算。它基于共有属性把两个关系组合起来。连接运算比较复杂并有较多的变化。图613给出了学生登记表S和学生选课成绩表SC的连接,生成一个信息更全面的二维表,对于已选课程的学生而言,结果关系不但包含S表原来的信息,还在其上增加了该学生选修课程的课程号(CNO)和相应的成绩(GRADE)。

学生登记表S

SNOSNAMEDEPARTSEXBDATEHEIGHT

A041周光明自动控制男1997.8.101.7

C005张雷计算机男1998.6.301.75

C008王宁计算机女1997.8.201.62

M038李霞霞应用数学女1999.10.201.65

R098钱欣管理工程男1997.5.161.8

学生选课成绩表SC

SNOCNOGRADE

A041CC11292

A041ME23492.5

A041MS21190

C005CC11284.5

C005CS20282

M038ME23485

R098CS20275

R098MS21170.5

连接

SNOSNAMEDEPARTSEXBDATEHEIGHTCNOGRADE

A041周光明自动控制男1997.8.101.7CC11292

A041周光明自动控制男1997.8.101.7ME23492.5

A041周光明自动控制男1997.8.101.7MS21190

C005张雷计算机男1998.6.301.75CC11284.5

C005张雷计算机男1998.6.301.75CS20282

M038李霞霞应用数学女1999.10.201.65ME23485

R098钱欣管理工程男1997.5.161.8CS20275

R098钱欣管理工程男1997.5.161.8MS21170.5

图613连接运算

6.2.3关系数据库语言SQL

关系数据库管理系统一般都配置相应的语言,用户用以对数据库中的二维表进行各式各样的运算,这种语言称为数据库语言。

关系数据库语言有多种,应用最广的首推SQL。它使用方便,功能齐全(包括数据操作、定义、控制和管理等),简洁易学,一些主流DBMS产品(如ORACLE、Sybase、DB2、SQL server等)都实现了SQL语言。即使是PC机上配备的小型DBMS产品(如Access, VFB),其SQL也部分地提供了数据库查询和更新方面的功能。

1. SQL数据库的体系结构

SQL数据库具有如图614所示的三级体系结构。其中局部模式是面向用户使用的二维表模式,对应于视图;全局模式是应用部门整体性的二维表模式,对应于基本表;存储模式对应于存储文件。

图614SQL数据库的体系结构

在这种体系结构中,用户使用SQL语言对数据库查询主要是通过视图进行的,很少对基本表运算。视图和基本表都是二维表。视图是从一个或几个基本表导出的表。视图并不对应存储在数据库中的文件,因此视图实际是一个“虚表”。这样做可以保证数据库的安全性。

SQL语句可嵌入在程序设计语言(如C,C++等)或动态网页脚本语言(如ASP)中使用。用户也可在终端上以联机交互方式使用SQL语句。SQL包括了所有对数据库的操作,用SQL语言可实现数据库应用过程中的全部活动。

2. SQL的数据查询和视图

(1) SQL的数据查询

数据库查询是数据库的核心操作。SQL语言提供了SELECT语句进行数据库查询,该语句具有灵活的使用方式和丰富的功能。

前已述及,在实际应用中对数据库最常用的关系运算是投影、选择和连接。SQL提供了SELECT查询语句,它的基本形式为:

SELECTA1,A2,…,An(指出查询结果表的列名,相应于投影运算)

FROMR1,R2,…,Rm(指出基本表或视图,相应于连接运算)

[WHEREF](可以省略。F为条件表达式,相应于选择运算的条件)

整个SELECT语句运行过程如下:将FROM子句所指出的基本表或视图进行连接,从中选取满足WHERE子句中条件F的行(元组),最后根据SELECT子句给出的列名将查询结果表输出。

① 单表查询。从指定的一个二维表中找出符合条件的元组,例如,相对于图611,查询所有男学生的情况,其查询语句描述为:

SELECT*

FROMS

WHERESEX=‘男’;

该查询语句中的“*”表示列出S表的所有属性。

② 连接查询。若一个查询同时涉及多个二维表,则称之为连接查询。连接查询是关系数据库中最主要的查询。例如,查询每个男学生及其选修课程的情况。要求列出学生名、系别、选修课程名及成绩。这个查询涉及S、C和SC三个表,S和SC表之间可通过公共属性(SNO)作连接运算,C和SC表之间也可通过公共属性(CNO)来实现连接。

SELECT SNANE,DEPART,CNAME,GRADE

FROMS,C,SC

WHERES.SNO=SC.SNOANDSC.CNO=C.CNOANDS.SEX=‘男’;

不难看出,这个查询语句正是本章6.1.3例子中使用的查询命令。在Web数据库访问中,可将其写在ASP的动态页面中,运行这个查询语句的结果就是“男学生选课成绩表”。

除此之外,SQL还有自然连接查询、非等值连接查询、复合连接查询、嵌套查询等使用方式。特别是嵌套查询可以用多个简单查询构成复杂查询,从而扩充SQL的查询能力。以多层嵌套的方式来构造程序,正是S(structured)QL中“结构化”的含义所在。

(2) SQL的视图

视图是DBMS所提供的一种由用户模式观察数据库中数据的重要机制。视图可由基本表或其他视图导出。它与基本表不同,视图只是一个虚表,在数据库中不作为一个表实际存储数据。

SQL语言用CREATEVIEW语句建立视图,其一般格式为:

CREATEVIEW〈视图名〉

AS〈SELECT查询〉

例如,若建立管理工程系学生的视图ME_S,其定义语句可写为:

CREATEVIEWME_S

AS

SELECTSNO,SNAME,SEX,BDATE,HEIGHT

FROMS

WHEREDEPART=‘管理工程’;

视图定义后,用户就可以像对基本表运算一样对视图进行查询。例如,在管理工程系的学生视图中找出年龄大于22岁的学生,其SQL语句为:

SELECTSNAME2020YEAR(BDATE)

FROMME_S

WHERE2020YEAR(BDATE)〉22;

SELECT语句中的表达式2020YEAR(BDATE),是用当前年份(若为2020)减去学生出生的年份,可得到学生的岁数。

其他SQL语句(如数据定义和更新语句)的介绍可参考本章阅读材料6.4。

复习题

(1) 从概念上对数据模型与数据模式进行理解和区分。

(2) 分别说明“选择”“投影”和“连接”这三个关系运算的对象和结果。

(3) 说明SQL数据库的体系结构。

(4) 在SQLSELECT查询语句中如何体现“选择”“投影”和“连接”运算?

自测题6

一、是非题

1. 数据库是按一定数据模式组织并长期存放在内存中的一组可共享数据的集合。

2. 从用户角度看,关系数据模型中的数据结构就是二维表。

3. 关系数据模型和关系模式在概念上是一致的,没有区别。

二、选择题

1. 信息系统中B/S模式的三层结构是指()

(A) 应用层,传输层,网络互连层

(B) 应用程序层,支持系统层,数据库层

(C) 浏览器层,Web服务器层,数据库服务器层

(D) 客户机层,HTTP网络层,网页层

2. 目前在数据库系统中普遍采用的数据模型是()

(A) 关系模型(B) 层次模型(C) 网络模型(D) OO模型

3. 在关系模式中,对应关系的主键必须是()

(A) 第一个属性或属性组

(B) 不能为空值的一组属性

(C) 能唯一确定元组的一组属性

(D) 具有整数值的属性组

4. 二维表R中有20个元组,按一定条件对其进行“选择”运算,得到的结果为二维表S。S中的元组个数为()

(A) 20(B) 任意(C) 小于等于20(D) 大于等于20

5. 在数据库系统中,位于用户和数据库之间的一层数据管理软件是()

(A) DBS(B) DBMS(C) DB(D) CAD

6. SQL语言提供了SELECT语句进行数据库查询,其查询结果总是一个()

(A) 关系(B) 记录(C) 元组(D) 属性

7. 在SQL语言中,建立视图的语句是()

(A) CREATESCHEMA

(B) CREATETABLE

(C) CREATEVIEW

(D) CREATEINDEX

三、填充题

1. 计算机信息系统具有层次结构,分别为应用表现层、业务逻辑层和层。

2. 关系数据模式R(A1,A2,…Ai…,An)中的R表示,Ai表示。

3. 在关系数据库SQL的数据查询SELECT语句中,FROM子句对应于运算,WHERE子句对应于运算。

第6章阅读材料

6.1典型信息系统介绍——电子商务与淘宝网

前已述及,计算机信息系统已广泛应用于各个行业和领域的信息化建设。本节以电子商务和淘宝网作为典型的信息系统进行介绍。

1. 电子商务

电子商务是指利用计算机和网络通信技术,实现整个商务(买卖)过程中的电子化、数字化和网络化。利用互联网和数据库技术来传输和处理商业信息是电子商务的一个重要的技术特征。

电子商务涵盖的范围很广。随着互联网用户不断增加,电子商务网站也多到成千上万。除了企业与政府之间的电子商务活动(称为“BG”)外,一般的商业交易模式仍与传统模式一样,主要涉及两个主体:买家和卖家。充当这两个主体的既可以是商人或企业,也可以是一般的消费者。于是形成了下列3种商业模式:

(1) 企业对企业(BB)模式。指的是商家(企业)对商家(企业)的电子商务模式,两者在网上进行产品、服务和信息的交换。“BB”有两种基本方式,一种是企业之间直接进行垂直的电子商务关系,例如生产商或零售商与上游的供应商之间的在线采购和供货关系。另一种是面向中间贸易市场的“BB”,一般要通过第三方的网站平台进行比较集中的网上贸易活动。著名的阿里巴巴网站就是一个“BB”的电子商务平台,各类企业可以通过阿里巴巴进行相互的网上贸易活动。

(2) 企业对个人(BC)模式。例如从卓越网上买一款新型数码相机,或从亚马逊网上购买一本教科书,都是“BC”商务模式的体现。企业(卖家)通过网站给消费者(买家)提供一种新的购物环境——“网上商城”,并用多媒体方式陈列了相关商品的销售信息;消费者进入“商城”,可以快速地分门别类地浏览商品,了解商品属性,货比三家之后,选定满意的商品。网上商城都配备有网上支付系统,使得网上购物更为省时省力。由此,足不出户的消费者可以真正地感受到购物的乐趣。

(3) 个人对个人(CC)模式。其间“买卖”双方都是个人,由提供商品的消费者(卖家)与需求商品的消费者(买家)进行网络商务活动。下面介绍的淘宝网就是采用“CC”模式,交易在淘宝网一系列规范的监督下达成协议。如若你注册为淘宝网会员,购买商品时还可以享受更多的折扣。如果有兴趣在网上开店,通过“登录并注册淘宝网—实名和支付宝认证—发布宝贝(商品)—设置装修店铺”等过程后,就拥有属于自己的淘宝网店了,卖家的商品可以是自己的手工制品,也可以是批发来的商品。“CC”模式的特点是大众化,每个人经过淘宝网注册都可以参与网上交易。

2. 电子商务应用实例——淘宝网

目前,淘宝网的注册用户数已经超过8亿。2019年“双十一”当天,全网总销售额2684亿元,创下世界零售业交易的奇迹。随着其规模的扩大和用户数量的增加,淘宝网已从单一的“CC”网络集市发展成包括“CC”、团购、分销、拍卖以及“BC”等多种商务模式的综合性的大型电子商务交易平台。

(1) 淘宝网交易流程和支付宝

淘宝网为用户所搭建的电子商务交易平台,就好比在网络上提供了交易场地、监管员和相应的支付/认证安全系统。买家/卖家交易的所有操作都在交易网络上进行。在提交身份证明及银行账号进行支付宝认证后,用户就取得了在淘宝网上操作的资格。图615是淘宝网上买(/卖)家交易流程的示意图,同时说明了在网络交易过程中的信息流、资金流和物流的变化动情况。

图615淘宝网交易流程和支付宝

其中,资金流是指资金的转移过程,包括电子付款、电子结账和电子结算等过程。在淘宝网中,这些工作是由支付宝来完成的。它的实质是以支付宝为信用中介,在使用支付宝后,买家可以先验收商品再付款,而卖家也可以先确认资金的到位,再发货。在此过程中,支付宝起到了维护网络交易安全的作用。此外,支付宝与银行等金融机构的合作,也增强人们对支付宝信用的信心。可以说,支付宝服务是电子商务中的一个创举。

(2) 淘宝网系统组成结构

在淘宝网运行中,其网络交易系统涉及各类客户(主要指买家和卖家)、信息系统本身所应具有的基础设施、认证中心、支付宝系统、网络安全系统、客服系统和相关反映交易业务逻辑的软件。并由它们组成淘宝网系统,其组成结构如图616所示。

图616淘宝网系统组成

图616中的基础设施主要指网络、操作系统和数据库等。在淘宝网系统中,由服务器集群来提供网站服务,是国内最大的Hadoop分布式计算集群之一。其应用服务器采用Linux操作系统。系统配置了两种关系型数据库管理系统(ORACLE和阿里巴巴自主研发的分布式数据库系统Ocean Base)。软件方面,淘宝网拥有自主研发的网络内容分发系统(CDN)、能对数十亿的商品数据进行实时搜索的搜索引擎以及文件存储系统和缓存系统,加上Java中间件和消息中间件系统,组成了一个功能强大的电子商务运行系统。

6.2数据库设计

——现实世界数据如何转变为计算机的表示和存储

1. 数据抽象的过程

数据库是应用单位所涉及数据的综合,它不但要反映该单位数据本身的内容,而且要反映数据之间的联系。现实世界的数据是如何在数据库系统中用特定的结构来表示的?这些数据又是以何种方式进行存储和处理的?这是人们需要研究并解决的问题。

由于使用数据库的信息系统是一种计算机软件系统,而计算机是不可能直接处理现实世界中的事物的,所以使用数据库系统来管理信息,必须首先将客观世界的实体及其特征等通过概念化的加工,转换成计算机能够组织和存储的数据,再由计算机进行处理,这一过程如图617所示。其中,“抽象①”表示:现实世界中的对象、特征和对象之间的关联经过识别、选择、分类等综合分析,形成概念结构。概念结构是用来反映现实世界中应用单位对数据的描述以及业务需求的,目前常用“实体联系”方法来建立概念结构。具体而言,现实世界中的客观对象(如学生,课程等)在概念结构中被表示为实体,对象的特征(如学生的学号,姓名等)被表示为实体的属性,而对象之间的关联(如学生选修课程)被表示为联系。图617中的“抽象②”,表示该过程的最终目的是针对概念结构的描述内容并按计算机系统所支持的关系模式(二维表)来组织数据。

图617现实世界对象转换到计算机表示

2. 概念结构和ER图

(1) 概念结构

概念结构是对应用单位数据的第一次抽象,也是用户和数据库设计人员之间进行交流与沟通的工具。在“实体联系”方法中,采用ER图来描述某一应用单位的概念结构。

 实体。现实世界客观对象是形形色色的,有具体的,也有抽象的,有物理上存在的(如学校、学生等),也有概念性的(如兴趣、信仰等)。凡是可以被人们识别而又可以互相区别的客观对象统统抽象为实体。在一个单位中,具有共性的一类实体可以组合为一个实体集。例如,有张雷、王宁等学生,他们每一个人都是一个“学生”实体。为了便于描述,可以定义“学生”这样一个实体集。这样,所有学生都是这个集合的成员。

 属性。实体一般具有若干特征,用于描述其性质,这种特征称之为实体的属性。例如学生具有学号、姓名、系别等属性。每个属性有其取值的范围。

 实体主键。能够唯一标识实体的属性或属性组(这组属性的任何真子集无此性质),称为实体集的实体键。如果一个实体集有多个实体键存在,则可从中选一个最常用的,简称主键。

 联系。现实世界中事物之间是有关联的,抽象到概念结构中的实体之间也会有各种联系。例如学生实体集与课程实体集之间可有学生选课联系。

实体集之间的联系有下列三类不同语义的情况:

其一,一对一联系(1∶1)。若对于实体集A的每一个实体,实体集B中至多有一个实体与之联系;反之亦然,则称实体集A和实体集B具有1∶1联系。如学生实体集与教室座位实体集就存在1∶1的联系。因为一个座位只供一个学生就座,而一个学生也只可坐一个座位。

其二,一对多联系(1∶n)。若对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系;而对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B存在1∶n的联系。如“系”实体集与学生实体集就存在1∶n的联系,因为按学籍管理章程规定:一个系可以包含多名学生,而一个学生只属于一个系。

其三,多对多联系(m∶n)。若对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系;反之亦然,则称该两个实体集A、B之间存在m∶n联系。如一个学生可以选修多门课程,而一门课程也可以被多名学生选修,则学生与课程两个实体集之间就存在m∶n联系。

(2) ER图

用ER概念结构对一个单位进行模拟,也称ER概念模式。ER概念模式可用直观的ER图表示。图618是一个学校教务管理处的部分ER图。其中,用矩形框表示实体集,菱形框代表联系,椭圆(或圆形)框表示属性,加斜杠线的属性组成相应实体集的主键。联系与实体集相连的线上要注明联系的语义类型。

图618学校教务管理处的部分ER图

3. ER概念结构转换为关系数据模式

在ER概念结构中,用实体集和联系表示现实世界中的事物及其相互关联,而在关系模式中,应用单一的结构(二维表)来组织数据。下面简要介绍ER概念模型转换为关系模式的几条原则。

(1) 实体集的转换

ER概念结构中的每个实体集都转换成一个同名的关系模式,实体集的属性就是关系模式的属性,实体集的主键就是关系模式的主键。

(2) 联系的转换

ER概念模型中的每个联系也用一个同名的关系模式表示,与该联系相连的多个实体集的主键以及联系的属性组合为关系模式的属性,其主键选取有三种情况:

 若联系为1∶1,则每个实体集的主键均是该关系模式候选键,可任选其一作为关系模式的主键。

 若联系为1∶n,取n端实体集的主键作为该关系模式的主键。

 若联系为m∶n,则关系模式的主键为各实体集主键的组合。

针对图618中的ER图,将其中的实体集(S和C)和联系(SC)分别转换得到的关系模式S、C和SC已在前面讨论中列出,读者可以自行参照理解。

在此还要特别说明一点,即以上所述的模式、关系、元组、属性等术语均来自关系代数学,即关系模型的理论来源。实际上,这些术语与程序员和用户的习惯说法是相对应的。为了学习和理解的方便,现将这些术语的对应关系列于表61中。

表61基本术语对照表

关系模型程序员用户

关系模式文件结构二维表结构

关系(二维表)文件表

元组记录行

属性数据项(字段)列

6.3基于数据库的数据挖掘

1. 什么是数据挖掘

随着信息技术在各个领域的普遍应用,人们在信息化进程中已经建立了数以百万计的信息系统。由于人类获取数据能力不断增强,数据库的数据和规模还在快速增加。面对如潮涌而来并积累的大量数据,人们不再满足于数据库的查询功能,而提出了深层次问题:能不能从这些数据中提取出为决策服务的信息?也就是要求通过分析这些数据来提取反映规律和规则的信息(知识)。就数据库技术而言已经显得无能为力了,而新兴的数据挖掘(data mining, DM)技术则回答:“能!”

数据挖掘又称数据库中的知识发现(knowledge discovery in database, KDD),是目前最热门的数据资源分析技术。它可以从大量的数据中及时有效地提取隐含其中未知的、有用的、不一般的信息和知识,用以对决策活动进行支持。

数据挖掘最典型的例子莫过于发现“尿布与啤酒”的关联。尿布与啤酒看似毫不相干,在这里恰引出了一段有趣的故事:总部位于美国阿肯色州的著名连锁超市沃尔玛(WalMart)拥有世界上最大的数据库系统。超市老板为了准确了解顾客在其门店的购买习惯,例如顾客经常一次消费同时购买的商品有哪些?为此他利用NCR数据挖掘软件,对各门店的原始交易数据进行了“购物篮”分析。一个意外的发现是:“跟尿布一起购买最多的商品竟是啤酒。”这个对历史数据挖掘的结果反映了数据内在的什么规律呢?沃尔玛市场分析师对此调查分析,指出它揭示了隐藏在“尿布与啤酒”背后的美国人的一种行为模式:年轻夫妇通常在星期四晚上到超市购买所需的物品,买尿布给婴儿用,总是习惯捎带买些啤酒(为周末观看篮球赛或棒球赛所准备的)。既然两者一起被购买的机会很多,于是沃尔玛就在其美国所有的门店都将尿布与啤酒摆放在相近货架上,这样极大地方便了顾客,也使尿布与啤酒的销售量双双增长。

2. 数据挖掘的任务和方法

大量数据中往往总隐藏着各种各样能够反映规律或者规则的信息。上例说明了超市商品数据之间的相关性。必须指出,现有的运行数据库虽然数据量很大,而其中真正有价值的信息却很少。因此,必须对大量的业务数据进行深层的抽取、转换、分析和模型化处理,从中提取对决策应用有支持作用的关键性信息,即能够反映规律和规则的知识。下面以交易数据为例,简单说明常用的数据挖掘任务。交易数据代表一次交易的记录,如超市收款机打印的“小票”,每个“小票”记录了交易的属性有(单号、卡号、日期、货号、品名、数量、单价和总价等)。

(1) 联系分析。即发现数据属性之间的联系。例如顾客如果购买了A商品,一般都要购买B商品,这是同一交易记录内数据属性的联系,称为关联规则,如上例中提到的“购物篮”分析。

(2) 演变分析,联系发生在不同交易的数据之间,描述时间序列数据随时间变化的规律或趋势。例如一个顾客购买了C商品,一般接着购买D商品和E商品等,称其为序列规则。又如:通过对股票市场交易数据的演变分析,可能得到“89%情况股票X上涨一周左右后,股票Y会上涨”这样一条序列规则。

(3) 分类和聚类。人们经常说“物以类聚,人以群分”。按数据的特征将数据划分为若干类别(子集),由此来判别(或预测)新的数据对象所属的数据类。例如,信用卡公司通过“分类分析”将持卡人的信誉度分类为良好、普通和较差的信誉等级模型,由此对一个新的持卡人就可以根据他的特征预测其信誉度。

(4) 异常分析,又称离散点分析。一个数据集中往往包含一些特别的数据,其行为和模式与一般的数据不同(离散点),这些数据称为“异常”。对“异常”数据的分析称为“异常分析”。它在欺诈甄别、网络入侵检测等方面有着广泛的应用。

数据挖掘方法主要有机器学习方法(可进一步分为归纳学习、样例学习和遗传算法)、神经网络方法和数据库方法。其中数据库方法包括多维护数据分析、在线分析处理以及面向属性的归纳方法。这些方法可以用来解决上述数据挖掘任务中遇到的各类问题。

3. 数据挖掘的应用

虽然针对数据库的数据挖掘研究和开发只是从20世纪80年代才开始的,但由于应用需求的驱动,其发展速度快,使用范围广。下面介绍一些应用案例:

 工程和科学。对该领域数据库中大量实验和观察数据进行科学分析,已经获得许多重要研究成果。例如,通过对天文数据的挖掘,发现新的星体;通过对生物信息数据分析,发现新的基因和蛋白质折叠;识别具有良好药物特性的分子,用于制造新药;通过对医疗数据的分析,发现药物和疾病之间的关系等。

 金融和保险。金融行业数据挖掘主要用来发现客户、消费群体或组织的金融和商业兴趣,以便进行账户分类、信用评估;也可观察金融市场的变化,做出趋势预测;保险数据挖掘可以建立预测模型、了解险种关联;设计针对不同人群和企业的险种和险金;辨别可能的欺诈行为,避免风险,减少成本,提高利润。

 市场和零售业。这是最早运用数据挖掘技术的行业。主要进行市场定位、消费者分析、销售预测、库存需求、零售点选择、价格分析和辅助制定市场营销策略等。

 制造业。用数据挖掘进行零部件故障诊断、资源优化、生产工艺流程分析等。

 电子商务。通过数据挖掘对网站进行分析,识别用户的行为模式,保留客户,提供个性化服务,优化网站设计等。

 司法。应用于案件调查、诈骗检测、犯罪行为分析等方面。

 体育运动。例如,NBA使用一套数据挖掘工具,分析球员的运动规律,以辅助教练找到最优组织进攻和防守的方法。

以上的应用案例举不胜举。说明只要相关产业或部门有其数据库,都可利用数据挖掘技术和工具进行有目的的挖掘分析,获得反映规则和规律性的信息知识并用于决策支持,促进事业的发展。

6.4云计算

1. “云计算”说法的由来

一般而言,企业建立IT系统需要拥有一套设备(硬/软件)和专门的维护人员,当其需求变化时还要不断对设备进行升级。而这些设备仅仅是一种为完成任务、提高效率的工具而已。对个人来说,在电脑上安装的一些收费软件,如果不经常使用,那也是非常不划算的。那么,为了节省购买资金,对于所需计算机资源有没有更合理的配置和使用方式呢?能不能采用“租用”硬/软件的方式来获得服务呢?正如人们每天都要用电,但不是每家自备发电机,它是由电厂发电通过电网提供的;人们每天都要用水,也不是每家自备水井,它是由自来水厂通过管道提供的。电和水的使用模式极大地降低了用户的使用成本,也方便了人们的生活。

著名的美国计算机科学家麦卡锡(John McCarthy)在半个世纪前就曾思考过这个问题。1961年的一次演讲中,他提出了要像使用电和水资源那样使用计算资源的想法。随着互联网等技术的发展,2006年Google首先提出“云计算”的应用模式,即由一些大的专业网络公司搭建它的“云”(计算机存储、运算中心),用户借助浏览器通过互联网来使用“云”所提供的资源和服务。随后其他一些IT巨头如亚马逊(Amazon)、IBM等都纷纷宣布了自己的“云计划”。一时有关“云”的术语(诸如公共云、私有云、云安全、云存储、内部云、外部云,等等)“风起云涌”,那么到底什么是云计算呢?

2. 什么是云计算

关于云计算(cloud computing)的表示和定义有许多说法,这里从“资源”和“服务”的角度来说明它的含义。

其实“云”是对网络的一种比喻。因为过去在教科书和论文中往往用云来表示电信网,后来沿用作互联网和底层基础设施的示意。而在云计算中,它表示“计算”的实现场所。作为一种泛指,用它来涵盖互联网后端复杂的计算结构和所能提供的相关计算机资源(图619)。具体地说,“云”就是相应的计算机群(每一群包括数量众多的计算机),以及由它组成能够提供硬件、平台、软件等资源的计算机网络。通过统筹调用,对使用者提供所需的服务。目前,互联网上著名的“云”主要有亚马逊云、微软云、阿里云、IBM云、谷歌云和腾讯云等。

图619云计算示意图

相对用户而言,云计算提供的服务使得他们能够隨時按需获取并按量付費的方式使用计算机资源,就像使用电和水一样方便快捷。一旦有需要,他们可以在任何地点用相应设备(如电脑、智能手机等)给“云”发送指令和接收数据,快速地使用“云”的计算资源、存储空间和各种应用软件。实质上,云计算是分布式计算和并行处理等技术的一种应用体现。以处理一个复杂计算问题为例,它通过网络将计算处理程序自动分拆成许多个较小的子程序,再交由多个服务器所组成的系统,经搜寻、计算、分析之后将处理结果回传给用户。

3. 云计算的服务

云计算是整合计算资源,并以“即方式”(像电和水一样,实施度量付费)来提供服务的。从服务的内容看,它分别提供IaaS、PaaS和SaaS三类服务(如图620所示)。

图620三类云计算服务

(1) 基础设施即服务(infrastructure as a service,IaaS)。是指将硬件资源(服务器、存储、网络和计算能力等)打包成服务,通过互联网提供给用户使用,并且根据用户对资源的实际使用量或占用量进行计费。相对于用户自行构建企业计算中心(或网站)而言,这种服务使得用户不需要配置价格昂贵的计算机设备,还可以“量身定做”,按照需求随时增减资源的使用量,效果等同于自己更换服务器,而且没有硬/软件维护的开销,大大地节约了计算的运行成本。必须指出,IaaS中提供给用户的服务器,不是真正意义上的物理服务器,而是虚拟服务器(或称虚拟机)。它是通过软件模拟出来的,但对用户来说,虚拟机表现出来的功能与物理服务器是一样的,它直接为用户提供IP地址和访问服务器的口令(或密钥),让用户通过互联网控制和使用这台服务器。目前,IaaS的代表性产品有Amazon EC2、IBM Blue Cloud、Cisco UCS等。

(2) 平台即服务(platform as a service,PaaS)。是把计算环境、开发环境等平台作为一种服务提供的应用模式。云计算服务提供商可以将数据库、中间件及开发工具等平台级产品通过Web以服务的方式提供给用户。通过PaaS服务,软件开发人员可以在不购买和安装开发平台及工具软件的情况下开发新的应用程序。微软的云计算操作系统Windows Azure是PaaS服务的典型代表,它能够向程序员提供相关工具,用以开发移动应用软件、社交应用软件、网站和游戏等方面的软件。例如,可以使用Windows Azure构建一个在微软数据中心运行并存储其数据的Web应用程序,也可以使用Windows Azure创建一个虚拟机用于开发和测试应用程序,等等。

(3) 软件即服务(software as a service, SaaS)。是目前得到广泛应用的一种云计算。指将应用软件统一部署在提供商的服务器上,通过互联网为用户提供应用软件服务。这种方式可以使用户端真正做到“零安装、零维护”。例如,iCloud是苹果公司所提供的云服务,它可以帮助用户存储音乐、照片、应用程序、联系人和日历等数据(每个用户有5GB的免费存储空间),并自动将它们无线推送到用户的其他iOS设备上。譬如用户在iPhone手机上建立或者修改的备忘录,或者所拍摄的照片,把它们存储在“云”端后,该用户的iPad平板电脑和Mac笔记本中的备忘录及照片集均会通过网络自动进行更新,这就为用户提供了很多方便。

不难看出,以上三类“即方式”的云计算服务,将使用户的使用观念从“购买产品”转变到“购买服务”,用户直接面对的不再是复杂的硬件和软件,而是最终的服务。他们再也不用开销许多不必要的费用(如购置硬/软件和平台工具、软件许可、软件项目开发和系统维护等),而只需支出一定的租赁费用,即可享受到相应硬/软件和维护服务,享有软件使用权和不断升级的待遇。可以想象在未来的“云计算时代”,智能手机/平板电脑将会做得更小、更轻、更精致,作为一种终端,通过浏览器就可以从云端获得所需要网络资源和IT服务,让你体验每秒超过10万亿次的运算能力和完成超级计算复杂任务的美妙境界。

6.5物联网

1. 什么是物联网

自从1998年英国工程师Kevin Ashton提出“物联网”(internet of things,IoT)的概念以来,随着物联网技术的发展,它的应用不断渗透到人们生产和生活的各个方面。例如:在高速公路收费站ETC专用车道上,采用车载电子标签与ETC车道天线之间的微波通讯和互联网,可以直接与银行进行后台结算处理,从而实现车辆通过收费站“不停车收费”的功能。又如在安全管理方面,2010年上海世博会的门票系统采用RFID(射频识别,参见阅读材料1.6)技术,每张门票卡内都含有一颗“世博芯”,通过采用特定的密码算法,外界无法对数据篡改或窃取。参观者只要带上门票卡,系统就可以实现免掏卡自动识别、自动放行,自动进行人数统计、分类,同时还能够对参观者活动轨迹进行定位和跟踪。

上面这两个例子大致说明了这样的事实:世界上的万事万物(小到手表、门卡,大到汽车、飞机),只要嵌入相应的微型感应芯片,它就能够反映物体自身的状况,再借助无线网络技术,人们就可以与物“对话”,物与物之间也能“交流”。如果把它们接入互联网,每一个物体都可以被寻址和控制。这样,我们就能即刻获取到在世界任何地方相应事物的信息,达到“物物相连,感知世界”的目的。

物联网所涉及的领域、行业和技术十分宽泛,而其应用模式及场合又大不相同,因此目前针对物联网还没有一个标准的定义。这里不妨引用国际电信联盟在2005年提出的描述:物联网是一种将各类信息传感设备(如RFID、红外感应器、传感器、GPS、激光扫描器等)与互联网结合起来并可以实现智能化识别和管理的网络。这种说法突出了物联网是一种全新的动态网络,同时它还强调了以下两方面意思:一是物联网的核心和基础仍然是互联网,并且是在互联网基础上延伸的应用网络;二是它的终端从人与人(通过PC和非PC)通信,扩展到了人与“物”“物”与“物”之间进行信息通信,进而实现智能化的管理。

2. 物联网的构成和基本工作过程

一般而言,物联网在构成上有三层:感知层、网络层和应用层,如图621所示。

图621物联网的构成

① 感知层。相当于人体的五官和皮肤,包括条码/扫描器、RFID/读写器、摄像头、GPS、传感器和传感器网络等。其中条码和RFID标签标识身份,传感器捕捉状态(包括压力、压强、温度、磁场、光照、位移、声音、核辐射等等——由物体特征而定),摄像头记录图像,GPS进行定位跟踪,最终实现识别物体和采集信息的目标。

② 网络层。物联网的大脑和神经中枢。包括各类网络、网管中心、智能处理中心等。

③ 应用层。是物联网与相关行业和专业技术相结合,实现具体应用功能的层次。由于物联网应用渉及各行各业,它的覆盖范围是“无所不包,无所不在”的。

下面以国际马拉松比赛应用射频识别(RFID)技术为例,说明物联网的基本工作过程:

(1) 首先对物体属性进行标识,属性包括静态属性和动态属性,静态属性可以直接存储在标签中,动态属性由传感器进行实时探测(在国际马拉松比赛应用中,是将RFID标签固定在运动员的鞋子上,其动态属性的探测见下面的说明)。

(2) 由识别设备完成对物体属性的读取,并将信息转变为适合网络传送的数据格式[在国际马拉松比赛应用中,当参赛运动员通过埋设在起跑线、跟踪测试线和终点线的地面(或地下的)感应天线时读写器进行识别,得到反映参赛运动员的各种运动状态的数据,如位置、时间和速度等]。

(3) 将物体的信息通过网络传输到信息处理中心(在国际马拉松比赛应用中,运动管理中心通过网络获得各个参赛运动员比赛过程中的动态信息,并有选择地将相关信息传送给裁判、救援或观众的信息屏上)。

(4) 信息处理中心完成物体通信的相关计算。信息处理中心可能是分布式的,如家庭使用的微机或手机;也可能是集中式的,如电信运营商的互联网数据中心(在国际马拉松比赛应用中,运动管理中心及时统计并发布本项比赛各项信息,包括成绩排序、破纪录运动员成绩、前10名运动员成绩、违规运动员等信息,还可以进行相关的数据分析工作)。

在上述物联网工作过程的相关环节中,核心技术主要有:① 射频识别技术(RFID)。它实现无接触的全天候自动识别,且可同时对多个物品自动识别。在物联网应用中使其与互联网技术相结合,做到全球范围内对物品的跟踪与信息的共享。② 传感技术。信息采集是物联网的基础,目前物联网的信息采集主要是通过传感器、传感节点和电子标签等方式完成。传感器作为一种检测装置是获取信息的关键器件,所处环境通常比较恶劣,因此物联网对传感器技术提出了较高的要求。③ 网络和通信技术。物联网的实现依靠近程通讯和远程传感器传输技术。近程通信技术涉及WiFi、蓝牙等,远程传输技术涉及互联网的组网、网关等技术。④ 数据融合和数据挖掘。物联网从感知层到应用层的处理过程中,各种信息的数量和需要分析的数据量都会以几何级数增加,同时还涉及各种异构网络或多个系统之间数据的融合问题。如何从海量的数据中及时挖掘出隐藏信息是物联网应用的难题。

3. 物联网应用中待解决的问题

物联网是新一代信息技术的集成和综合运用,具有渗透性强、带动作用大、综合效益好的特点。政府和业界都十分重视物联网的发展,也已出现了一些局部的物联网应用。但是应该看到,除了核心技术中还有关键问题尚待解决外,物联网应用中还碰到了不少挑战。例如:

 成本矛盾。物联网应用耗资巨大。例如,世界零售商巨头沃尔玛在使用RFID标签过程中,对于诸如牙膏、电灯泡之类的小商品,每件都要花费20美分用于RFID标签,是否要进行这样的投入,老板在决策时就曾经感到很为难。

 安全问题。从应用的角度看,物联网上传输大量涉及企业经营和社会运行数据,保护这些有经济和社会价值的数据,要比保护互联网上音乐、视频数据重要得多,困难得多。

 隐私保护。物联网将RFID标签预先嵌入与人息息相关的物品中,使得人们周围的物品甚至包括本人时刻都处于一种被监控的状态,对此人们在观念上是很难接受的。如何确保标签物的拥有者个人隐私不受侵犯,已成为射频识别技术以至物联网应用的关键问题。

 标准问题。物联网是一个多层次、多设备、多应用、互连互通、互相融合的网络,标准制定尤为重要。物联网领域的标准工作涉及方方面面,目前至少有24个国际标准化组织从事这方面的工作,但其标准制定仍缺乏完整体系。

以上问题都是物联网应用中的“硬伤”,只有这些问题得到有效解决,物联网才能从概念跨进现实。因此有专家认为:在全球范围内物联网的发展处于初级阶段。在实际应用中正面临许多困难,未来的物联网发展和应用之路仍任重而道远。

6.6大数据简介

1. 大数据的含义和特征

大数据并不是一个新词,相关专家早在20世纪90年代就经常提到“big data”了。当前,人们之所以更加重视大数据,要归结于近年来互联网、云计算、移动互联网和物联网的迅猛发展。无所不在的移动设备、RFID、无线传感器每分每秒都在产生数据,数以亿计的互联网用户相互间的交互也在不断地生成新的数据。要处理的这样规模大、增长快,且实时性、有效性具有更高要求的“大数据”,传统的常规技术和手段已经无法应付了。

必须注意,这里说的大数据不仅仅指数据量之大。IDC(国际数据公司)认为大数据是:“为了更经济地从高频率的、大容量的、不同结构和类型的数据中获取价值,而设计的新一代架构和技术。”

本书在“阅读材料5.3”中,介绍大数据时曾经提及它具有“4V”的特征,即除了其巨大的价值(value)之外,它还指:

(1) 更大的容量(volume)。如随着物联网的广泛应用,信息感知无处不在,其计量单位至少是PB(1000个TB)、EB(100万个TB)或ZB(10亿个TB)。

(2) 数据的多样性(variety)。相对于以往便于存储的关系类结构化数据而言,包括网络日志、音频、视频、图片、地理位置等的非结构化数据越来越多。这些多样性的数据对其存储、管理和分析能力提出了新的要求。

(3) 数据的处理速度(velocity)。主要是指有效处理大数据需要在数据变化过程中及时进行分析处理,而不是在它静止后进行分析。因而传统的技术架构和方法,已经很难高效处理如此海量的数据了。

2. 大数据的价值

目前,人们已经能够通过有效的存储、管理和分析,从已积累的以及由互联网等数据源连续产生的海量数据中,获得具有价值的信息,这就给大数据赋予了一个新特征——价值(value)。据相关部门2017年11月公布的资料表明,我国大数据分析在医疗、汽车、金融和零售等行业应用技术相对成熟,估测将带来约19000亿的降本增益效益。以医疗行业大数据应用为例,过去某些药物的疗效和毒副作用,无法通过技术和简单样本验证,但是可以对几十年病历的海量数据进行分析而得出结果。由此用于新药研制、辅助诊疗、癌症检测等方面,达到提高服务效率,预计由此带来约4000亿元的降本价值。

必须看到,上述大数据所拥有的“神机妙算”和“未卜先知”的能力,并不在于数据本身,而决定于能够将决策信息从海量数据中提取出来的大数据分析挖掘技术。一般而言,大数据产生价值有两种途径:其一是数据本身隐含的信息,虽然收集到的数据本身是杂乱无章的,但可以从中挖掘出隐含的信息寻找到价值;其二是处理海量数据过程中产生的价值。很多单独存在的数据汇聚到一起后进行整体分析和处理,就会产生新的价值。

3. 大数据技术

从数据管理的角度看,前面述及的大数据“4V”特征反映了数据的多源异构、分布广泛、动态增长、先有数据后有模式等性质,正是这些与传统数据管理迥然不同的方面,使得大数据的管理和技术面临着新的挑战。下面对此做简要说明。

(1) 大数据融合

为了进行大数据分析,首先必须进行大数据集成。其处理复杂性体现在:需要将结构化、半结构化和非结构化三类不同数据进行融合;被融合处理的信息包括由位置固定设备产生的数据,还有由移动终端(如手机、平板电脑和GPS等)产生的具有时空特性的数据。

(2) 大数据清洗和存储

数据量大并不代表其信息价值大,相反有时意味着信息垃圾的泛滥,而干扰后续的大数据分析挖掘过程。因为相对细微的有用信息往往混杂在庞大的数据量中,所以必须对已接收的数据进行辨析和清洗(有时称为去噪),用以提高数据的质量。

大数据存储技术主要解决数据的可存储、可表示、有效传输以及分布存储和并行处理等问题。需要开发新型数据库(如NoSQL非关系型数据库),将数据存储在分布式文件系统(如Hadoop的HDFS)中,同时研讨大数据建模、大数据索引、大数据移动、备份、复制和可视化技术。

(3) 大数据分析及挖掘技术

从数据分析和挖掘技术的演变历程看,随着互联网的发展,数据的规模越来越大,挖掘的对象变得越来越多样化:从数据库到多媒体数据和复杂的社会网络;挖掘的需求也从分类、聚类和关联到更深层次的演化和预测分析;挖掘过程中的交互方式从单机的人机交互发展到多社会网络用户的交互;对于网络环境下产生的海量复杂数据,需要有高效的挖掘算法;同时社会网络的应用还提出了即时组合的个性化挖掘服务要求。

(4) 大数据隐私保护

目前大数据主要贯穿的行业有教育、交通、商业、电力、石油天然气、卫生保健和金融业。以此为例,根据麦肯锡公司分析,如果这些行业之间公开数据,将带来3万亿美元的经济效益。然而,公开数据将会给个人和团体的隐私带来不可估量的威胁。可见,阻碍大数据公开的主要因素是数据隐私问题。因此,在大数据时代,保护数据中的隐私信息有着独特的意义。

前述的大数据的“4V”特征,使得它不同于“小数据”。传统的隐私保护理论和技术无法涵盖大数据隐私的内涵,有必要对大数据隐私保护问题及相关技术进行重新思考与研究。

4. 云计算与大数据的关系

云计算和大数据都是信息技术发展中出现的新理念和计算形态,两者有不少相似之处,它们是为数据存储和管理服务的,都需要占用大量的存储和计算资源,而大数据的海量数据的存储、管理和并行处理技术也都是云计算的关键技术。

然而,从应用需求的角度看,云计算和大数据是有区别的。前者体现在资源的服务模式方面,主要指资源动态分配和按需付费的商业模式,就像计算机和操作系统,它将大量的硬件资源虚拟化之后再进行分配使用。后者相当于海量数据的“数据库”,面向业务问题解决并关注数据架构,其需求主要集中在分析和决策应用方面。

不难发现云计算与大数据技术的发展密切相关,它们均需要构建一种新的计算架构,使用并行处理技术,用以解决海量“非结构”数据的存储、管理和分析。于是,具有可扩展能力的分布式存储成为其数据的主流架构方式。在具体应用方面两者实际上是工具和应用的关系。即云计算为大数据提供了有力的工具,而大数据也为云计算大规模与分布式的计算能力提供了应用空间。可以说,大数据技术是云计算技术的延伸。

综上所述,云计算与大数据相结合,两者相得益彰,都能发挥其最大优势。这样,云计算能为大数据分析提供强大的基础设施和计算资源(包括计算能力、存储能力、交互能力等),以其动态和可伸缩的计算能力使得大数据分析挖掘成为可能;而来自大数据的决策性的业务需求则为云计算服务找到了更好的实际应用。

主要英文缩略语中英对照表

主要英文缩略语中英对照表

①括号内数字是指该英文缩略语在本书中出现的章节。

3Dthree dimensions三维(立体)(2.5)①

3Gthird generation第3代(移动通信)(4.1)

3GPP3rd Generation Partnership Project制订4G、5G标准的组织(4.1)

4G

fourth generation

第4代(移动通信)

(4.1)

5Gfifth generation第5代(移动通信)(4.1)

ACKacknowledge character(通信中的)确认符号(4.3)

A/D(ADC)analog to digital converter模拟/数字转换器(2.4)

ADSLasymmetric digital subscribe line不对称数字用

户线(4.3)

AESadvanced encryption standard

高级加密标准(一种对称密钥加密算法)(4.5)

AIartificial intelligence人工智能(阅5.2)

ALUarithmetic and logical unit算术逻辑部件(即运算器)(2.2)

AMRadaptive multirate自适应多速率音频编码(手机使用)(5.3)

AP(WAP)access point(wireless access

point)(无线局域网的)接入点,也称为“热点”(4.2)

APIapplication program interface应用程序接口(3.2)

Appapplication应用程序,应用软件(3.2)

ARMAdvanced RISC Machine

英国IC设计公司;一种主流CPU架构(2.1)

ASCIIAmerican standard code for

information interchange美国信息交换标准

码/字符集(1.2)

ASFadvanced stream format Windows使用的一种流媒体文件格式(5.3)

ASPactive server pages一种动态网页

ATMasynchronous transfer mode异步传输模式(一种广域网技术)(4.2)

ATMautomated teller machine自动柜员机(4.5.4)

AVIaudio video interleaved formatWindows使用的一种音像文件格式(5.4)

B/Sbrowser/server浏览器/服务器(模式)(6.1)

BASIC

beginners allpurpose symboric

instruction code一种易学的高级程序设计语言(3.3)

BBSbulletin board system公告牌系统(一种Internet应用)(4.4)

BDbluray disc蓝光光盘(2.6)

BIOSbasic input/output system基本输入/输出系统(2.3)

bitbinary digit比特,二进制(1.4)

BMP(bmp)bitmap file formatWindows使用的一种图像文件格式(5.2)

BTbit torrent一种P2P下载方式(4.2)

bytebinary term字节(8个二进位)(1.2)

C/Sclientserver (mode)客户/服务器(模式)(4.2)

CADcomputer aided design计算机辅助设计(5.2)

CAIcomputer aided instruction计算机辅助教学(5.3)

CAMcomputer aided manufacturing计算机辅助制造(5.2)

CATVcable television有线电视(5.4)

CCDcharge coupled device电荷耦合器件(2.4)

CDMAcode division multiple access码分多址访问(2G/3G使用)(4.1)

CDN

content delivery network,或content

distribution network内容分发网(4.4)

CDRCDrecordable可记录式CD光盘存储器(2.6)

CDROMCDread only memory只读式CD光盘存储器(2.6)

CDRWCDrewritable可改写CD光盘存储器(2.6)

CMOScomplementary metaloxide

semiconductor互补式金属氧化物半导体(一种集成电路的制作工艺) (2.3)

CMYK

cyan, magenta, yellow, key

(black)(颜色的)青/品红/黄/黑模型(2.6、5.2)

CNTVChina network television中国网络电视台网站(5.4)

CODECcoder and decoder编码解码器(5.3.1)

CPUcentral processing unit中央处理器(1.2)

CRCcyclic redundancy check循环冗余校验(阅4.3)

CSMA/CD

carrier sense multiple access

with collision detection载波监听多路访问/碰撞检测(阅4.3)

CTcomputed tomography计算机断层摄影(5.2)

DBdata base(database)数据库(6.1)

DBAdata base administrator数据库管理员(6.1)

DBMSdata base management system数据库管理系统(6.1)

DDRdouble data rate双倍数据速率(SDRAM存储器)(2.3)

DEMUXdemultiplexing多路分离(分路器)(4.1)

DHCP

dynamic host configuration

protocol动态主机(地址)配置协议(4.3)

DIMMdouble inline memory modules双列直插式内存条(2.3)

DNSdomain name system server域名系统/域名服务器(4.3)

Dolby AC3

(或AC3)Dolby audio codec 3

(或Dolby digital)美国杜比实验室开发的一种数字立体声(5.3)

DOSdisk operating system磁盘操作系统(PC机最早使用的一种老的操作系统)(3.2)

dpidot per inch每英寸点数(分辨率的单位)(2.4)

DRAMdynamic random access memory动态随机存取存储器(2.3)

DSPdigital signal processing数字信号处理器(2.4)

DVD

digital versatile disc(digital video

disc)DVD光盘存储器(2.6)

DVDRDVDrecordable可记录式DVD光盘存储器(2.6)

ERentityrelationship实体联系(阅6.2)

EEPROM

electrically erasable programmable

readonly memory电擦除可编程只读存储器(2.3)

eMMCembedded multi media card闪存的一种封装与接口标准(2.6)

EMUIemotion user interface华为手机操作系统发行版(3.2)

eSATAexternal SATA外接硬盘的串行ATA接口(2.3.3)

eSIMEembeddedSIM(手机使用的)嵌入式SIM卡(阅1.4)

exFATextended file allocation table file system扩展的FAT文件系统(阅3.2)

EXT4fourth extended file system(Linux的)第4代扩展文件系统(阅3.2)

FATfile allocation table文件分配表(阅3.1)

FDDLTEfrequency division duplexlong

term evolution频分双工长期演进(联通和电信采用的4G制式)(4.1)

FDTfile directory tableFAT文件系统的文件目录表(阅3.1)

FORTRAN

formula translator/translation

一种用于科学工程计算的程序设计

语言(2.1)

FTPfile transfer protocol文件传输协议(4.4)

FTTHfiber to the home光纤入户(4.3)

GBgiga byte109字节(或230字节)(1.2)

GBguó biāo (国标的汉语拼音)中国国家标准(5.1)

GBKguó biāo kuò(国标扩充的汉语

拼音)一种汉字编码的国家标准(5.1)

GDDRgraphics double data rate图形DDR存储器(显存的一种)(阅2.6)

GIF(gif)graphics interchange format一种图像文件格式(5.2)

GPSglobal positioning system全球定位系统(阅4.2)

GPUgraphic processing unit绘图处理器(图形加速器)(阅2.6)

GSMglobal system for mobile

communications全球移动通信,2G制式之一(4.1)

GUIgraphical user interface图形用户界面(3.2)

HDMI

high definition multimedia

interface高清多媒体接口(2.3.3)

HDTVhigh definition television高清晰度电视(5.4)

HEVChigh efficiency video coding高效视频编码(即H.265)(5.4)

HFChybrid fiber coaxial光纤同轴混合布线(4.3)

HTMLhypertext markup language超文本标记语言(4.4)

HTTP (http) hypertext transfer protocol超文本传输协议(4.4)

HTTPs(https)hypertext transfer protocol

over secure socket layer超文本传输协议的安全版(4.4)

I/Oinput/output输入/输出(2.1)

IoTinternet of things物联网(阅6.5)

ICintegrated circuit集成电路(1.3)

IECInternational Electrotechnical

Commission国际电工委员会(阅1.2)

IEEEInstitute of Electrical and

Electronics Engineers美国电气与电子工程师协会(阅1.3)

IMinstant messaging即时通信(4.4)

IMAP4internet message access protocol 4电子邮件访问协议第4版(4.4)

IMSIP multimedia subsystemIP多媒体业务子系统(4.1)

IPintellectual property知识产权(阅1.3)

IPinternet protocol网络互连协议(4.3)

IPTVinternet protocol television互联网电视,网络电视(5.4.5)

IPv4internet protocol version 4IP协议第4版(4.3)

IPv6internet protocol version 6IP协议第6版(4.3)

ISOInternational Organization for

Standardization国际标准化组织(1.2)

ISPinternet service provider互联网服务提供商(4.3)

ITinformation technology信息技术(1.1)

ITU

International Telecommunication

Union国际电信联盟(4.1)

JPEGjoint photographic experts group静止图像压缩编码的一种国际标准(2.4)

LANlocal area network局域网(4.2)

LCDliquid crystal display液晶显示器(2.5)

LEDlightemitting diode发光二极管(2.5.1)

LSIlargescale integration大规模集成电路(1.3)

LTElong term evolution4G移动通信的另一个名称(4.1)

MACmedia access control (address)(以太网)介质访问控制(地址)(4.2)

MACmessage authentication code消息认证码(4.5)

MANmetropolitan area network城域网或市域网(4.2)

MATLABmatrix laboratory具有可视化功能的一种高性能数值计算语言(3.3)

MBRmaster boot record主引导记录(阅3.1)

MIDI

musical instrument digital

interface一种数字音乐(5.3)

MIME

multipurpose internet mail

extension多用途Internet邮件扩充协议(4.4)

MIMO

multiplein multipleout

(在收、发两端都使用多根天线的)多进多出技术(4.1)

MODEMmodulator and demodulator调制解调器(4.1)

MOSmetal oxide semiconductor(field

effect transistor)金属氧化物半导体

(场效应晶体管)集成电路(1.2)

MP3MPEG audio layer3数字音频压缩编码的一种国际标准(3.1)

MPEGmoving picture experts group

运动图像专家组,负责制订数字视频(音频)

编码的国际标准(5.3)

MUXmultiplexing多路复用(4.1)

NANDnot and与非门(阅1.4,2.3.2)

NAT

network address translation

网络地址转换,也称为IP掩蔽(4.3)

NFCnear field communication近场通信(阅1.6)

nmnanometer纳米(10-9m)(1.3.3)

NORnot or或非门(阅1.4,2.3.2)

NPUneuralnetwork processing unit神经网络处理器(阅5.3)

nsnanosecond纳秒(10-9s)(2.3.2)

NSAnone standalone(5G的)非独立组网方式(4.1)

NT

new technology微软Windows操作系统的内核名称(3.2)

NTFSNT file systemWindows操作系统的文件系统之一(阅3.2)

OCRoptical character recognition光学字符识别(阅5.1)

ODBCopen database connectivity开放数据库互连(4.4)

ODNoptical distribution network光配线网(4.3)

OFDMAorthogonal frequency division multiple access正交频分多址(4.1)

OLEDorganic lightemitting diode有机发光二极管(2.5)

ONUoptical network unit光网络单元(4.3)

OTGonthego一种USB接口规范,使设备能在主/从之间切换(2.3)

OSoperating system操作系统(3.1)

OTAover the air对SIM卡数据进行远程管理的技术(阅1.4)

P2Ppeertopeer对等工作模式(4.2)

PANpersonal area network个人区域网(4.2)

PBRpartition boot record(硬盘)分区引导记录(阅3.1)

PCpersonal computer个人计算机(2.1)

PCMpulsecode modulation脉冲编码调制(音频编码之一)(5.3)

PCI

peripheral component intercon

nect老的32位并行I/O总线(2.3)

PCIEPCIexpress高速串行PCI总线(2.3)

PDFportable document format美国Adobe公司的文档格式(5.1)

pelpicture element像素(5.2)

PINpersonal identification number(SIM卡的)个人识别号(阅1.4)

PnPplug and play即插即用(2.3)

PONpassive optical network无源光纤网络(4.3)

POP3post office protocol(version 3)邮件访问协议(第3版)(4.4)

POSpoint of sale零售点(终端)(2.5)

PPPoEpoint to point protocol over ethernet基于以太网的点对点通信协议(4.3)

PS/2IBMs second generation of

personal computers第2代IBM PC使用的一种I/

O接口(连接键盘和鼠标)(2.3)

PUK

PIN unlock key(或personal

unblocking code)(忘记PIN码后的)解锁码(阅1.4)

QAMquadrature amplitude modulation正交幅度调制(4.1)

QQ(早期名为OICQ,即Open I see you之意)腾讯公司的免费即时通信软件(4.4)

QR Code

quick response code

快速响应矩阵码(二维条形码的一种)

(阅5.1)

RAMrandom access memory随机存取存储器(2.3)

RCSrich communication suite富媒体融合通信(5G消息业务)(4.4)

RFIDradio frequency identification电子标签、射频标签(阅1.4)

R,G,Bred, green, blue(颜色的)红绿蓝三基色模型(2.5)

ROMread only memory只读存储器(2.2)

RSA美国麻省理工学院Ron Rivest、

Adi Shamir和Leonard Adleman

三人的首字母公钥密码的一种加密算法(4.5)

RTCPRTP control protocol与RTP一起使用的控制协议(5.3)

RTFrich text format丰富格式文本(5.1)

RTP

realtime transport protocol

(在互联网中传输音频、视频的)实时传输协议(5.3)

SAstandalone(5G)独立组网方式(4.1)

SATAserial advanced technology attach

ment (interface standard)串行ATA,高速硬盘的一种接口标准(2.6)

SDsecure digital card安全数字存储卡(2.6)

SDRAMsynchronous DRAM同步动态随机存取存储器(2.3)

SDXCSD extended capacity超大容量的SD卡(2.6)

SHA3secure hash algorithm 3第三代安全散列算法(4.5)

SIMsubscriber identity module(手机)用户识别卡(1.3)

SMTPsimple mail transfer protocol简单邮件传送协议(4.4)

SoCsystem on chip片上系统,系统级芯片(2.1.3)

SQLstructured query language(用于数据库的)结构化查询语言(6.2)

SRAMstatic random access memory静态随机存取存储器(2.3)

SSDsolid state disk或solid state

drive固态驱动器,固态硬盘(2.6)

SSLsecure sockets layer安全套接字层协议(4.5)

TCPtransmission control protocol传输控制协议(4.3)

TCP/IPtransmission control protocol

over internet protocol传输控制协议/

网络互连协议(3.1)

TDDLTEtime division duplexlong

term evolution时分多路双工长期演进(4G制式之一)(4.1)

TDSCDMA

time divisionsynchronized

CDMA时分同步CDMA(3G制式之一)(4.1)

TDMtimedivision multiplexing时分多路复用(4.1)

TIFF(tif)tagged image file format一种图像文件格式(5.2)

TTStexttospeech文语转换(5.3)

TTStransport layer security传输层安全协议(SSL协议的后续协议)(4.5)

UCS

universal multipleoctet coded

character set通用多8位编码字符集(5.1)

UDPuser datagram protocol用户数据报(协议)(4.3)

UFSuniversal flash storage闪存存储器的一种接口标准,用于手机(2.6)

UHSultra high speedSD卡的超高速接口(2.6)

ULSIultra largescale integration极大规模集成电路(1.3)

Unicodeuniversal character code统一码(联合码)(5.1)

URLuniform resource locator统一资源定位器/网址(4.4)

USBuniversal serial bus通用串行总线(接口)(2.3)

UTF8UCS transformation form8UCS字符集的一种编码(5.1)

VBVisual BASIC微软公司开发的一种程序设计语言(3.3)

VBScriptVisual BASIC scriptVisual BASIC的脚本语言(3.3)

VCDvideo compact disc视频光盘(5.4)

VGAvideo graphics arrayIBM公司提出的一种图形显示标准接口(2.3)

VLSIvery largescale integration超大规模集成电路(1.3)

VODvideo on demand视频点播(5.4)

VoLTEvoice over LTE4G手机打电话的一种技术(4.1)

VPNvirtual private network虚拟专用网(4.2)

VRvirtual reality虚拟现实(5.2)

VRAM

video random access memory

视频存储器(也称为帧存储器或显示存储器)(2.5)

WANwide area network广域网(4.2)

WAP(AP)wireless access point无线接入点,也称为AP(4.2)

WCDMAwide band CDMA宽带CDMA(4.1)

WDMwavelengthdivision multiplexing波分多路复用(4.1)

WEP

wired equivalent privacy(一种对称

密钥加密算法)

有线等效加密

(阅4.5)

WiFiwireless fidelityWiFi制造商联盟的商标,经常作为IEEE 802.11标准的同义词(4.2.3)

WLANwireless local area network无线局域网(4.2)

WMAWindows Media Audio微软公司的一种数字音频流媒体(5.3)

WPA

WiFi protected access

保护WiFi接入安全的加密算法(阅4.5)

WPSword processing software我国金山公司开发的一种文字处理软件(5.1)

WWWworld wide web万维网,环球网,Web网,3W网(4.5)

自测题答案

自测题答案

自测题1

一、 1. Y2. Y3. N

二、 1. (C)2. (B)3. (D)4. (A)5. (B)6. (D)

三、 1. 82. 103. (315.4)84. 65520

自测题2

一、 1. N2. N3. N4. Y

二、 1. (B)2. (C)3. (D)4. (B)5. (D)6.

(D)7. (C)8. (C)

9. (D)10. (C)

三、 1. 总线2. 电荷耦合器件,CCD或CMOS3. 20GB

自测题3

一、 1. N2. N3. Y

二、 1. (B)2. (C)3. (C)4. (B)5. (B)6.

(B)

三、 1. BIOS或基本I/O系统、UEFI2. 多任务处理3. 算法

自测题4

一、 1. N2. N3. Y4. N

二、 1. (C)2. (C)3. (A)4. (C)5. (D)6.

(B)7. (C)8. (D)9. (B)

10. (D)

三、 1. 322. TCP/IP3. 5304. 即时通信

自测题5

一、 1. Y2. Y3. N4. Y

二、 1. (D)2. (B)3. (B)4. (A)5. (C)6.

(D)7. (C)8. (B)

三、 1. 超文本2. 655363. Text To Speech(TTS)4. 4

自测题6

一、 1. N2. Y3. N

二、 1. (C)2. (A)3. (C)4. (C)5.

(B)6. (A)7. (C)

三、 1. 资源管理层2. 模式名,属性名3. 连接,选择

主要参考资料

主要参考资料

[1] 张效祥、徐家福.计算机科学技术百科全书(第3版).北京:清华大学出版社,2018

[2] 网站:维基百科全书(http://en.wikipedia.org/wiki/Main_Page)

[3] 张福炎,马维华,符意德,戴志涛.嵌入式系统开发技术.北京:高等教育出版社,2018

[4] 谢希仁.计算机网络(第7版).北京:电子工业出版社,2017

[5] 费翔林,骆斌.操作系统教程(第5版).北京:高等教育出版社,2014

[6] 袁春风,余子濠.计算机系统基础(第2版).北京:机械工业出版社,2020

[7] [日] 结城浩著.周自恒译.图解密码技术(第3版).北京:人民邮电出版社,2016

[8] June Jamrich Parsons and Dan Oja, New Perspectives on Computer Concepts 2018, Comprehensive, Course Technology, 2018

[9] 王珊,萨师煊.数据库系统概论(第5版).北京:高等教育出版社,2014

[10] Douglas E. Comer原著.徐良贤、唐英、王勋等译.计算机网络与因特网(Computer Networks and Internets, Prentice Hall, Inc.).北京:机械工业出版社,2000

[11] 网站:微软中国(https://www.microsoft.com/zhcn/)

[12] 网站:英特尔公司(https://www.intel.cn/content/www/cn/zh/homepage.html)

[13] 网站:ARM公司(https://www.arm.com/; https://www.armchina.com/)

[14] 网站:知乎(https://www.zhihu.com/)

[15] 网站:即时通讯网(http://www.52im.net/)

[16] 网站:CSDN软件开发网(https://www.csdn.net/)

已经读完最后一章啦!

全书完

90%的人强烈推荐

怎样读书好

《怎样读书好》是一本教你如何正确阅读书籍的书。《怎样读书好》从人类思想文库中精选与读书相关的文章,这些文章的题材涉及读书的意义、读书的传统、读书的方法、读书的乐趣、好读者的标准、名著的畅销、名著研究计划、名著阅读志愿服务计划等多个方面,可以说题材广泛,内容丰富,几乎囊括了读书方面的各种问题。
已完结,累计9万字 | 最近更新:注释

怎样读书

书名:
怎样读书好
作者:
胡适 等
本章字数:
2081

°胡适

我们平常读书的时候,所感到的有三个问题:一、要读什么书;二、读书的功用;三、读书的方法。

关于要读什么书的一个问题,在《京报》上已经登了许多学者所选定的《青年必读书》,不过这于青年恐怕未必有多大好处,因为都是选者依照个人的主观的见解选定的,还不如读青年自己所爱读的书好。

读书的功用,从前的人无非是为做官,或者以为读了书,“颜如玉”“黄金屋”一类的东西就会来;现在可不然了,知道读书是求智识,为做人。

读书的方法,据我个人的经验,有两个条件:

(一)精(二)博

从前有“读书三到”的读书法,实在是很好的;不过觉到三到有点不够,应该有四到,是:

眼到 口到 心到 手到

眼到,是个个字都要认得。中国字的一点一撇,外国的ABCD一点也不可含糊,一点也不可放过。那句话初看似很容易,然而我国人犯这错误的毛病的,偏是很多。记得有人翻译英文,误Port为Pork,于是葡萄酒一变而为猪肉了。这何尝不是眼不到的缘故?谁也知道,书是集字而成的,这是字不能认清,就无所谓读书,也不必求学。

口到,前人所谓口到,是把一篇文章能烂熟地背出来。现在虽没有人提倡背书,但我们如果遇到诗歌以及有精彩的文章,总要背下来,它至少能使我们在作文的时候,得到一种好的影响,但不可模仿。中国书固然要如此,外国书也要那样去做。进一步说:念书能使我们懂得它文法的结构,和其他的关系。我们有时在小说和剧本上遇到好的句子,尚且要把它记下来,那关于思想学问上的,更是要紧了。

心到,是要懂得每一句、每一字的意思。做到这一点,要有外的帮助,有三个条件:

(一)参考书,如字典、辞典、类书等。平常说:“工欲善其事,必先利其器。”我们读书,第一要工具完备。

(二)做文法上的分析。

(三)有时须比较、参考、融会、贯通,往往几个平常的字,有许多解法,倘是轻忽过去,就容易生出错误来。例如英文中的一个Turn字,作v.t.有十五解,v.i.有十三解,n.有二十六解,共有五十四解。

又如Strike, v.t.有三十一解,v.i.有十六解,n.有十八解,共有六十五解。

又如Go, v.i.有二十二解,u.t.有三解,n.有九解,共有三十四解。

又如中文的“言”字、“于”字、“维”字,都是意义很多的,只靠自己的能力有时固然看不懂,字典里也查不出来,到了这时候非参考比较和融会贯通不可了。

还有前人关于心到很重要的几句话,把它来说一说:

宋人张载说:“读书先要会疑,于不疑处有疑方是进矣。”又说:“可疑而不疑者不曾学,学则须疑。”“学贵心悟,守旧无功。”

手到,何谓手到?手到有几个意思:

(一)标点分段;(二)查参考书;(三)做札记。

札记分为四种:

1.抄录备忘。

2.提要。

3.记录心得。记录心得,也很重要。张横渠曾说:“心中苟有所开,即便札记,否则还失之矣。”

4.参考诸书而融会贯通之,作有系统之文章。

手到的功用,可以帮助心到。我们平常所吸收进来的思想,无论是听来的,或者是看来的,不过在脑子里有一点好或坏的模糊而又零碎的东西罢了。倘若费一番工夫,把它芟除的芟除,整理的整理,综合起来做成札记,然后那经过整理和综合的思想,就永久留在脑中,于是这思想,就是属于自己的了。

就是什么书都读。中国人所谓“开卷有益”,原也是这个意思。我们为什么要博呢?有两个答案:

(一)博是为参考;(二)博是为做人。

博是为参考。有几个人为什么要戴眼镜呢?(学时髦而戴眼镜的,不在此问题内。)干脆答一句:是因看不清楚,戴了眼镜以后,就可以看清楚了。现在戴了眼镜,看是清楚的,可是不戴眼镜的时候看去还是糊涂的。王安石先生《答曾子固书》里说:“……读经而已,则不足以知经。故某自百家诸子之书,至于《难经》《素问》《本草》诸小说,无所不读;农夫女工,无所不问;然后于经能知其大体而无疑。盖后世学者,与先王之时异矣;不如是,不足以尽圣人故也。……彼致其知而后读,以有所去取,故异学不能乱也。惟其不能乱,故能有所去取者,所以明吾道而已。……”

他“读经而已,则不足以知经”,我们要推开去说:读一书而已,则不足以知其书。比如我们要读《诗经》,最好先去看一看北大的《歌谣》周刊,便觉《诗经》容易懂。倘先去研究一点社会学、文字学、音韵学、考古学等等以后,去看《诗经》,就比前更懂得多了。倘若研究一点文字学、校勘学、伦理学、心理学、数学、光学,以后去看《墨子》,就能全明白了。

大家知道的:达尔文研究生物演进的状态的时候,费了三十多年光阴,积了许多材料,但是总想不出一个简单的答案来,偶然读那马尔萨斯的《人口论》,便大悟起来,了解了那生物演化的原则。

所以我们应该多读书,无论什么书都读,往往一本极平常的书中,埋伏着一个很大的暗示。书既是读得多,则参考资料多,看一本书就有许多暗示从书外来。用一句话包括起来,就是王安石所谓“致其知而后读”。

博是为做人。像旗杆似的孤零零地只有一技之艺的人固然不好,就是说起来什么也能说的人,然而一点也不精,仿佛是一张纸,看去虽大,其实没有什么实质的也不好。我们理想中的读书人是又精又博,像金字塔那样,又大、又高、又尖。所以我说:

为学当如埃及塔,

要能博大要能高。