首页>参考读物>公共基础课>心理生活

普林斯顿计算机公开课
作者 : [美]布莱恩 W. 柯尼汉(Brian W. Kernighan) 著
译者 : 刘艺 刘哲雨 吴英 译
出版日期 : 2018-03-30
ISBN : 978-7-111-59310-2
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 394
开本 : 32
原书名 : Understanding the Digital World: What You Need to Know about Computers, the Internet, Privacy, and Security
原出版社: Princeton University Press
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

从1999年开始,作者在普林斯顿大学开设了一门名叫“我们世界中的计算机”的课程(COS 109:Computers in Our World),这门课是向非计算机专业的学生介绍计算机基本常识的,多年来大受学生追捧。除了向学生讲解计算机理论知识,这门课还有相应的实验课——学生可以试着用流行的编程语言写几行代码,大家一起讨论苹果、谷歌和微软的技术如何渗入日常生活的每个角落。本书就是以这门课程的讲义为主要内容重新编写而成,它解释了计算机和通信系统的工作原理,并讨论了新技术带来的社会、政治和法律问题。

图书特色

UNDERSTANDING
THE DIGITAL
WORLD
What You Need to Know about Computers, the Internet, Privacy, and Security
普林斯顿
计算机公开课
[ 美 ] 布莱恩 W. 柯尼汉(Brian W. Kernighan) 著
刘艺 刘哲雨 吴英 译
智能新时代不可不知的计算常识 
人人都能读懂的数字生活必修课

图书前言

