当前位置: 100md首页 > 电子书籍 > 资料下载2021 > 未分类1
编号:45234
世界是数字的高清图文版.epub
http://www.100md.com 2020年12月25日
    参见附件(1392KB)。

    盖茨和扎克伯格导师刘易斯、谷歌常务董事长施密特联袂推荐

    面对这个时代最伟大的技术,无论你是谁,都很难置身事外,请跟随他,请跟随普林斯顿大学,开启一次华美的计算机旅行

    内容简介

    家用电器、汽车、飞机、相机、手机、GPS 导航仪,还有游戏机,虽然你看不见,但这些设备都有计算能力。手机通信网络、有线电视网络、空中交通管制系统、电力系统、银行和金融服务系统等基础设施背后无一不是计算机在支撑。如今的世界是数字的,而计算机和计算无处不在。这本书就是要告诉大家数字世界有关计算机的一切。本书没有高深莫测的专业术语,但它全面解释了当今计算和通信领域的工作方式,包括硬件、软件、互联网、通信和数据安全,并且讨论了新技术带来的社会、政治和法律问题。

    无论你有没有计算机背景,无论你从事什么职业,只要你认同自己生活在数字时代,这本书就是必读的!

    作者简介

    Brian W. Kernighan

    世界顶尖计算机科学家,曾为贝尔实验室计算科学研究中心高级研究人员,现为普林斯顿大学教授。他是AWK语言和AMPL语言的发明人,还参与过UNIX和许多其他系统的开发,同时出版了The C Programming Language、The Practice of Programming、The Elements of Programming Style等在计算机领域影响深远的著作。

    Kernighan主张所有人都应该了解计算机,在他心目中,此书相当于“写给未来总统的计算机读物”,是新一代公民必读之作。本书中讲解的内容甚至会影响我们在微博和社区上的活动,以及使用智能手机的方式。

    世界是数字的预览

    作品目录

    目 录

    开篇语1

    任何足够先进的技术都与魔术无异。

    ——阿瑟?C.克拉克,“技术及未来前景”,《三号行星的报告》,1972年

    第一部分 硬件

    计算设备的历史悠久,不过早期的计算设备大多数是专用的,通常用于预测天文事件及其发生方位。例如,关于巨石阵,一个尚未证实的推测就认为它是一座天文观测站。公元前100年制造的安提基瑟拉机器就是一台天文计算机,其机械结构之精妙令人叹为观止。

    第1章计算机里有什么11

    PC这个名字是个人计算机(Personal Computer)的缩写,或者说源自于1981年IBM开始卖的那种PC。还有些人可能有苹果Mac机,上面运行某个版本的Mac OS X操作系统。更专用的设备,比如手机和平板电脑,也是强大的计算机。这些计算机看起来很不一样,用起来也感觉不一样,但这仅仅是表象,其实根本没区别。

    1.1逻辑构造13

    1.2物理构造18

    1.3摩尔定律21

    第2章 比特、字节与信息表示23

    温度计的红色液体(通常是染色酒精)或水银柱是模拟的:液体会随着温度变化按比例膨胀或收缩,因此温度产生较小的变化,液体柱高度也会相应产生较小变化。但大楼外面显示温度的广告牌则是数字的:显示屏显示的是数值,温度介于36.5和37.4之间时,它都显示为37。

    2.1模拟与数字23

    2.2模数转换25

    2.3比特、字节与二进制30

    2.4小结37

    第3章 深入了解CPU39

    今天的笔记本电脑,甚至连手机都已经有多个CPU了。英特尔酷睿双核处理器在一块集成电路芯片上集成了两个CPU(“核心”)。在一块芯片上集成越来越多的处理器已经成为明显的趋势。

    3.1玩具计算机40

    3.2真正的CPU45

    3.3缓存47

    3.4其他计算机49

    硬件部分小结51

    第二部分 软件

    2010年4月的美国《消费者报告》(Consumer Reports)称丰田雷克萨斯GX460车型“不能买:存在安全隐患”,因为其电子稳定控制系统会导致这款SUV在急速转弯时车尾过分向外甩,从而可能导致翻车事故。一个月之内,丰田公司就升级软件,修复了这个问题。根本就没有任何机械问题,仅仅是软件最初有些问题。

    第4章 算法57

    假设我们想找出谁是房间里个子最高的人。我们可以四下里看看,然后猜一猜会是谁。然而,算法则必须精确地列出每一个步骤,从而让不会说话的计算机都能遵照执行。最基本的做法就是依次询问每个人的身高,并记住到目前为止谁最高。于是,我们可能会问“约翰,你多高?玛丽,你呢?”

    4.1线性算法58

    4.2二分搜索60

    4.3排序62

    4.4难题与复杂性66

    4.5小结68

    第5章 编程与编程语言71

    程序必须考虑实际的问题,比如内存不足、处理器速度不快、无效或恶意的输入、网络连接中断,以及(看不见摸不着,但却经常会导致其他问题恶化的)人性弱点。因此,如果说算法是理想化的菜谱,那程序就是让烹饪机器人冒着敌人的炮火为军队准备一个月的给养所需的操作说明书。

    5.1汇编语言72

    5.2高级语言73

    5.3软件开发79

    5.4软件资产84

    第6章 软件系统93

    你使用的电脑中会装有各种各样的程序,比如浏览器、文字处理器、音乐播放器……这些程序有一个专业的叫法,即应用程序(application)。典出何处?或许出自“这个程序是计算机在完成某个任务方面的应用”吧。

    6.1操作系统94

    6.2操作系统怎么工作98

    6.3其他操作系统101

    6.4文件系统102

    6.5应用程序108

    6.6软件分层111

    第7章 学习编程115

    如果你自己折腾一天连10行代码都调试不好,那别人要是说能按时交付百万行级的程序,而且没有任何bug,你相信吗?换个角度说,有点编程常识也能让人明白,其实也不是写什么程序都那么难,大不了请人帮你写呗。

    7.1编程语言的基本概念116

    7.2第一个JavaScript程序117

    7.3第二个JavaScript程序119

    7.4循环121

    7.5条件122

    7.6库和接口124

    7.7JavaScript怎么工作125

    软件部分小结127

    第三部分 通信

    几千年前,人们就曾通过善于长跑的人传递消息。公元前490年,费迪皮迪兹从马拉松战场奔跑了42公里到达雅典,把打败波斯人的胜利消息传递给了雅典人。不幸的是,跑到雅典之后,他上气不接下气地说完“庆祝吧,我们胜利了”之后就死了(至少传说里是这么讲的)。

    第8章 网络135

    电话网作为一个覆盖全球的大型网络,从一开始只传送语音,到后来同时传输语音和可观的数据,为人类做出了贡献。大约有近20年的时间,人们都是通过电话网把家用计算机接入互联网的。

    8.1电话与调制解调器136

    8.2有线和DSL136

    8.3局域网和以太网138

    8.4无线网络141

    8.5手机144

    8.6小结147

    精彩内容

    第2章比特、字节与信息表示这一章,我们来讨论计算机表示信息的三个基本思想。

    首先,计算机是数字处理器。它们存储和处理离散的信息,这些信息表现为不连续的块,具有不连续的值,基本上就是一个个数值。而与之相对的模拟信息,则是平滑变化的值。

    其次,计算机用比特表示信息。比特就是二进制数字,即一个非o即1的值。计算机中的一切都用比特来表示。计算机内部使用二进制,而不是人们所熟悉的十进制。

    再次,较大的信息以比特组表示。数值、字母、单词、姓名、声音、照片、电影,以及处理这些信息的程序所包含的指令,都是用比特组来表示的。

    本章关于数字的讨论并不是非看不可,但其背后的思想却非常重要。

    2.1模拟与数字首先,我们谈一谈模拟与数字的区别。“模拟”(analog)与“类似的”(analogous)词根相同,表达的意思是:值随着其他因素变化而平滑变化。现实生活中的很多事物都具有模拟性质,比如水龙头或汽车方向盘。如果你想让车转个小弯,轻轻打一打方向盘即可,打多打少由你自己来定。拿它跟转向灯作个比较,后者要么开要么关,没有中间状态。在模拟装置中,某些事物(汽车转弯幅度)会随另一些事物(方向盘转动幅度)的变化平滑而连续地变化。变化过程没有间断,一个事物的微小变化就意味着另一个事物的微小变化。

    数字系统处理的是离散值:可能的取值是有限的(转向灯只可能是关闭的或在左右方向打开)。某个事物小小的变化,要么不引发其他事物变化,要么就引发其他事物的突变,使其从一个离散的值跳到另一个离散的值。

    比如手表。“模拟”手表有时针、分针和秒针,秒针每分钟转一圈。虽然现代的手表都由内部的数字电路控制,但时针和分针仍然随着时间流逝而平滑移动,而且三根表针都能走遍所有可能的位置。数字手表或手机时钟显示的时间只有数值。显示屏每秒变化一次,每分钟更新一次分钟的值,但不会显示分钟的小数位。

    再比如汽车的速度表。大多数汽车都有模拟速度表,速度指针平滑地上下移动,按比例指示汽车的速度。从一个速度到另一个速度的过渡是平滑的,没有间断。与之相对,汽车的GPS导航仪则用

    数字来显示最接近的时速,不管单位是英里/小时还是公里/小时。稍微加点速,速度值会从65变成66,再减点速就又变回65,但永远不会出现65.5。

    又比如温度计。温度计的红色液体(通常是染色酒精)或水银柱是模拟的:液体会随着温度变化按比例膨胀或收缩,因此温度产生较小的变化,液体柱高度也会相应产生较小变化。但大楼外面显示温度的广告牌则是数字的:显示屏显示的是数值,温度介于36.5和37.4之间时,它都显示为37。

    这可能会导致一些奇怪的情况。几年前,我在美国高速公路上开车,收听到加拿大电台的节目。加拿大采用公制单位,播音员出于好意,想照顾到所有美加的听众,就如此宣布说:“刚才的一小时,华氏度上升了一度,摄氏度没有变化。”

    有人要间,为什么用数字而不用模拟呢?我们这个世界可是模拟的呀,而且手表、速度表等等模拟设备也更容易让人一目了然。

    但不管怎样,很多现代的技术都是数字的,而且我们这本书也是在讲述数字的故事。外部世界的数据一一声音、图片、运动、温度,等等一切,在输入端都会尽可能早地转换为数字形式,而在输出端则会尽可能晚地转换回模拟形式。原因就在于数字化的数据容易处理,无论最初来源是什么,数字化数据都可以用多种方式来存储、传输和处理,但模拟信息则不行。第9章将会介绍,通过删除冗余和不重要的信息,还可以压缩数字化信息。为了安全和隐私可以对它进行加密,可以将它与其他数据合并,可以复制它而不出错,可以通过互联网把它发送到任何地方,可以将它保存到几乎无限种设备中。而对于模拟信息,上述很多做法是根本行不通的。

    与模拟系统相比,数字系统还有另一个优势,就是它更容易扩展。比如说,给模拟天文馆增加一颗新发现的星星,专业人员必须辛苦地做出光照效果来;而在数字天文馆,只要在数据文件里添加一行信息即可。我的数字手表可以连续不断地以百分之一秒显示时间流逝,而要让模拟手表做到这一点可就太难了。不过,模拟系统有时候也有它的优势,像泥版、石雕、羊皮纸、图书和照片等古老的媒体,都经历了数字格式未曾经历过的时间考验。

    世界是数字的截图