重磅推荐
【内容简介】

从1999年开始,作者在普林斯顿大学开设了一门名为“我们世界中的计算机”的课程(COS 109:Computers in Our World),这门课向非计算机专业的学生介绍计算机的基本常识,多年来大受学生追捧。本书就是基于这门课程的讲义编写而成的,书中不仅解释了计算机和通信系统的工作原理,还分析了新技术带来的隐私和安全问题。第2版的新增章节讨论了Python编程、人工智能、机器学习以及大数据等内容。本书适合所有希望了解数字世界的读者阅读,通过了解技术的工作原理、起源和未来发展趋势,更好地理解并改变我们身处的世界。


【目录】

中文版序
译者序
前言
引言 …… 1
部分 硬件
第1章 什么是计算机 …… 16
1.1 逻辑结构 …… 20
1.1.1 处理器 …… 21
1.1.2 主存储器 …… 22
1.1.3 二级存储器 …… 24
1.1.4 其他 …… 27
1.2 物理结构 …… 28
1.3 摩尔定律 …… 33
1.4 小结 …… 35
第2章 比特、字节和信息的表示 …… 38
2.1 模拟和数字 …… 39
2.2 模数转换 …… 41
2.2.1 图像的数字化 …… 41
2.2.2 声音的数字化 …… 43
2.2.3 电影的数字化 …… 47
2.2.4 文本的数字化 …… 48
2.3 比特、字节和二进制 …… 49
2.3.1 比特 …… 50
2.3.2 2的幂和10的幂 …… 52
2.3.3 二进制数值 …… 52
2.3.4 字节 …… 55
2.4 小结 …… 58
第3章 深入了解处理器 …… 60
3.1 玩具计算机 …… 61
3.1.1 个玩具程序 …… 62
3.1.2 第二个玩具程序 …… 64
3.1.3 分支指令 …… 66
3.1.4 内存中的表示 …… 70
3.2 真实的处理器 …… 71
3.3 缓存 …… 75
3.4 其他类型的计算机 …… 77
3.5 小结 …… 80
硬件部分小结
第二部分 软件
第4章 算法 …… 89
4.1 线性算法 …… 91
4.2 二分查找 …… 94
4.3 排序 …… 96
4.4 难题和复杂性 …… 102
4.5 小结 …… 107
第5章 编程与编程语言 …… 109
5.1 汇编语言 …… 110
5.2 高级语言 …… 112
5.3 软件开发 …… 123
5.3.1 库、接口和开发工具包 …… 124
5.3.2 bug …… 126
5.4 知识产权 …… 130
5.4.1 商业秘密 …… 131
5.4.2 商标 …… 131
5.4.3 版权 …… 131
5.4.4 专利 …… 133
5.4.5 许可 …… 135
5.5 标准 …… 138
5.6 开源软件 …… 140
5.7 小结 …… 143
第6章 软件系统 …… 144
6.1 操作系统 …… 145
6.2 操作系统是如何工作的 …… 154
6.2.1 系统调用 …… 155
6.2.2 设备驱动程序 …… 156
6.3 其他操作系统 …… 158
6.4 文件系统 …… 159
6.4.1 二级存储文件系统 …… 161
6.4.2 删除文件 …… 165
6.4.3 其他文件系统 …… 167
6.5 应用程序 …… 170
6.6 软件层次 …… 173
6.7 小结 …… 176
第7章 学习编程 …… 178
7.1 编程语言的基本概念 …… 180
7.2 个JavaScript程序 …… 182
7.3 第二个JavaScript程序 …… 184
7.4 循环和条件 …… 186
7.5 JavaScript库和接口 …… 190
7.6 JavaScript是如何工作的 …… 192
7.7 个Python程序 …… 193
7.8 第二个Python程序 …… 195
7.9 Python库和接口 …… 197
7.10 Python是如何工作的 …… 201
7.11 小结 …… 202
软件部分小结
第三部分 通信
第8章 网络 …… 215
8.1 电话与调制解调器 …… 216
8.2 有线电视和DSL …… 217
8.3 局域网和以太网 …… 220
8.4 无线网络 …… 224
8.5 手机 …… 227
8.6 带宽 …… 232
8.7 压缩 …… 233
8.8 错误检测与纠正 …… 237
8.9 小结 …… 239
第9章 互联网 …… 241
9.1 互联网概述 …… 243
9.2 域名和地址 …… 247
9.2.1 域名系统 …… 249
9.2.2 IP地址 …… 250
9.2.3 根服务器 …… 252
9.2.4 注册你自己的域名 …… 253
9.3 路由 …… 254
9.4 TCP/IP …… 257
9.4.1 互联网协议 …… 259
9.4.2 传输控制协议 …… 260
9.5 高层协议 …… 263
9.5.1 Telnet和SSH协议:远程登录 …… 264
9.5.2 SMTP:简单邮件传输协议 …… 265
9.5.3 文件共享和点对点协议 …… 268
9.6 互联网上的版权问题 …… 270
9.7 物联网 …… 273
9.8 小结 …… 275
第10章 万维网 …… 279
10.1 万维网是如何工作的 …… 281
10.2 HTML …… 283
10.3 cookie …… 287
10.4 动态网页 …… 289
10.5 网页之外的动态内容 …… 292
10.6 病毒、蠕虫和木马 …… 293
10.7 Web安全 …… 297
10.7.1 对客户端的攻击 …… 297
10.7.2 对服务器的攻击 …… 305
10.7.3 对传输中信息的攻击 …… 308
10.8 自我防御 …… 309
10.9 小结 …… 314
第四部分 数据
第11章 数据和信息 …… 319
11.1 搜索 …… 321
11.2 跟踪 …… 327
11.3 社交网络 …… 338
11.4 数据挖掘和聚合 …… 343
11.5 云计算 …… 347
11.6 小结 …… 354
第12章 人工智能和机器学习 …… 356
12.1 历史背景 ……


