Bits
(位), Bytes
(字节), 晶体管
, 逻辑门
, 操做系统
, 虚拟现实
, 机器人
程序员
经过一层层的抽象,来作出复杂操做。算法
最底层的1
和0
, 到逻辑门
, CPU
, 操做系统
, 互联网
。编程
目的:
了解计算机在你的人生,以及社会中扮演什么角色。
计算机是人类发展史上最伟大的发明,是怎么开始的; 它对将来还会有更大印象。函数
Babbage
工做室外面的街头音乐家很吵,很影响他干活。Babbage
于1871年去世,当时分析机还没完成。Carrie Anne
是追星族!Lovelace
写的分析机笔记是第一个算法。Ada Lovelace
是第一位计算机程序员。Charles
"计算机之父"Babbage
设计了第一个可编程计算机。工具
Tommy Flowers
和他的团队在11个月内作出"巨像1号"。
"巨像"计算机是第一个可编程电子数码计算机,建造出来是为了破解德国"洛伦茨"加密机。
图灵的Bomba
是电子机械密码破解机,但不算第一台计算机。学习
树莓派是便宜的单板计算机,旨在推动计算机基础学习。Arduions
用于快速制做嵌入式设备原型。
2016年7月, 7-11用Flitey
无人机进行了美国第一次合法的无人机送货。ui
提到的设备:算盘 -> 步进计算器 -> 差分机 -> 分析机 -> 打孔卡片制表机加密
Computer
从指代职业变成指代机器。Charles Babbage(计算机之父)说:“随着知识的增加和新工具的诞生,人工劳力会愈来愈少”spa
打孔片制表机
计算机的价值:
能够提高劳动力以及数据密集型任务,来提高利润。操作系统
知足会计,保险评估和库存管理等行业,Hollerith成立了制表机器公司,在1924年与其余机械制造商合并,成为了“国际商业机器公司”(简称IBM)
提到的设备:继电器 -> 真空管 -> 晶体管
一战,二战(运输能力),登录其它星球计划,产生的复杂度的增高致使数据量暴增,须要更多自动化,更强的计算能力。 柜子大小的计算机变成房间大小。(缺点:维护费用高,并且容易出错)
Mark1号
Bug
一词来源:
1947年9月,哈佛Mark 2号的操做员从故障的继电器中,拔出一只死虫。Grace Hopper曾说:“从那时起,每当电脑出现了问题,咱们就说它出了bug(虫子)”
继电器
+1
)。缺点:速度慢,齿轮磨损,难以维护。
真空管
在1904年,英国物理学家“约翰 安布罗斯 弗莱明”开发了一种新的电子组件,叫“热电子管”。把二个电极装在一个气密的玻璃灯泡里,这是世界上第一个真空管。
需求是:一个能开关电流的东西。而二极管只能作到开。
在不久以后的1906年,美国“李 德福雷斯特”,在“弗莱明”设计的两个电极之间,加入了第三个“控制”电极。
缺点:它们很脆弱,会烧坏。
意义:从机电转向电子
第一次大规模使用真空管的计算机是“巨人1号”,由工程师Tommy Flowers设计, 完工与1943年12月。“巨人1号”在英国的“布莱切利园”,用于破解通讯。“巨人1号”有1600个真空管,总共造了10台巨人计算机,来帮助破解密码。 “巨人1号”被认为是第一个可编程的电子计算机。
编程方法是:把几百根电线插入插板(相似老电话交换机),虽然“可编程”,但仍是要配置它。
ENIAC
:
电子数值积分计算机“ENIAC”,几年后在1946年,在“宾夕法尼亚大学”完成建造。这是世上第一个真正的通用,可编程,电子计算机。
为了下降成本和大小,同时提升可靠性和速度,须要一种新的电子开关。
晶体管
1947年,贝尔实验室科学家发明了晶体管,一个全新的计算机时代诞生。
晶体管的物理学至关复杂,涉及到量子力学。
晶体管图片:
现在,计算机里的晶体管小于50纳米,而一张纸的厚度大概是10万纳米,晶体管不只小,还超级快,每秒能够切换上百次,而且能工做十几年。
开始抽象,不用管底层细节,把精力用来构建更复杂的系统。
二进制
计算机最先是机电设备,通常用十进制计数。好比:用齿轮数来表明十进制,再到晶体管计算机。
只用开/关两种状态也能够表明信息,叫作二进制。
为何使用二进制:
true
和false
,两个值就够了。电路闭合,电流流过,表明"真"。二进制也能够写成1和0,而不是true
和false
,只是不一样的表达方式。布尔,他有兴趣用数学式子,扩展亚里士多德基于哲学的逻辑方法,布尔用 逻辑方程 系统而正式的证实真理(truth
)。在“常规”代数里,变量的值是数字,能够进行加法或乘法之类的操做,但在布尔代数中,变量的值是true
和false
能进行逻辑操做。
布尔代数中有三个基本操做:NOT
,AND
和OR
布尔逻辑
NOT:NOT
操做把布尔值反转,把true
进行NOT
就会变成false
,反之亦然。
晶体管能够很容易实现NOT
操做,晶体管只是电控制的开关。
有3根线:2根电极和1根控制线。
控制线通电时,电流就能够从一个电极流到另外一个电极。
1根控制线做为INPUT
, 2根电极做为OUTPUT
能够把控制线,看成输入(INPUT
),底部的电极,看成输出(OUTPUT
)。因此1个晶体管,有一个输入和一个输出。
若是打开输入(INPUT ON
)输出也会打开(OUTPUT ON
)由于电流能够流过。
若是关闭输入(INPUT OFF
)输出也会关闭(OUTPUT OFF
)由于电流没法经过。
改形成NOT GATE
:
与其把下面那根线看成输出,能够把输出放到上面。
若是打开输入,电流能够流过而后“接地”;输出就没有电流,因此输出是OFF
。用水来举例,就像家里的水都从一个大管子留走了,打开淋浴头一点水也没有。因此是输入是on
,输出是off
。
若是当输入是off
,电流无法接地,就流过了输出, 因此输入是off
,输出是on
。
之因此叫作门
,是由于它能控制电流的路径。
NOT GATE
画法:
三角形前面加一个圆点
AND:
AND
操做有2个输入,1个输出。
若是2个输入都是true
,输出才是true
为了实现AND GATE
,须要2个晶体管连在一块儿。这样有2个输入和1个输出。
若是只打开A,不打开B,电流没法流到OUTPUT
,因此输出是false
。
若是只打开B,不打开A,也同样,电流没法流到OUTPUT
。
只有A和B都打开了,OUTPUT
才有电流。
AND GATE
画法:
用D表示
OR:
只要2个输入里,其中1个是true
,输出就是true
。
只有2个输入都是false
,OR
的结果才是false
。
实现OR GATE
除了晶体管还要额外的线。不是串联起来,而是并联。
而后左边这条线有电流输入,用“小拱门”表明2条线没有链接在一块儿,只是跨过而已。
若是A和B都是off
,电流没法流过,因此输出是off
。
若是打开A,电流能够流过,输出是on
;若是只打开B也同样。
若是A,B都on
,结果是on
。
A和B都是off
的状况:
只打开A或者,只打开B的状况:
OR GATE
画法:
用太空船表示
XOR异或
XOR
就像普通的OR
,但有一个区别:
若是2个输入都是true
,XOR
输出false
。
想要XOR
输出true
,一个输出必须是true
,另一个必须是false
。
用晶体管实现XOR
门:
使用OR GATE
, AND GATE
, NOT GATE
3种门来作XOR
。
OR
门,由于OR
和XOR
的逻辑表很像。true
时,OR
的输出和想要的XOR
输出不同,须要的是false
,因此要加多个门。AND
门,输入是true
和false
,输出会是true
,也不是所须要的,但若是在AND
的输出加个NOT
就能够把true
翻转成false
了。AND
门,而后AND
门的2个输入分别来自NOT
和最原始OR
,AND
会收到false
和true
,由于AND
须要两个输入都为true
,都结果才是true
因此输出是false
。
XOR
画法:
一个OR
门 + 一个笑脸