书籍详情

计算机是如何工作的:人人都能懂的计算机软硬件工作原理

计算机是如何工作的:人人都能懂的计算机软硬件工作原理

作者:[美]马修·贾斯蒂斯

出版社:机械工业出版社

出版时间:2023-12-01

ISBN:9787111740131

定价:¥109.00

购买这本书可以去
内容简介
  本书是一本将理论与实践有机结合的计算机工作原理实践指南,包含41个实践项目,涵盖了从电路设计到代码编写的广泛主题。通过本书,读者将实践构建数字电路、设计一个猜谜游戏、将十进制数字转换为二进制、检查虚拟内存使用情况、运行自己的Web服务器等,从引人入胜的实践项目中学习如何像软件工程师一样思考、用数据描述真实世界的概念,使用欧姆定律和基尔霍夫定律分析电路的特性,以及如何像计算机一样思考、一步一步地在脑海中执行一个程序。
作者简介
  马修·贾斯蒂斯(Matthew Justice)是一位在微软工作了17年的软件工程师,从事过各种工作,包括调试Windows内核、开发自动修复程序,以及领导工程师团队构建诊断工具和服务。他从事过从底层软件开发到高级网络应用程序开发的所有工作。他拥有电气工程学位。业余时间,他喜欢与家人共度时光,共同远足、阅读、编曲并玩旧式电子游戏。
目录
目  录  Contents
前言
致谢
技术审稿人简介
第1章 计算机的概念1
1.1 计算机的定义1
1.2 模拟和数字2
1.2.1 模拟方法2
1.2.2 数字化3
1.3 数字系统4
1.3.1 十进制数4
1.3.2 二进制数5
1.4 位和字节6
1.5 前缀7
1.6 十六进制9
1.7 总结12
第2章 二进制13
2.1 数字化表示数据13
2.1.1 数字文本13
2.1.2 ASCII14
2.1.3 数字颜色和图像16
2.1.4 表示颜色和图像的方法17
2.1.5 解释二进制数据18
2.2 二进制逻辑18
2.3 总结22
第3章 电路23
3.1 电学术语23
3.1.1 电荷24
3.1.2 电流24
3.1.3 电压24
3.1.4 电阻25
3.1.5 水类比25
3.2 欧姆定律26
3.3 电路图26
3.4 基尔霍夫电压定律28
3.5 真实世界中的电路29
3.6 发光二极管30
3.7 总结32
设计1:搭建并测量电路32
设计2:搭建简单的LED电路37
第4章 数字电路39
4.1 什么是数字电路39
4.2 用机械开关实现逻辑运算40
4.3 神奇的晶体管41
4.4 逻辑门43
4.5 用逻辑门进行设计45
4.6 集成电路46
4.7 总结48
设计3:用晶体管实现逻辑运算49
设计4:用逻辑门构建电路50
第5章 数字电路中的算术运算55
5.1 二进制加法55
5.2 半加器57
5.3 全加器58
5.4 4位加法器59
5.5 有符号数61
5.6 无符号数64
5.7 总结65
设计5:搭建半加器66
第6章 存储器和时钟信号68
6.1 时序逻辑电路和存储器68
6.2 SR锁存器69
6.3 在电路中使用SR锁存器71
6.4 时钟信号73
6.5 JK触发器74
6.6 T触发器76
6.7 在3位计数器中使用时钟76
6.8 总结78
设计6:用NOR门搭建SR锁存器78
设计7:搭建一个基本的自动贩卖机
     电路79
设计8:在自动贩卖机电路中添加
        延迟复位功能80
设计9:将锁存器用作手动时钟82
设计10:测试JK触发器84
设计11:搭建3位计数器85
第7章 计算机硬件88
7.1 计算机硬件概述88
7.2 主存89
7.3 中央处理器92
7.3.1 指令集架构93
7.3.2 内部结构94
7.3.3 时钟、内核和高速缓存95
7.4 其他组件98
7.4.1 辅存98
7.4.2 输入/输出99
7.5 总线通信101
7.6 总结102
第8章 机器码与汇编语言103
8.1 软件术语103
8.2 机器指令示例104
8.3 用机器码计算阶乘106
8.4 总结108
设计12:汇编语言中的阶乘运算108
设计13:检查机器码117
第9章 高级编程121
9.1 高级编程概述121
9.2 C和Python简介122
9.3 注释122
9.4 变量123
9.4.1 C中的变量123
9.4.2 Python中的变量124
9.5 栈和堆125
9.5.1 栈125
9.5.2 堆126
9.6 算术运算127
9.7 逻辑运算129
9.7.1 按位运算符129
9.7.2 布尔运算符130
9.8 程序流131
9.8.1 if语句131
9.8.2 循环132
9.9 函数133
9.9.1 定义函数134
9.9.2 调用函数135
9.9.3 使用库135
9.10 面向对象的编程136
9.11 编译或解释137
9.12 用C语言计算阶乘138
9.13 总结140
设计14:查看变量141
设计15:改变Python中变量引用的值
      类型143
设计16:栈或堆144
设计17:编写猜谜游戏145
设计18:使用Python中的银行
        账户类146
设计19:用C语言实现阶乘147
第10章 操作系统150
10.1 无操作系统编程150
10.2 操作系统概述151
10.3 操作系统系列152
10.4 内核模式和用户模式154
10.5 进程155
10.6 线程157
10.7 虚存158
10.8 应用程序编程接口161
10.9 用户模式气泡和系统调用163
10.10 API和系统调用164
10.11 操作系统软件库165
10.12 应用程序二进制接口166
10.13 设备驱动程序167
10.14 文件系统167
10.15 服务和守护进程168
10.16 安全169
10.17 总结169
设计20:查看运行中的进程170
设计21:创建并观察线程172
设计22:查看虚存173
设计23:尝试操作系统API175
设计24:观察系统调用177
设计25:使用glibc178
设计26:查看加载的内核模块180
设计27:了解存储设备和文件系统181
设计28:查看服务182
第11章 互联网183
11.1 网络术语183
11.2 互联网协议套件185
11.2.1 链路层186
11.2.2 网络层187
11.2.3 传输层190
11.2.4 应用层192
11.3 游历互联网192
11.4 互联网基础功能194
11.4.1 动态主机配置协议194
11.4.2 私有IP地址和网络地址
       转换195
11.4.3 域名系统196
11.5 网络即计算198
11.6 总结199
设计29:查看链路层199
设计30:查看网络层200
设计31:查看端口使用情况201
设计32:跟踪到达互联网上一个主机
         的路由203
设计33:查看IP地址203
设计34:查看设备IP是公有的还是
         私有的204
设计35:在DNS中查找信息205
第12章 万维网206
12.1 万维网概述206
12.1.1 分布式网络206
12.1.2 可寻址网络207
12.1.3 链接网络208
12.1.4 网络协议209
12.1.5 可搜索的网络211
12.2 网络语言212
12.2.1 用HTML构造网络212
12.2.2 用CSS设计网络样式215
12.2.3 用JavaScript编写网络脚本216
12.2.4 用JSON和
猜您喜欢

读书导航