没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
235页
目录: 你管这破玩意叫CPU?你管这破玩意叫线程? 执行I/O操作时底层发生了什么? 从小白到高手,你需要理解同步与异步你管这破玩意叫IO多路复用? CPU是如何理解01二进制的?CPU空闲时在干嘛? 编译器是如何工作的? 函数运行时在内存中是什么样子?CPU核数与线程数有什么关系?你管这破玩意叫mmap? 彻底理解零拷贝 操作系统与内核有什么区别?彻底理解树的递归遍历 CPU寄存器是如何装入结构体的? CPU可以跑多快?从地球到火星的距离告诉你回调函数实现的原理是什么? 程序员还需要理解汇编吗?什么是异步编程? 彻底理解C语言中的指针程序员应如何理解标准库程序员应如何理解多态?程序员应如何理解多态? 为什么抽象在计算机科学中如此重要?彻底理解堆 为什么数据结构与算法如此重要彻底理解链表 知乎回答
资源推荐
资源详情
资源评论
你管这破玩意叫CPU?
每次回家开灯时你有没有想过,用你按的开关实际上能打造出
复杂的 CPU来,只不过需要的数量可
能比较多,也就几十亿个吧。
伟大的发明
过去200年人类最重要的发明是什么?蒸汽机?电灯?火箭?这些可能都不是,最重要的也许是这个
小东西:
前言
作为程序员这些年写过很多代码,但在一个阳光明媚的午后我盯着自己屏幕上的代码脑海里浮现出了
一个疑问,“这些代码在底层到底是怎么运行起来的,我写的每一行代码到底是什么意思?”
然而我并没有答案,尽管大部分情况下我的代码“看起来”好像也能“正确”完成工作,可是一旦遇到一
些相对“高级”的问题时往往束手无策,比如程序运行Core Dump、内存泄漏、程序运行起来很慢等
等,这个思考结果着实让我大吃一惊吓出一身冷汗,我竟然对自己所写的代码“一无所知”。
于是我的脑海里紧接着就出现了一个画面,自己就是那个手持火把穿过炸药厂幸存下来而不自知的傻
瓜。
仔细思考后我找到了问题所在,自己的知识体系一直存在漏洞,或者干脆就没有形成知识体系,于是
我决定好好研究一下计算机底层知识,并在学习过程中将其分享出来,于是就形成了这本书。
关于作者
大家好,我是小风,是这本《计算机底层的秘密》作者。
这个小东西就叫晶体管,你可能会问,晶体管有什么用呢?
实际上晶体管的功能简单到不能再简单,给一端通上电,那么电流可以从另外两端通过,否则不能通
过,其本质就是一个开关。
就是这个小东西的发明让三个人获得了诺贝尔物理学奖,可见其举足轻重的地位。
无论程序员编写的程序多么复杂,软件承载的功能最终都是通过这个小东西简单的开闭完成的,除了
神奇二字,我想不出其它词来。
AND、OR、NOT
现在有了晶体管,也就是开关,在此基础之上就可以搭积木了,你随手搭建出来这样三种组合:
两个开关只有同时打开电流才会通过,灯才会亮
两个开关中只要有一个打开电流就能通过,灯就会亮
当开关关闭时电流通过灯会亮,打开开关灯反而电流不能通过灯会灭
天赋异禀的你搭建的上述组合分别就是:与门,AND Gate、或门,OR gate、非门,NOT gate,用
符号表示就是这样:
虽然,我们可以用{AND、OR、NOT}来实现所有的逻辑运算,但我们真的需要把所有的逻辑运算都用
{AND、OR、NOT}们实现出来吗?显然不是,而且这也不太可行。
计算能力是怎么来的
现在能生成万物的基础元素与或非门出现了,接下来我们着手设计CPU 最重要的能力:计算,以加法
为例。
由于CPU只认知 0 和 1,也就是二进制,那么二进制的加法有哪些组合呢:
0 + 0,结果为0,进位为0
0 + 1,结果为1,进位为0
1 + 0,结果为1,进位为0
1 + 1,结果为0,进位为1,二进制嘛!
注意进位一列,只有当两路输入的值都是 1 时,进位才是 1 ,看一下你设计的三种组合电路,这就是
与门啊,有没有!
再看下结果一列,当两路输入的值不同时结果为1,输入结果相同时结果为0,这就是异或啊,有没
有!我们说过与或非门是逻辑完备可以生万物的,异或逻辑当然不在话下,用一个与门和一个异或门
就可以实现二进制加法:
上述电路就是一个简单的加法器,就问你神奇不神奇,加法可以实现,其它的也一样能用与或非门实
现,逻辑完备嘛。
剩余234页未读,继续阅读
资源评论
跨境万事屋
- 粉丝: 7
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功