【前言】

中 文 版 序 
计算机和通信系统,以及由它们所实现的许多事物遍布我们周围。其中一些在日常生活中随处可见,比如笔记本电脑、手机和互联网。今天,在任何公共场所,都会看到许多人在使用手机查询交通路线、购物以及和朋友聊天。与此同时,大部分计算机世界却是隐形的,比如电子设备、汽车、火车、飞机、电力系统和医疗设备中的计算机。这种几乎不可见的基础设施对我们产生了巨大的影响,如果没有这些在后台运行的系统,我们所处的现代社会将会坍塌。大多数情况下,它们确实在正确地执行任务,一切运转正常。但我们会不时得到令人不安的警示,这发生在当这些系统出现问题时,或当我们听到各种系统正在悄悄收集、共享,甚至滥用这些数据时。
本书篇幅不大,但对计算机和通信系统如何工作进行了详细和透彻的解释。它主要面向希望能更好地了解他们所生活的世界的非技术人员,但本书也应该会对那些对技术有所了解的人有帮助—这些读者或者对本书的内容感兴趣,或者希望将本书作为向朋友和家人解释技术系统的一份指南。本书展示了当今的计算和通信世界是如何运作的,从硬件到软件,再到互联网和Web。本书也讨论了新技术带来的社会、政治和法律问题(虽然主要是从美国的角度),由此你可以理解我们所面临的难题,并理解为了解决它们所必须做出的权衡。
20多年来,我一直使用本书中的材料为普林斯顿大学的学生授课,告诉他们计算机技术是如何影响世界的。未来,他们在担任有责任、有权威和有影响力的职务时,将能够就涉及技术的复杂问题做出明智的决定。计算机和通信技术一直在发展,但那些基本的问题仍然保持不变。
我相信,无论人们的背景如何,位于世界何处,更多地了解这项了不起且应用广泛的技术是很重要的—这项技术已经并将继续对我们的生活产生深远的影响。非常高兴戴开宇博士作为译者的中文版即将与中国读者见面,对于他的卓越工作我深表感谢。我希望你会享受阅读本书的过程,并开卷有益。

布莱恩·W.柯尼汉


