计算机科学基础_0

Bits(位), Bytes(字节), 晶体管, 逻辑门, 操作系统, 虚拟现实, 机器人

通过一层层的抽象,来做出复杂操作。

最底层的10, 到逻辑门, CPU, 操作系统, 互联网

目的:
了解计算机在你的人生,以及社会中扮演什么角色。
计算机是人类发展史上最伟大的发明,是怎么开始的; 它对未来还会有更大印象。

Babbage工作室外面的街头音乐家很吵,很影响他干活。
Babbage于1871年去世,当时分析机还没完成。
Carrie Anne 是追星族!
Lovelace写的分析机笔记是第一个算法。
Ada Lovelace是第一位计算机程序员。
Charles"计算机之父"Babbage设计了第一个可编程计算机。

Tommy Flowers和他的团队在11个月内做出"巨像1号"。
"巨像"计算机是第一个可编程电子数码计算机,建造出来是为了破解德国"洛伦茨"加密机。
图灵的Bomba是电子机械密码破解机,但不算第一台计算机。

树莓派是便宜的单板计算机,旨在推进计算机基础学习。
Arduions用于快速制作嵌入式设备原型。
2016年7月, 7-11用Flitey无人机进行了美国第一次合法的无人机送货。

计算机早期历史

提到的设备:算盘 -> 步进计算器 -> 差分机 -> 分析机 -> 打孔卡片制表机

  • 最早的计算设备是算盘。
  • Computer从指代职业变成指代机器。
  • 机器里有名的是:步进计算器(类似汽车里程表,不断累加里程数),第一个可以做加减乘除的机器。
  • 炮弹为了精准,要计算弹道,二战时查表来做。但每次改设计了就需要做一张新表。(表是前人已经做好的)
  • Charles Babbage提出了"差分机"(更复杂的机器,能近似多项式,多项式描述了几个变量之间的关系),在构造差分机期间(项目以失败告终),想出了分析机,分析机是通用计算机(不止是一种特定运算,甚至可以给它数据,然后按照顺序执行一系列操作,它有内存。因为先进,没有造成功)。
  • Lovelace给分析机写了假想程序,因此成为了第一位程序员(“未来会诞生一门全新的,强大的,专为分析所用的语言”)。
  • 人口普查10年一次,Herman Hollerith 的打孔片制表机大大提升了效率(目的是分配联邦资金,国会代表,等等。)。1890年,人口普查要预计十三年时间来手工编制,等做完都过时。

Charles Babbage(计算机之父)说:“随着知识的增长和新工具的诞生,人工劳力会越来越少”

打孔片制表机
  • 用传统机械来计数,结构类似莱布尼茨的乘法器,但用电动结构连接其它组件。
  • 一种纸卡,上面有网格,用打孔来表示数据。
  • 当卡插入Hollerith的机器时,小金属针会到卡片上,如果有个地方打孔了,针会穿过孔,泡入一小瓶汞,联通电路,电路会驱动电机。

计算机的价值:
可以提升劳动力以及数据密集型任务,来提升利润。

满足会计,保险评估和库存管理等行业,Hollerith成立了制表机器公司,在1924年与其他机械制造商合并,成为了“国际商业机器公司”(简称IBM)

电子计算机

提到的设备:继电器 -> 真空管 -> 晶体管

  • 20世纪的发展要求更强的计算能力。柜子大小的计算机发展到房间大小。
  • 哈佛 Mark1号,IBM 1944年做的。
  • 继电器一秒最多50次开关。
  • 继电器出bug(bug一词的来源)。
  • 1904年,热电子管出现。第一个真空管,改进后变成和继电器的功能一样。
  • “巨人1号”计算机在英国 布莱切利园 首次大规模使用真空管,但编程麻烦,还要配置。
  • 1946年,宾夕法尼亚大学的ENIAC是第一个通用可编程计算机。
  • 1947年,贝尔实验室做出了,晶体管,晶体管有诸多好处,IBM 很快全面转向晶体管。
  • 硅谷的典故:很多晶体管和半导体的开发都是这里做的。而生产半导体最常见的材料是硅。
  • 肖克利半导体 -> 仙童半导体 -> 英特尔。

一战,二战(运输能力),登陆其它星球计划,产生的复杂度的增高导致数据量暴增,需要更多自动化,更强的计算能力。 柜子大小的计算机变成房间大小。(缺点:维护费用高,而且容易出错)

