描述
开 本: 32开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111593102
内容简介
从1999年开始,作者在普林斯顿大学开设了一门名叫“我们世界中的计算机”的课程(COS109:ComputersinOurWorld),这门课是向非计算机专业的学生介绍计算机基本常识的,多年来大受学生追捧。除了向学生讲解计算机理论知识,这门课还有相应的实验课——学生可以试着用流行的编程语言写几行代码,大家一起讨论苹果、谷歌和微软的技术如何渗入日常生活的每个角落。本书就是以这门课程的讲义为主要内容重新编写而成,它解释了计算机和通信系统的工作原理,并讨论了新技术带来的隐私和安全问题。
目 录
目 录
译者序
前言
引言
部分 硬件
第1章 计算机里有什么 6
1.1 逻辑结构 9
1.1.1 CPU 10
1.1.2 RAM 12
1.1.3 硬盘和其他二级存储器 13
1.1.4 其他 16
1.2 物理结构 17
1.3 摩尔定律 22
1.4 小结 24
第2章 位、字节和信息的表示 25
2.1 模拟和数字 26
2.2 模数转换 28
2.3 位、字节和二进制 36
2.3.1 位 36
2.3.2 2的幂和10的幂 38
2.3.3 二进制数 39
2.3.4 字节 42
2.4 小结 45
第3章 深入CPU 47
3.1 玩具计算机 48
3.1.1 个玩具程序 49
3.1.2 第二个玩具程序 51
3.1.3 跳转指令 53
3.1.4 RAM中的表示 56
3.2 真实的CPU 58
3.3 缓存 61
3.4 其他种类的计算机 63
3.5 小结 66
硬件总结 68
第二部分 软件
第4章 算法 74
4.1 线性算法 76
4.2 二分查找 78
4.3 排序 81
4.4 难题与复杂性 87
4.5 小结 90
第5章 编程与编程语言 93
5.1 汇编语言 94
5.2 高级语言 96
5.3 软件开发 105
5.3.1 库、接口和开发包 107
5.3.2 缺陷 109
5.4 知识产权 112
5.4.1 商业秘密 113
5.4.2 版权 113
5.4.3 专利 115
5.4.4 许可 117
5.5 标准 120
5.6 开源 121
5.7 小结 124
第6章 软件系统 126
6.1 操作系统 127
6.2 操作系统的工作原理 134
6.2.1 系统调用 136
6.2.2 设备驱动程序 136
6.3 其他操作系统 138
6.4 文件系统 139
6.4.1 磁盘文件系统 141
6.4.2 清除文件 144
6.4.3 其他文件系统 147
6.5 应用程序 148
6.6 软件的层次 152
6.7 小结 155
第7章 学习编程 157
7.1 编程语言的概念 159
7.2 第1个JavaScript范例 160
7.3 第2个JavaScript范例 162
7.4 循环语句 164
7.5 条件语句 166
7.6 库和接口 168
7.7 JavaScript的工作原理 170
7.8 小结 171
软件总结 173
第三部分 通信
第8章 网络 184
8.1 电话与调制解调器 185
8.2 电缆与DSL 186
8.3 局域网与以太网 189
8.4 无线 192
8.5 手机 195
8.6 带宽 200
8.7 压缩 202
8.8 错误检测与纠错 205
8.9 小结 207
第9章 因特网 209
9.1 因特网概述 211
9.2 域名与地址 215
9.2.1 域名系统 216
9.2.2 IP地址 218
9.2.3 根服务器 219
9.2.4 注册自己的域名 221
9.3 路由 222
9.4 TCP/IP 224
9.4.1 IP——因特网协议 226
9.4.2 TCP——传输控制协议 227
9.5 高层协议 229
9.5.1 Tel与SSH——远程登录 231
9.5.2 SMTP——简单邮件传输协议 232
9.5.3 文件共享与点对点协议 234
9.6 因特网上的版权 236
9.7 物联网 239
9.8 小结 240
第10章 万维网 244
10.1 万维网的工作原理 246
10.2 HTML 248
10.3 cookie 251
10.4 网页上的动态内容 254
10.5 其他地方的动态内容 256
10.6 病毒、蠕虫和特洛伊木马 258
10.7 网络安全 261
10.7.1 攻击客户机 262
10.7.2 攻击服务器 268
10.7.3 攻击传输中的信息 270
10.8 自我防御 271
10.9 小结 275
第11章 数据与信息 277
11.1 搜索 278
11.2 跟踪 285
11.3 社交网络 294
11.4 数据挖掘与聚合 298
11.5 云计算 302
11.6 小结 309
第12章 隐私与安全 311
12.1 加密 312
12.1.1 密钥加密 315
12.1.2 公钥加密 317
12.2 匿名 323
12.2.1 Tor与Tor浏览器 324
12.2.2 比特币 329
12.3 小结 331
第13章 结束语 335
注释 341
术语表 357
译者序
前言
引言
部分 硬件
第1章 计算机里有什么 6
1.1 逻辑结构 9
1.1.1 CPU 10
1.1.2 RAM 12
1.1.3 硬盘和其他二级存储器 13
1.1.4 其他 16
1.2 物理结构 17
1.3 摩尔定律 22
1.4 小结 24
第2章 位、字节和信息的表示 25
2.1 模拟和数字 26
2.2 模数转换 28
2.3 位、字节和二进制 36
2.3.1 位 36
2.3.2 2的幂和10的幂 38
2.3.3 二进制数 39
2.3.4 字节 42
2.4 小结 45
第3章 深入CPU 47
3.1 玩具计算机 48
3.1.1 个玩具程序 49
3.1.2 第二个玩具程序 51
3.1.3 跳转指令 53
3.1.4 RAM中的表示 56
3.2 真实的CPU 58
3.3 缓存 61
3.4 其他种类的计算机 63
3.5 小结 66
硬件总结 68
第二部分 软件
第4章 算法 74
4.1 线性算法 76
4.2 二分查找 78
4.3 排序 81
4.4 难题与复杂性 87
4.5 小结 90
第5章 编程与编程语言 93
5.1 汇编语言 94
5.2 高级语言 96
5.3 软件开发 105
5.3.1 库、接口和开发包 107
5.3.2 缺陷 109
5.4 知识产权 112
5.4.1 商业秘密 113
5.4.2 版权 113
5.4.3 专利 115
5.4.4 许可 117
5.5 标准 120
5.6 开源 121
5.7 小结 124
第6章 软件系统 126
6.1 操作系统 127
6.2 操作系统的工作原理 134
6.2.1 系统调用 136
6.2.2 设备驱动程序 136
6.3 其他操作系统 138
6.4 文件系统 139
6.4.1 磁盘文件系统 141
6.4.2 清除文件 144
6.4.3 其他文件系统 147
6.5 应用程序 148
6.6 软件的层次 152
6.7 小结 155
第7章 学习编程 157
7.1 编程语言的概念 159
7.2 第1个JavaScript范例 160
7.3 第2个JavaScript范例 162
7.4 循环语句 164
7.5 条件语句 166
7.6 库和接口 168
7.7 JavaScript的工作原理 170
7.8 小结 171
软件总结 173
第三部分 通信
第8章 网络 184
8.1 电话与调制解调器 185
8.2 电缆与DSL 186
8.3 局域网与以太网 189
8.4 无线 192
8.5 手机 195
8.6 带宽 200
8.7 压缩 202
8.8 错误检测与纠错 205
8.9 小结 207
第9章 因特网 209
9.1 因特网概述 211
9.2 域名与地址 215
9.2.1 域名系统 216
9.2.2 IP地址 218
9.2.3 根服务器 219
9.2.4 注册自己的域名 221
9.3 路由 222
9.4 TCP/IP 224
9.4.1 IP——因特网协议 226
9.4.2 TCP——传输控制协议 227
9.5 高层协议 229
9.5.1 Tel与SSH——远程登录 231
9.5.2 SMTP——简单邮件传输协议 232
9.5.3 文件共享与点对点协议 234
9.6 因特网上的版权 236
9.7 物联网 239
9.8 小结 240
第10章 万维网 244
10.1 万维网的工作原理 246
10.2 HTML 248
10.3 cookie 251
10.4 网页上的动态内容 254
10.5 其他地方的动态内容 256
10.6 病毒、蠕虫和特洛伊木马 258
10.7 网络安全 261
10.7.1 攻击客户机 262
10.7.2 攻击服务器 268
10.7.3 攻击传输中的信息 270
10.8 自我防御 271
10.9 小结 275
第11章 数据与信息 277
11.1 搜索 278
11.2 跟踪 285
11.3 社交网络 294
11.4 数据挖掘与聚合 298
11.5 云计算 302
11.6 小结 309
第12章 隐私与安全 311
12.1 加密 312
12.1.1 密钥加密 315
12.1.2 公钥加密 317
12.2 匿名 323
12.2.1 Tor与Tor浏览器 324
12.2.2 比特币 329
12.3 小结 331
第13章 结束语 335
注释 341
术语表 357
前 言
前 言从1999年秋季起,我就在普林斯顿大学教授一门名为“我们世界中的计算机”的课程。这门课程的名称实在模糊得过分,令人尴尬。这是某天我在不到5分钟的时间内想出的,结果“一失足成千古恨”,想要改名就难了。然而,在讲授这门课程这个本身就令人享受的工作中,教学是我所做过的充满乐趣的事。
这门课是基于这样一种观察,即计算机和计算无处不在。每个学生都拥有计算机,这些计算机的功能都远比一台IBM 7094计算机强大得多。1964年,当我还是普林斯顿大学的一名研究生时,IBM 7094这台耗资上万美元搭建、占据了一个很大的空调房间的计算机,为整个校园提供着服务。现在每个学生都拥有计算能力远超过1964年的计算机的手机。与这世界上很大一部分人一样,大家还享受着高速的因特网连接。每个人都在线搜索、购物,并通过电子邮件、短信和社交网络与亲友保持联系。
然而这些只是计算机时代的冰山一角,更多的运用则藏在生活的表面之下。我们既看不见,通常也很少会考虑生活中接触的计算机,它们潜藏在家电、汽车、飞机,以及无所不在、司空见惯的数码产品中,诸如照相机、DVD播放器、平板电脑、GPS导航仪和电子游戏等。我们更不会想到像电话网络、有线电视、空中管制、电网、银行和金融服务这些基础设施有多么依赖于计算机运算。
大多数人不会直接参与这些系统的创建,然而它们对我们每一个人都有着重要影响,有些人还会做出与这些系统相关的重要决定。如此看来,如果人们能更好地了解计算机岂不会更好?一个受过教育的人至少应该了解基础的计算机知识:计算机能做什么以及如何做到,计算机技术的局限性以及目前来说几乎难以达到的极限,计算机之间如何沟通,沟通时会发生什么,以及计算机和通信如何影响着我们身边的世界。
计算机技术的普遍性通过意想不到的方法影响着我们。监控系统的增长时不时提醒着我们隐私入侵和身份盗窃的危险,我们需要认识一下这些危险通过计算和通信技术所能达到的程度。
2013年6月,爱德华·斯诺登,美国国家安全局(NSA)的一位承包商,在向记者提供的文件中揭露了美国国家安全局对于几乎世界上所有人,尤其是居住于美国本土公民的电子通信的常规监控和信息收集。值得注意的是,这些本土公民对于他们的国家无法造成任何威胁,而情报机构对于电子通信的监控和信息采集覆盖了监控对象的电话、电子邮件以及网络使用。斯诺登的文件显示,其他国家也在对他们的公民进行暗中监视,例如英国的政府通信总部(GCHQ),其对于英国而言正相当于美国国家安全局之于美国的地位。情报机构之间会进行常规的情报共享,然而它们共享的并不是所有情报。也正因如此,美国国家安全局在窃听德国总理安格拉·默克尔的手机这件事对于德国情报界而言可能是有些震惊的。
这些集团对我们的跟踪和监控同时在线上及线下进行,所以对于任何人来说,保持匿名都是很困难的。海量数据的可获得性促成了在语音识别、图像识别和语言翻译方面的巨大进步,而这一切均以我们的隐私为代价。
罪犯在对数据存放处的攻击方面越来越有经验。政府和商业机构的电子非法闯入变得越来越频繁,有关顾客和职员的信息大量失窃,而这些信息常被用来进行诈骗和身份盗窃。不仅如此,针对个人的攻击也很常见。在过去,任何人只要单纯地忽略来自所谓的尼日利亚王子及其亲戚的邮件就可以安全地避开网络诈骗。然而当今有针对性的攻击如此普遍,已经成为导致公司计算机泄密的常见手段之一了。
管辖权的问题也很难处理。欧盟已经要求主要搜索引擎提供“可遗忘权”这个机制,这样普通人可以将他们的在线历史排除在搜索引擎结果之外。对于那些利用位于欧盟(而非美国)境内的服务器存储欧盟公民数据的公司,欧盟也制定了相关的条款以要求它们实行相同的机制。当然,这些条款仅在欧盟境内生效,在世界上其他地区则因地而异。
云计算的快速采用使情况更加复杂。通过云计算,个人和公司在亚马逊、谷歌和微软以及其他一些服务商提供的服务器中存储数据并进行计算。数据不再由它们的所有者直接拥有,而是为第三方直接掌握,这些第三方有着不同的规程、责任和弱点,而且可能面临着不同的管辖权规定。
“物联网”也在飞速增长。在物联网中,各种设备都与因特网相连。一个明显的例子当然是手机,但汽车、监视摄像头、家用电器及其控制器、医药设备,还有很多的基础设施如空中交通管制和电网之类都属于此。将能看见的所有设备都与因特网进行连接的这个趋势将会持续,因为相互连接的好处令人无可抗拒。然而不幸的是,物联网的尝试存在很多风险,例如与更加成熟的系统相比,设备的安全性更加脆弱。
密码学是应对这些隐患的有效抵抗策略之一,因为密报可以提供手段以保证通信和数据存储的私密。然而强大的密报也经受着持续攻击。个人、公司或恐怖分子可以拥有真正的私有通信,这个主意并不为政府所欢迎。因此,时常会有议案要求在密报机制中提供后门,这样就可以允许政府机构在有着“适当安全保障”、仅仅“为了国家安全”的前提下解除加密。然而,值得高度关注的一点是,这是个坏
这门课是基于这样一种观察,即计算机和计算无处不在。每个学生都拥有计算机,这些计算机的功能都远比一台IBM 7094计算机强大得多。1964年,当我还是普林斯顿大学的一名研究生时,IBM 7094这台耗资上万美元搭建、占据了一个很大的空调房间的计算机,为整个校园提供着服务。现在每个学生都拥有计算能力远超过1964年的计算机的手机。与这世界上很大一部分人一样,大家还享受着高速的因特网连接。每个人都在线搜索、购物,并通过电子邮件、短信和社交网络与亲友保持联系。
然而这些只是计算机时代的冰山一角,更多的运用则藏在生活的表面之下。我们既看不见,通常也很少会考虑生活中接触的计算机,它们潜藏在家电、汽车、飞机,以及无所不在、司空见惯的数码产品中,诸如照相机、DVD播放器、平板电脑、GPS导航仪和电子游戏等。我们更不会想到像电话网络、有线电视、空中管制、电网、银行和金融服务这些基础设施有多么依赖于计算机运算。
大多数人不会直接参与这些系统的创建,然而它们对我们每一个人都有着重要影响,有些人还会做出与这些系统相关的重要决定。如此看来,如果人们能更好地了解计算机岂不会更好?一个受过教育的人至少应该了解基础的计算机知识:计算机能做什么以及如何做到,计算机技术的局限性以及目前来说几乎难以达到的极限,计算机之间如何沟通,沟通时会发生什么,以及计算机和通信如何影响着我们身边的世界。
计算机技术的普遍性通过意想不到的方法影响着我们。监控系统的增长时不时提醒着我们隐私入侵和身份盗窃的危险,我们需要认识一下这些危险通过计算和通信技术所能达到的程度。
2013年6月,爱德华·斯诺登,美国国家安全局(NSA)的一位承包商,在向记者提供的文件中揭露了美国国家安全局对于几乎世界上所有人,尤其是居住于美国本土公民的电子通信的常规监控和信息收集。值得注意的是,这些本土公民对于他们的国家无法造成任何威胁,而情报机构对于电子通信的监控和信息采集覆盖了监控对象的电话、电子邮件以及网络使用。斯诺登的文件显示,其他国家也在对他们的公民进行暗中监视,例如英国的政府通信总部(GCHQ),其对于英国而言正相当于美国国家安全局之于美国的地位。情报机构之间会进行常规的情报共享,然而它们共享的并不是所有情报。也正因如此,美国国家安全局在窃听德国总理安格拉·默克尔的手机这件事对于德国情报界而言可能是有些震惊的。
这些集团对我们的跟踪和监控同时在线上及线下进行,所以对于任何人来说,保持匿名都是很困难的。海量数据的可获得性促成了在语音识别、图像识别和语言翻译方面的巨大进步,而这一切均以我们的隐私为代价。
罪犯在对数据存放处的攻击方面越来越有经验。政府和商业机构的电子非法闯入变得越来越频繁,有关顾客和职员的信息大量失窃,而这些信息常被用来进行诈骗和身份盗窃。不仅如此,针对个人的攻击也很常见。在过去,任何人只要单纯地忽略来自所谓的尼日利亚王子及其亲戚的邮件就可以安全地避开网络诈骗。然而当今有针对性的攻击如此普遍,已经成为导致公司计算机泄密的常见手段之一了。
管辖权的问题也很难处理。欧盟已经要求主要搜索引擎提供“可遗忘权”这个机制,这样普通人可以将他们的在线历史排除在搜索引擎结果之外。对于那些利用位于欧盟(而非美国)境内的服务器存储欧盟公民数据的公司,欧盟也制定了相关的条款以要求它们实行相同的机制。当然,这些条款仅在欧盟境内生效,在世界上其他地区则因地而异。
云计算的快速采用使情况更加复杂。通过云计算,个人和公司在亚马逊、谷歌和微软以及其他一些服务商提供的服务器中存储数据并进行计算。数据不再由它们的所有者直接拥有,而是为第三方直接掌握,这些第三方有着不同的规程、责任和弱点,而且可能面临着不同的管辖权规定。
“物联网”也在飞速增长。在物联网中,各种设备都与因特网相连。一个明显的例子当然是手机,但汽车、监视摄像头、家用电器及其控制器、医药设备,还有很多的基础设施如空中交通管制和电网之类都属于此。将能看见的所有设备都与因特网进行连接的这个趋势将会持续,因为相互连接的好处令人无可抗拒。然而不幸的是,物联网的尝试存在很多风险,例如与更加成熟的系统相比,设备的安全性更加脆弱。
密码学是应对这些隐患的有效抵抗策略之一,因为密报可以提供手段以保证通信和数据存储的私密。然而强大的密报也经受着持续攻击。个人、公司或恐怖分子可以拥有真正的私有通信,这个主意并不为政府所欢迎。因此,时常会有议案要求在密报机制中提供后门,这样就可以允许政府机构在有着“适当安全保障”、仅仅“为了国家安全”的前提下解除加密。然而,值得高度关注的一点是,这是个坏
评论
还没有评论。