从1999年秋季起,我就在普林斯顿大学教授一门名为“我们世界中的计算机”的课程。这门课程的名称实在模糊得过分,令人尴尬。这是某天我在不到5分钟的时间内想出的,结果“一失足成千古恨”,想要改名就难了。然而,在讲授这门课程这个本身就令人享受的工作中,教学是我所做过的最充满乐趣的事。
这门课是基于这样一种观察,即计算机和计算无处不在。每个学生都拥有计算机,这些计算机的功能都远比一台IBM 7094计算机强大得多。1964年,当我还是普林斯顿大学的一名研究生时,IBM 7094这台耗资上万美元搭建、占据了一个很大的空调房间的计算机,为整个校园提供着服务。现在每个学生都拥有计算能力远超过1964年的计算机的手机。与这世界上很大一部分人一样,大家还享受着高速的因特网连接。每个人都在线搜索、购物,并通过电子邮件、短信和社交网络与亲友保持联系。
然而这些只是计算机时代的冰山一角,更多的运用则藏在生活的表面之下。我们既看不见,通常也很少会考虑生活中接触的计算机,它们潜藏在家电、汽车、飞机,以及无所不在、司空见惯的数码产品中,诸如照相机、DVD播放器、平板电脑、GPS导航仪和电子游戏等。我们更不会想到像电话网络、有线电视、空中管制、电网、银行和金融服务这些基础设施有多么依赖于计算机运算。
大多数人不会直接参与这些系统的创建,然而它们对我们每一个人都有着重要影响,有些人还会做出与这些系统相关的重要决定。如此看来,如果人们能更好地了解计算机岂不会更好?一个受过教育的人至少应该了解最基础的计算机知识:计算机能做什么以及如何做到,计算机技术的局限性以及目前来说几乎难以达到的极限,计算机之间如何沟通,沟通时会发生什么,以及计算机和通信如何影响着我们身边的世界。
计算机技术的普遍性通过意想不到的方法影响着我们。监控系统的增长时不时提醒着我们隐私入侵和身份盗窃的危险,我们需要认识一下这些危险通过计算和通信技术所能达到的程度。
2013年6月,爱德华·斯诺登,美国国家安全局(NSA)的一位承包商,在向记者提供的文件中揭露了美国国家安全局对于几乎世界上所有人,尤其是居住于美国本土公民的电子通信的常规监控和信息收集。值得注意的是,这些本土公民对于他们的国家无法造成任何威胁,而情报机构对于电子通信的监控和信息采集覆盖了监控对象的电话、电子邮件以及网络使用。斯诺登的文件显示,其他国家也在对他们的公民进行暗中监视,例如英国的政府通信总部(GCHQ),其对于英国而言正相当于美国国家安全局之于美国的地位。情报机构之间会进行常规的情报共享,然而它们共享的并不是所有情报。也正因如此,美国国家安全局在窃听德国总理安格拉·默克尔的手机这件事对于德国情报界而言可能是有些震惊的。
这些集团对我们的跟踪和监控同时在线上及线下进行,所以对于任何人来说,保持匿名都是很困难的。海量数据的可获得性促成了在语音识别、图像识别和语言翻译方面的巨大进步,而这一切均以我们的隐私为代价。
罪犯在对数据存放处的攻击方面越来越有经验。政府和商业机构的电子非法闯入变得越来越频繁,有关顾客和职员的信息大量失窃,而这些信息常被用来进行诈骗和身份盗窃。不仅如此,针对个人的攻击也很常见。在过去,任何人只要单纯地忽略来自所谓的尼日利亚王子及其亲戚的邮件就可以安全地避开网络诈骗。然而当今有针对性的攻击如此普遍,已经成为导致公司计算机泄密的最常见手段之一了。
管辖权的问题也很难处理。欧盟已经要求主要搜索引擎提供“可遗忘权”这个机制,这样普通人可以将他们的在线历史排除在搜索引擎结果之外。对于那些利用位于欧盟(而非美国)境内的服务器存储欧盟公民数据的公司,欧盟也制定了相关的条款以要求它们实行相同的机制。当然,这些条款仅在欧盟境内生效,在世界上其他地区则因地而异。
云计算的快速采用使情况更加复杂。通过云计算,个人和公司在亚马逊、谷歌和微软以及其他一些服务商提供的服务器中存储数据并进行计算。数据不再由它们的所有者直接拥有,而是为第三方直接掌握,这些第三方有着不同的规程、责任和弱点,而且可能面临着不同的管辖权规定。
“物联网”也在飞速增长。在物联网中,各种设备都与因特网相连。一个最明显的例子当然是手机,但汽车、监视摄像头、家用电器及其控制器、医药设备,还有很多的基础设施如空中交通管制和电网之类都属于此。将能看见的所有设备都与因特网进行连接的这个趋势将会持续,因为相互连接的好处令人无可抗拒。然而不幸的是,物联网的尝试存在很多风险,例如与更加成熟的系统相比,设备的安全性更加脆弱。
密码学是应对这些隐患的有效抵抗策略之一,因为密报可以提供手段以保证通信和数据存储的私密。然而强大的密报也经受着持续攻击。个人、公司或恐怖分子可以拥有真正的私有通信,这个主意并不为政府所欢迎。因此,时常会有议案要求在密报机制中提供后门,这样就可以允许政府机构在有着“适当安全保障”、仅仅“为了国家安全”的前提下解除加密。然而,值得高度关注的一点是,这是个坏主意,因为虚弱的密报不分敌友都可能被利用。
无论背景如何,或者接受过何种训练,普通人都必须关心这些问题——无论他们是我课上的学生还是街上的百姓。
听我讲课的学生大多没有技术背景——他们学的专业不是工程、物理或数学。相反,他们可能主修英文、政治、历史、古典文学、经济、音乐和艺术,很大一部分都和人文与社会科学相关。在这门课程结束之后,这些聪慧的人将能够读懂有关计算机技术的新闻报道,从中学会些什么,或许还能指出几处相对不那么精确的地方。更广泛地说,我希望我的学生和读者可以对技术持有一种理智的怀疑态度,要知道技术虽然通常是个好东西,但绝非万金油,反过来,虽然科技有时候会有不好的效果,但也全非十恶不赦。
理查德·穆勒(Richard Muller)写过一本很好的书——《未来总统的物理课》(Physics for Future Presidents)。在那本书中,他解释了作为领导者所需处理主要议题背后的科技背景,这些议题涵盖核威胁、恐怖分子、 能源、全球变暖,等等。即使不想当总统,见多识广的公民也应该对这些话题有所了解。穆勒的写作手法为我这本书的意图做了一个很好的隐喻——“未来总统的计算机课”。
一个未来的总统关于计算机应该了解些什么?一个见多识广的人关于计算机应该了解些什么?每个人都有自己的想法,而这里是我的见解。
以下是三个核心的技术领域——硬件、软件和通信——本书的内容围绕它们展开。
硬件是计算机中可触摸的部分,它们放置在家中和办公室里,或者在随身携带的手机中,是我们可看见、触摸并使用的那些计算机。计算机里有什么?它如何运作?计算机如何架构?它如何存储和处理信息?什么是位或字节?我们如何通过它们来展示音乐、电影以及其他内容?
软件是告诉计算机做什么的指令,与硬件相比几乎无法触及。我们可以计算什么,可以计算多快?我们如何告诉计算机该做些什么?为什么让计算机正确工作很难?为什么它们如此难以使用?
通信意味着计算机、手机以及其他设备根据我们的需求互相对话,这样我们可以利用这些设备进行通话,例如通过因特网、万维网、电子邮件以及社交网络。这些通信技术是如何运作的?通信技术的回报显而易见,那么这些技术有何风险?通信技术造成的隐患,尤其是在我们的隐私和安全方面,该如何减轻?
在这三个主题以外还应该加上数据。数据是硬件与软件所采集、存储以及处理的所有信息的统称,也是通信系统在全球传输的对象。这些数据有些是我们自愿提供的:审慎地或是随意地,我们通过上传文字、图片和视频自愿发布了这些信息。而另一些则是我们的个人信息,通常在不知情且未经允许的情况下被收集和共享。
无论是否身为总统,你都应该了解计算机世界,因为它会对你个人产生影响。无论你的生活和工作与技术相隔有多远,你总会与技术或搞技术的人产生交集。对于硬件与系统如何运作稍有了解会对你有很大帮助,这些帮助至少可以让你发觉推销员或服务热线什么时候对你隐藏了部分事实。没错,无知有害。如果不了解病毒、网络钓鱼和其他类似的危险,你就很容易受到它们的伤害。如果不知道社交网络如何泄露甚至传播你认为是隐私的信息,那么你被揭露的隐私可能会超乎想象得多。如果没有意识到那些令人眼花的推送其实是商业集团在不择手段地从你的个人信息中挖掘出线索,你就可能会为了蝇头小利而放弃隐私。如果不了解在咖啡店或机场进行个人理财的风险,你便会面临着钱财和身份被盗窃的隐患。不仅如此,即使身处危险,我们还忽略了国家安全部门对个人隐私的监控和调用。
本书按照从前往后的阅读顺序写作,不过你也可以先跳至感兴趣的章节,之后再阅读其他内容。例如,你可以先从第8章开始讨论的网络、手机、因特网、万维网和隐私问题的内容读起,除了某些部分你也许得回顾之前的章节之外,大部分内容都是易于理解的。你可以跳过任何量化的内容,比如第2章中的二进制数如何工作,或是忽略一些章节中的编程语言详述。本书结尾处的注释中列出了一些我尤其喜欢的书目,也包括相关资源和辅助阅读材料的链接。术语表给出了关键技术术语和缩略词的简单定义与说明。
有关计算机的书更新换代都很快,这本也不例外。本书第1版在我们知晓美国国家安全局对个人的暗中监视扩大化之前出版。在新版中我更新了这样一些重要的新故事,这些故事很多都与个人隐私和安全相关。这是因为,个人隐私和安全问题在过去几年之内经历了天翻地覆的改变。我也尝试着去澄清一些模棱两可的说明,并删减和替换过时的内容。即使这样,当你读到本书时,有些细节可能已经被证明是错误或过时的。就像在本书第1版中那样,我尽力将那些长期都有价值的内容尽可能清晰地传达给读者。至于其他内容,比如更新、勘误或补充资料之类的,请读者抽空访问本书(英文版)网站 kernighan.com。
假若你能对这种令人惊叹的技术产生些许欣赏,并且真正理解它的运行方式、起源以及未来发展趋势,我写作本书的目的就达到了。在这个过程中,若你能找到一个有益的视角来了解这个世界,则吾愿已成。
致谢
再一次对朋友和同事提供的无私帮助深表感谢。正如对于第1版那样,Jon Bentley非常仔细地阅读了每份书稿,并在每页上进行了细致的批注,他的付出让本书变得更好。同时感谢Swati Bhatt、Giovanni De Ferrari、Peter Grabowski、Gerard Holzmann、Vickie Kearn、Paul Kernighan、Eren Kursun、David Malan、David Mauskop、Deepa Muralidhar、Madeleine Planeix-Crocker、Arnold Robbins、Howard Trickey、Janet Vertesi和John Wait等人,他们为书稿提供了宝贵的建议、批评和勘误。David Dobkin、Alan Donovan、Andrew Judkis、Mark Kernighan、Elizabeth Linder、Jacqueline Mislow、Arvind Narayanan、Jonah Sinowitz、Peter Weinberger 和 Tony Wirth等人也为我提供了宝贵的建议。与普林斯顿大学出版社的制作团队——Mark Bellis、Lorraine Doneker、 Dimitri Karetnikov 和 Vickie Kearn的合作也十分惬意,在此感谢他们所有人。
我也很感激普林斯顿大学信息技术政策中心的友好合作、对话和每周的免费午餐。同时,感谢选修COS 109课程的那些聪颖的学生,他们的天才和热情持续使我惊叹并为我提供灵感。
第1版致谢
我对朋友和同事提供的无私帮助深表感谢。尤其要感谢Jon Bentley,他在每页书稿上都进行了细致的批注。感谢Clay Bavor、Dan Bentley、Hildo Biersma、Stu Feldman、Gerard Holzmann、Joshua Katz、Mark Kernighan、Meg Kernighan、Paul Kernighan、David Malan、Tali Moreshet、Jon Riecke、Mike Shih、Bjarne Stroustrup、Howard Trickey和John Wait极其认真地审读完成书稿,他们提出的很多好建议,使我避免了一些重大失误。还要感谢Jennifer Chen、Doug Clark、Steve Elgersma、Avi Flamholz、Henry Leitner、Michael Li、Hugh Lynch、Patrick McCormick、Jacqueline Mislow、Jonathan Rochelle、Corey Thompson和Chris Van Wyk的宝贵批注。但愿他们一眼就能看出我在哪里采纳了他们的建议,而不是注意那几处我没听劝的地方。
David Brailsford 根据自己来之不易的经验给了我很多有用的建议。这些建议有个人出版方面的,也有文字排版方面的。在出版方面,Greg Doench 和 Greg Wilson 也毫无保留地给了我一些建议。由衷地感谢 Gerard Holzmann 和 John Wait 提供了照片。
Harry Lewis 是在 2010~2011 学年期间,我在哈佛大学时负责接待我的人,在那里我完成了本书的前几稿。Harry 的建议,还有他对于类似课程的教学经验都对我帮助很大。他给我的几份书稿写的批注也一样可贵。哈佛大学的工程和应用科学学院、伯克曼因特网与社会研究中心为我提供了办公环境、设施,还有友好而催人奋进的氛围,以及每日定点的免费午餐(世上真有免费午餐)。
最后,特别感谢选修“COS 109:Computers in our World”这门课的几百位学生。他们的关注、热情和友谊一直都是我不竭的灵感之源。希望他们在走上社会几年后,对这门课的学习还能使他们受益匪浅。