Mark1号
  • 最大机电计算机之一。
  • 它有76万5千个组件,300万个连接点和500英里(804.65公里)长的导线。
  • 为了保持内部机械装置同步,它有一个50英尺的传动轴,由一个5马力的电机驱动。
  • Mark1号大脑是继电器(用电控制的机械开关)
  • 1秒能够做3次加法或减法运算。一次乘法要花6秒,除法要花15秒。比较复杂的操作,比如,三角函数,幂运算,可能要一分钟以上或者更久。
  • 齿轮磨损,任何会动的机械都会随时间磨损。有些部件会完全损坏,有些则是变粘,变慢,变得不可靠,并且随着继电器数量的增加,故障概率也会增加。
  • Mark1号大概有3500个继电器。需要频繁更换继电器,有些运算需要好几天。
  • 黑色的,温暖的机器也会吸引昆虫。

Bug一词来源:
1947年9月,哈佛Mark 2号的操作员从故障的继电器中,拔出一只死虫。Grace Hopper曾说:“从那时起,每当电脑出现了问题,我们就说它出了bug(虫子)”

继电器

clipboard.png

  • 继电器里,有根“控制线路”,控制电路是开还是关,“控制线路”连着一个线圈,当电流流过线圈,线圈产生电磁场,吸引金属臂,从而闭合电路。继电器控制的电子。和开关水的水龙头相似。
  • 这个控制电路可以连接到其它电路,比如:马达(作用:让计数齿轮+1)。
  • 缺点:继电器内的机械臂“有质量”,因此无法快速开关。
  • 在1940年代一个好的继电器1秒能翻转50次。但是不足以解决复杂的大问题。

缺点:速度慢,齿轮磨损,难以维护。

真空管

在1904年,英国物理学家“约翰 安布罗斯 弗莱明”开发了一种新的电子组件,叫“热电子管”。把二个电极装在一个气密的玻璃灯泡里,这是世界上第一个真空管。

  • 其中一个电极可以加热,从而发射电子,叫做“热电子发射”
  • 另外一个电极会吸引电子,形成“电龙头”的电流。但只有带正电才行,如果带负电荷或中性电荷,电子就没办法被吸引,越过真空区域。因此没有电流。
  • 二极管:电流只能单向流动的电子部件叫做“二极管”。

需求是:一个能开关电流的东西。而二极管只能做到开。

在不久之后的1906年,美国“李 德福雷斯特”,在“弗莱明”设计的两个电极之间,加入了第三个“控制”电极。

  • 向“控制”电极施加正电荷,它会允许电子流动,但如果施加负电荷,它会阻止电子流动。
  • 因此通过控制线路,可以断开或闭合电路和继电器的功能一样。但重要的是,真空管内没有会动的组件。
  • 意味着损耗大大减低和每秒可以开闭数千次。
  • 因此“三极真空管”成为无线电,电话,以及其它电子设备的基础。
  • 计算机可能要上百个甚至上千个电气开关,造价非常昂贵。

缺点:它们很脆弱,会烧坏。
意义:从机电转向电子

第一次大规模使用真空管的计算机是“巨人1号”,由工程师Tommy Flowers设计, 完工与1943年12月。“巨人1号”在英国的“布莱切利园”,用于破解通信。“巨人1号”有1600个真空管,总共造了10台巨人计算机,来帮助破解密码。 “巨人1号”被认为是第一个可编程的电子计算机
编程方法是:把几百根电线插入插板(类似老电话交换机),虽然“可编程”,但还是要配置它。

ENIAC

电子数值积分计算机“ENIAC”,几年后在1946年,在“宾夕法尼亚大学”完成建造。这是世上第一个真正的通用,可编程,电子计算机。

  • 每秒可执行5000次十位数加减法。
  • 真空管很多,所以故障很常见,运行半天左右就会出现一次故障

为了降低成本和大小,同时提高可靠性和速度,需要一种新的电子开关。

晶体管

1947年,贝尔实验室科学家发明了晶体管,一个全新的计算机时代诞生。

晶体管的物理学相当复杂,涉及到量子力学。

晶体管图片:

clipboard.png

  • 它是一个开关,可以用控制电路来控制开或关。
  • 晶体管有两个电极,电极之间有一种材料隔开它们,这种材料有时候导电,有时候不导电,叫做:半导体。
  • 控制线连到一个“门”电极,通过改变“门”的电荷,可以控制半导体材料的导电性,来允许或不允许电流流动。
  • 贝尔实验室的展示晶体管,每秒可以开关10000次。而且比玻璃制作,小心易碎的真空管。
  • 晶体管是固态的
  • 晶体管可以远远小于继电器或真空管。
  • 生产半导体最常见的材料是硅。

clipboard.png

clipboard.png

如今,计算机里的晶体管小于50纳米,而一张纸的厚度大概是10万纳米,晶体管不仅小,还超级快,每秒可以切换上百次,并且能工作十几年。

布尔逻辑和逻辑门

  • 什么是二进制,为什么使用二进制,布尔逻辑。
  • 3个基本操作: NOT, AND, OR。
  • 解释3个基本操作。
  • XOR异或

开始抽象,不用管底层细节,把精力用来构建更复杂的系统。