译 者 序 
收到机械工业出版社翻译本书的邀请时,我欣然接受了这一任务。很重要的一个原因是,本书作者布莱恩·W.柯尼汉(Brian W. Kernighan)教授是计算机领域的著名学者和先驱。关于布莱恩教授,人们耳熟能详的一个传奇是,他与C语言的发明者丹尼斯·里奇(Dennis Ritchie)合著的The C Programming Language一书被奉为C程序设计语言的经典之作。之后,许多编程语言教程中的个示例都是打印出一句“Hello,World!”,就像在用编程语言这一计算机语言向世界问好,这个示例就是布莱恩教授首创的。因为翻译这一机缘,我又了解到,布莱恩教授在大名鼎鼎的贝尔实验室工作了30年左右,见证了UNIX这一伟大的操作系统的诞生,并做出了卓越贡献。他还与人合作完成了著名的图划分问题和旅行商问题的算法,也是AWK和AMLP两门编程语言的设计者之一。其中任何一项成就都足以让人倍感荣耀,但布莱恩教授的成就远不止这些。在这之后他任职于普林斯顿大学计算机科学系,并开设了一门名为“我们世界中的计算机”(Computers in Our World)的课程,介绍计算机、通信、互联网、数据等方面的核心知识和其中的隐私、安全等问题。这本书便是这门课程使用的教学材料。
布莱恩教授作为计算机专业领域和写作方面的大师,其作品自然值得精读。能担当他的著作的译者,我感到非常荣幸。翻译的过程也是细细品读的过程。本书一如布莱恩教授的其他著作,行文通俗易懂而又严谨,将构建数字世界的关键技术和思想娓娓道来,并与实际应用以及我们的生活关联起来,尤其关注这些技术带来的伦理问题。全书读起来轻松愉快,令人受益匪浅。
我在大学里教授虚拟世界和计算思维相关的两门通识课程,认识到越来越多的人已离不开数字世界这一现实世界的“平行世界”,“人机共生,虚实交融”的数字化生存将不可逆转。互联网、人工智能、虚拟现实、区块链、元宇宙这些数字化技术会把人们的生活塑造成什么样子,以及可能把人类命运带向何方,无人可以准确预测,哪怕是相关领域中的专家也众说纷纭。但我想,数字世界带给我们的思考总是有益的。比如,一个比特可以取值0和1,这些比特之间的简单计算又可以产生新的编码,由此竟然就可以构建出复杂的数字世界。这不由得让我们联想到中国古代哲学提出的“道生一, 一生二, 二生三, 三生万物”,以及达·芬奇所说的“简单是终极的复杂”。联系到实际的计算形态,现在流行的深度学习也是从无数小的简单神经元构建出来的。这是否也会对我们的大脑是如何“涌现”出智能的这一问题给出一些启示?我们从现实世界抽象出数字世界,又从数字世界中得到启发并回过头来指导现实世界。由此我们看到,数字世界有助于“认识你自己”,而随着人工智能等技术的发展,重新思考这一几千年前提出的哲思变得刻不容缓。所以,技术会把人类带向何方,取决于人们从数字世界中获得多少智慧和有益的反思。我想这本书会带给我们很多这方面的智识。
在此书翻译完成之际,我首先想感谢布莱恩教授,感谢他在书中分享的智慧和见识。当我邮件联系布莱恩教授,希望他能为中国读者作序时,他很快回复了邮件。而当时他正和夫人在英国旅行,也就是本书引言中说原计划2020年出发,后来被新冠肺炎疫情打断的旅行,邮件中甚至分享了许多旅途中的照片。大师的谦逊和平易近人,本身就传递了教育的内涵。感谢复旦大学外文学院郭晔老师在书中三首英文诗歌的翻译方面给出了热情而专业的帮助。同时,由于本人水平有限,翻译中肯定还有纰漏,欢迎指正,先谢谢大家的善意赐教,这将有利于本书翻译的改进,从而让更多读者受益。

戴开宇
kydai@fudan.edu.cn
2022年6月

 前  言 