上架指导

计算机科学及应用

封底文字

世界顶尖的作者,简洁明了的内容,邀你共同探索数字世界的奥妙,值得人手一本!
——Eric Schmidt,谷歌董事长、前CEO

在作者笔下,计算机和因特网变得不再神秘,机器里的复杂芯片、新闻中的热点事件、全球化的技术创新,这些统统融为一体,每个读者都将受益匪浅。
——Harry Lewis,《Blown to Bits》的作者

每天都在和电脑打交道的我们,到底需要懂多少电脑知识?读这本书就够了!它不仅能帮我们轻松了解硬件、编程、算法和网络知识,还讨论了与每个人切身相关的隐私、监管和安全问题,有趣又有用。
——John MacCormick,狄金森学院

这是所有人都能看懂的计算机和电子通信常识,涵盖的主题非常丰富,但读起来却自然流畅,毫无障碍。不论你是外行还是专家,都强烈推荐!
——Bryan Respass,博根郡高中

译者序

本书作者布莱恩·柯尼汉(Brian Kernighan)是世界知名的计算机科学家,也是计算机界的一位巨人。他与Dennis Ritchie合著的《C程序设计语言》是世界上第一本被广泛认可的C语言教程,平实、优雅、简洁,已成为编程语言教程中的绝佳典范,被称为“K&R C”。他的著作还有《编程风格要素》,与Rob Pike合著的《UNIX编程环境》和《程序设计实践》,以及本书的前身《世界是数字的》(D is for Digital)。他还发明了AWK和AMPL编程语言。
他执教于普林斯顿大学,现为该校教授。从1999年开始,每年秋季,他都会教授一门名叫“我们世界中的计算机”的课程(COS 109:Computers in our World),这门课向非计算机专业的学生介绍计算的基本常识,大部分学生主修的都是英语、政治、历史、古典文学、经济、音乐和艺术等,几乎涵盖了人文和社会科学的各个专业。在这门课程讲义的基础上诞生了《世界是数字的》,本书基于此重新编写而成,阐释了计算和通信领域的运作方式,并讨论了新技术带来的社会、政治和法律问题。
计算机现在已经成为我们生活中不可分割的一部分,人们也逐渐习惯于手机等移动设备和智能穿戴设备以及无处不在的因特网服务所带来的方便。然而,数字化不仅仅可以为我们的生活带来大量便利,安全隐患也随之而生。作为一个不具有相应专业知识储备的普通人,我们应该如何在享受便利的同时保护好自己,免于成为信息泄露的受害者?我们应该如何保护好自己的隐私以应对越来越频繁和多样的网络诈骗?
本书浅显易懂地讲述了计算机、因特网以及电子通信的基本原理及概况,让计算机和因特网不再神秘。不同背景的读者都可以通过阅读本书了解计算机和因特网的运转方式以及它们对日常生活的影响,无需具备专业知识。
值得一提的是,作者还提到了涉及的一些社会、经济以及政治问题,引证了大量发生于近几年的新闻和案例,这使得本书在成为一本翔实的计算机、电子通信及因特网领域科普读物的同时,更多了一分人文关怀,这也正是本书的魅力所在。
布莱恩·柯尼汉是一名负责任的作者,他非常高兴我们将本书翻译给中国读者,并在翻译过程中及时回复我们的邮件,与我们有很好的交流。我们和布莱恩·柯尼汉一样,希望广大读者能从本书获益。

刘艺
2017年11月
于南京

图书目录

译者序
前言
引言
第一部分 硬件
第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

教学资源推荐
作者: [美]桑德拉·切卡莱丽(Saundra K.Ciccarelli),[美]诺兰·怀特(J. Noland White) 著
作者: (美)德博拉 C.贝德尔 (Deborah C. Beidel)中佛罗里达大学辛西娅 M. 布利克(Cynthia M. Bulik)北卡罗来纳大学教堂山分校梅琳达&
作者: (美)罗伯特 J.格雷戈里(Robert J.Gregory)伊利诺伊州威顿学院 著
作者: (美) 巴里 H. 坎特维茨(Barry H. Kantowitz) 密歇根大学 亨利 L. 罗迪格(Henry L. Roediger, III)圣路易斯华盛顿大学 戴维 G. 埃尔姆斯(David G. Elmes)华盛顿与李大学 著 郭秀艳 导读
参考读物推荐