二进制

计算机最早是机电设备,一般用十进制计数。比如:用齿轮数来代表十进制,再到晶体管计算机。

只用开/关两种状态也可以代表信息,叫做二进制。

为什么使用二进制:

  1. 只需要表示truefalse,两个值就够了。电路闭合,电流流过,代表"真"。二进制也可以写成1和0,而不是truefalse,只是不同的表达方式。
  2. 晶体管的确可以确定不只是开/关,还可以让不同大小的电流通过。
  3. 只用“开”和“关”两种状态,减少难区分状态的情况。早期的三进制,三种状态,五进制,五种状态。问题是,状态越多,越难区分信号。干扰元素的存在,比如:手机快没电了或者附近有点噪音,因为有人在用微波炉,信号可能混在一起。而每秒百万次变化的晶体管会让这个问题变的更糟糕。所以把两种信号尽可能分开。
  4. 有一个整个数学分支存在,专门处理“真”和“假”,它已经解决了所有法则和运算,叫做布尔代数。

布尔,他有兴趣用数学式子,扩展亚里士多德基于哲学的逻辑方法,布尔用 逻辑方程 系统而正式的证明真理(truth)。在“常规”代数里,变量的值是数字,可以进行加法或乘法之类的操作,但在布尔代数中,变量的值是truefalse能进行逻辑操作。

布尔代数中有三个基本操作:NOTANDOR

布尔逻辑

NOT
NOT操作把布尔值反转,把true进行NOT就会变成false,反之亦然。

晶体管可以很容易实现NOT操作,晶体管只是电控制的开关。
有3根线:2根电极和1根控制线。
控制线通电时,电流就可以从一个电极流到另一个电极。

1根控制线作为INPUT, 2根电极作为OUTPUT

可以把控制线,当作输入(INPUT),底部的电极,当作输出(OUTPUT)。所以1个晶体管,有一个输入和一个输出。

clipboard.png

如果打开输入(INPUT ON)输出也会打开(OUTPUT ON)因为电流可以流过。

clipboard.png

如果关闭输入(INPUT OFF)输出也会关闭(OUTPUT OFF)因为电流无法通过。

改造成NOT GATE
与其把下面那根线当作输出,可以把输出放到上面。
如果打开输入,电流可以流过然后“接地”;输出就没有电流,所以输出是OFF。用水来举例,就像家里的水都从一个大管子留走了,打开淋浴头一点水也没有。所以是输入是on,输出是off

clipboard.png

如果当输入是off,电流没法接地,就流过了输出, 所以输入是off,输出是on

clipboard.png

之所以叫做,是因为它能控制电流的路径。

NOT GATE画法:

三角形前面加一个圆点
clipboard.png

AND

AND操作有2个输入,1个输出。
如果2个输入都是true,输出才是true

为了实现AND GATE,需要2个晶体管连在一起。这样有2个输入和1个输出。

如果只打开A,不打开B,电流无法流到OUTPUT,所以输出是false
如果只打开B,不打开A,也一样,电流无法流到OUTPUT
只有A和B都打开了,OUTPUT才有电流。

clipboard.png

AND GATE画法:
用D表示

clipboard.png

OR:
只要2个输入里,其中1个是true,输出就是true
只有2个输入都是falseOR的结果才是false

实现OR GATE除了晶体管还要额外的线。不是串联起来,而是并联。
然后左边这条线有电流输入,用“小拱门”代表2条线没有连接在一起,只是跨过而已。

clipboard.png

如果A和B都是off,电流无法流过,所以输出是off
如果打开A,电流可以流过,输出是on;如果只打开B也一样。
如果A,B都on,结果是on

A和B都是off的情况:

clipboard.png

只打开A或者,只打开B的情况:

clipboard.png

OR GATE画法:
用太空船表示

clipboard.png

XOR异或

XOR就像普通的OR,但有一个区别:
如果2个输入都是trueXOR输出false
想要XOR输出true,一个输出必须是true,另外一个必须是false

clipboard.png

用晶体管实现XOR门:
使用OR GATE, AND GATE, NOT GATE3种门来做XOR

  1. 有2个输入,A和B,还有1个输出。
  2. 先放一个OR门,因为ORXOR的逻辑表很像。
  3. 只有1个问题,当A和B都是true时,OR的输出和想要的XOR输出不一样,需要的是false,所以要加多个门。
  4. 如果加一个AND门,输入是truefalse,输出会是true,也不是所需要的,但如果在AND的输出加个NOT就可以把true翻转成false了。
  5. 最后加一个AND门,然后AND门的2个输入

分别来自NOT和最原始OR,AND会收到falsetrue,因为AND需要两个输入都为true,都结果才是true所以输出是false

clipboard.png

XOR画法:

一个OR门 + 一个笑脸
clipboard.png

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值