内容简介:
家用电器、汽车、飞机、相机、手机、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.7 JavaScript怎么工作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
第9章 互联网149
简单算一下就会发现,IPv4地址只有大约43亿个,甚至还不够地球上每人分一个。因此,按照人类使用的通信服务数量的增长势头,这些IPv4地址迟早会被耗光。实际情况比这种“危言耸听”更糟糕,因为IP地址是按块划分的,这样用起来就没有理论上那么有效率。
9.1 互联网概述150
9.2 域名和地址153
9.3 路由157
9.4 协议159
9.5 高层协议162
9.6 带宽172
9.7 压缩173
9.8 错误检测和校正176
9.9 小结177
第10章 万维网179
万维网的诞生可以追溯到1989年。当时,在日内瓦附近的欧洲核子研究中心工作的英国物理学家蒂姆?伯纳斯?李,为便于通过互联网共享科学文献和研究结果而设计了一套系统,以及一个只能用文本模式查看可用资源的客户端。这套系统在1990年投入使用。说来惭愧,我1992年10月还亲眼见过有人使用它,可当时并没觉得它有那么好,也根本没想到6个月后诞生的第一个图形界面浏览器会改变世界。瞧我这眼光!
10.1 万维网如何工作180
10.2 HTML182
10.3 表单183
10.4 cookie184
10.5 动态网页186
10.6 网页之外的动态内容189
10.7 病毒和蠕虫190
10.8 万维网安全192
10.9 密码术201
10.10 小结208
第11章 数据、信息和隐私211
隐私常常就是安全的同义词。至少对每个个体而言,如果自己的生活信息被传播得随处可见,那怎么会让人感觉安全无忧呢?特别是互联网,它对个人安全已经产生了重大影响。这种影响更多体现在财务风险而非人身安全方面。因为互联网让人们从各种来源收集和整理信息变得异常容易,从而为电子入侵大开方便之门。
11.1 搜索212
11.2 跟踪216
11.3 数据库、信息与聚合221
11.4 隐私失控224
11.5 云计算225
11.6 小结230
第12章 结束语231
最后,读者诸君务必牢记一点,无论今天的技术多么千变万化,人是不变的。无论从哪方面来看,现代的人类与几千年前的人类并没有太大区别。
注解236
词汇表242
索引253
版权声明256
文章试读:让我们开始讨论硬件,先大略看看计算机里面都有些什么东西。这个问题可以从两方面来看:逻辑上或者说功能上的组成,即每一部分是什么、做什么、怎样做、之间如何连接;以及物理上的结构,即每一部分长什么样子、如何建造起来的。本章的目标是了解计算机里有什么,大致弄清每一部分做什么,并能识别出各种首字母缩写和数字的含义。 回想一下你自己的计算机。许多读者可能会有PC机,上面运行着来自于微软公司的某个版本的Win...
(查看全部试读)