从1999年起,几乎每个秋天我都在普林斯顿大学教授一门名为“我们世界中的计算机”的课程。课程名称有点含糊,但这是我不得不在5分钟内想出来的,结果现在想要改名就难了。不过,教这门课倒是给了我极大的乐趣,让我的工作几乎完全成了一种享受。
这门课的开设是基于这样一种观察,即计算机和计算已经无处不在。有些计算是显而易见的:每个学生都拥有一台笔记本电脑,其性能远比一台IBM 7094计算机强大得多。1964年,当我作为一名研究生进入普林斯顿大学时,IBM 7094计算机要耗资几百万美元,并占据一个很大的空调房间,可以为整个校园提供服务。现在每个学生还拥有一部计算能力远超过那台古老计算机的手机。与这个世界上的大部分人一样,每位学生都可以高速上网。每个人都在线进行搜索、购物,并通过电子邮件、短信和社交网络与亲友保持联系。
然而这些只是计算的冰山一角,其中大部分隐藏在表面之下。我们没有看到,通常也很少会想到那些潜藏在家电、汽车、飞机中的计算机,以及那些司空见惯的数码产品中的计算机,如智能电视、恒温器、门铃、语音识别器、健身追踪器、耳机、玩具和游戏机。我们更不会想到像电话网络、有线电视、空中交通管制、电网、银行和金融服务这些基础设施对计算的依赖程度如此之高。
大多数人不会直接参与创建这样的系统,但每个人都受到它们的巨大影响,有些人还需要做出与这些系统相关的重要决定。一个受过良好教育的人至少应该知道关于计算机的基本知识:计算机能做什么以及如何做到,计算机技术的局限性以及目前来说哪些难以做到,计算机之间如何沟通,沟通时发生了什么,计算机和通信如何影响我们周围的世界等。
计算的普及性以意想不到的方式影响着我们。尽管我们时常被提醒,监视系统变得无处不在,隐私可能被侵犯,身份可能被盗窃,但我们可能没有意识到它们在多大程度上被计算机和通信所赋能。
2013年6月,爱德华·斯诺登(Edward Snowden)—美国国家安全局(NSA)的一位承包商,向记者提供了5万份文件,其中揭露了美国国家安全局曾定期监测和收集世界上几乎每一个人的电子通信,包括电话、短信、电子邮件和互联网的使用,尤其是那些居住在美国并且对国家安全没有任何威胁的美国公民。也许令人惊讶的是,在初引起公愤之后,一切又恢复了常
态,并且随着政府的监控和监视越来越多,公民也无可奈何或漠然接受。
公司也会追踪和监控我们在网上和现实世界中的行为。许多公司的商业模式基于广泛的数据收集以及预测和影响我们行为的能力。大量数据的可用性使语音理解、计算机视觉和语言翻译方面取得了巨大进展,但这是以我们的隐私为代价的,并且使任何人都很难匿名。
形形色色的黑客在攻击数据存储方面变得越来越老练。几乎每天都发生着对企业和政府机构的电子入侵,大量客户和员工的信息被窃取,并通常用于欺诈和身份盗窃。不仅如此,对个人的攻击也很常见。过去,人们可以通过忽略来自所谓的“尼日利亚王子”或他们的亲戚的邮件来免受网络诈骗,但现在有针对性的攻击变得微妙得多,并已经成为攻破企业计算机的常见方式
之一。
Facebook、Instagram、Twitter、Reddit等社交媒体改变了人们相互联系的方式—与朋友和家人保持联系,看新闻,各种娱乐。这有时会带来积极的影响,例如,在2020年年中,警察暴力的视频引起了人们对非洲裔美国人生活问题的关注。
但社交媒体也造成了大量的负面影响。种族主义者、仇恨团体、阴谋论者和其他疯狂的人,无论他们的信仰或政治立场如何,都可以很容易地在互联网上找到彼此,协同合作并放大影响。言论自由相关的棘手问题,以及内容审核方面的技术挑战,都让人们很难彻底阻断仇恨和无稽之谈的传播。
在一个完全由互联网连接起来的世界里,司法管辖权问题也很难处理。2018年,欧盟实施了《通用数据保护条例》(GDPR),允许欧盟居民控制个人数据的收集和使用,并阻止公司向欧盟以外发送或存储此类数据。GDPR在改善个人隐私方面的效果如何,目前还没有定论,当然,这些规则只适用于欧盟,世界其他地区的规则可能有所不同。
云计算的快速应用增加了另一层复杂性。通过云计算,个人和公司在亚马逊、谷歌和微软等公司的服务器中存储数据并进行计算。数据不再由它们的所有者直接持有,而是被第三方直接掌握,这些第三方有着不同的规程、责任和漏洞,而且可能面临着相互冲突的司法规定。
将各种


返回顶部