从这一期节目开始,一直到第100期,也就是这18期节目里,我只讲一个内容,就是电脑的工作原理。希望能把我所知道的工作原理讲清楚。现在就开始正式开讲。首先,讲几个小故事来引出今天的话题。
1.1 烽火戏诸侯
我们都知道烽火戏诸侯的故事,讲的是西周时期,周幽王为了逗他老婆开心,他的老婆褒姒(bao si)有个特点,特别的高冷,不爱笑。然后周幽王为了让这个女人开心,就点燃烽火台,诸侯看到烽火台冒烟了,就以为是西边的犬戎打过来了,然后纷纷的出兵。结果这个女人看到以后,特别开心,哈哈大笑。这个周幽王一看,这不错啊,就多次点燃烽火台,结果每次都是妃子笑,诸侯哭。搞多了,诸侯干脆不来了。结果犬戎真的打过来了,然后把这次周幽王又点燃了烽火台,结果,诸侯没有出兵。这就是狼来了的中国古代版本。周幽王被杀死。
烽火戏诸侯也是周幽王自己作死,作为政府的最高首脑,频繁的发假消息,首先是天子失信,下面就是诸侯失信,反正总体上来说,西周灭亡的一点都不冤枉。再多说一句,西周灭亡以后,周平王即位,然后把都城东迁到今天的河南洛阳,也就是历史上的东周。在这里,立下赫赫战功的人中有一个叫秦襄公的,就是因为烽火戏诸侯这件事情,间接导致了秦襄公被允许建国,也就是秦国,然后天子把封地分封给秦国,反正分封的土地都是犬戎的,基本上就是送个人情。就是这个养马养了几百年的秦始皇的祖先,因为烽火戏诸侯,得以建立秦国,随后,就是这个国家,统一了中国。
当然,这个故事是史记上记载的,在同期其它的史书上,有另外的记载,说不是烽火台,是敲鼓。不过,我这个电台里不追究历史的真伪,不管是烽火台也好,还是敲鼓也好。这里又一个重要的信息是,古人是如何传递信息的?姑且就认为是烽火台吧。烽火台上有干草,干草上面盖着一层狼的粪便,据说,狼的粪便燃烧起来,会有巨大的浓烟,所以有个成语叫狼烟滚滚,狼烟四起。当然,我没见过,别说狼烟,就是狼我也只是在动物园见过,倒是见过不少色狼。
这个故事告诉我们: 信息是可以通过媒介传递的,通过狼烟来传递
1.2 易北河会师
上一个故事讲的是古代中国的故事,第二个故事,我来讲一个现代的外国的故事。要给外国人一个露脸的机会。如果大家对二战比较熟悉的话,应该看过一张出名的照片,在一个断桥上,三个美国士兵和四个苏联的士兵在握手。这就是二战中非常著名的易北河会师。这张照片实际上是摆拍的,真实的情况我们已经没法知道,有一种说法是一名美国士兵和一名苏联士兵,由于语言不通,彼此拍了拍肩膀。这个,我们暂时不去追究了,毕竟对我们这个节目的意义并不大。
易北河会师发生在1945年4月24日,在此之前,希特勒已经是强弩之末,失败已经无法避免。早在易水河会师之前的两个月,也就是雅尔塔会议上,美国,英国和苏联已经在讨论胜利以后如何分配利益。在这个会议上,也制定了易北河会师的规则,美国和苏联分别从两个方向进攻德国,把德国切分成两部分。但是毕竟战场上没法分辨敌我,所以就规定了接头暗号。当两个国家推进到易北河的时候,就停止继续进攻,以信号弹来作为接头信号。会议上决定,苏联放红色信号弹,美国放绿色信号弹。
首先推进到易北河的是苏联的乌克兰第一军,然后静静的等候美军的到来。在4月25日的时候,美国的一个步兵巡逻部队首先到达易北河边。然后,发现自己忘了带绿色的信号弹。这时候,对面的苏联红军发现河对岸有情况,并且没有释放信号弹,就以为是德军,因此开始了猛烈的攻击。美军这边没有还击,因为是他们忘记带信号弹了,苏联红军一看对方没有还击,火力也停止了,决定首先释放信号弹。可惜的是,苏联带了信号弹,但是带错了。本来雅尔塔会议上决定的是苏联红军释放红色信号弹,结果带来的是绿色的。因此,苏联就释放了一个绿色的信号弹。当美军看到释放的是绿色信号弹以后,以为这尼玛咋搞的?不会是德军吧。然后,双方竟然打起来了!后来打的毕竟很心虚,美军就从战俘营里找来了一个会俄语的士兵,对着河对岸喊话。这才搞清楚,原来是盟军的部队。
Figure 1:栋哥亲自绘制的“优美”插画
这个故事告诉我们, 信号一定不能放错,不管是打仗还是搞电脑,一旦发出的信号有错误,后果不堪设想。
1.3 手电筒传情
第三个故事呢,是我瞎编的,只是为了引出如何设计一个传递信号的机制。比如说,我们和青梅竹马的女生住在一个小区里,没有电话可以联系,只有一个手电筒可以使用,在没有雾霾的黑夜里,实际上,我们可以通过手电筒来传递某种信息。就是两人分别拿着手电筒,可以在空中写字,但是,实际上,那些字是非常难以辨认的,这个方法根本不行。我们可以通过拼音的方法来实现通讯,最简单的方法是这样:用汉语拼音来实现通讯,从A-Z这26个字母,A按一下手电筒,B按两下手电筒,C则按三下手电筒…一直到Z,按26次手电筒。虽然效率比较慢,但是在没有雾霾的黑夜,一天晚上还是能够发一个一句两句话的。当然了,这个方法肯定没人去用,因为不但你自己累,接收的一方,也非常累,一旦数错了手电筒的闪光次数,那就非常崩溃了。不管如何,这也算是一种方法,只是很粗糙。
Figure 2: 以后插画都是这个风格,提前预警
我杜撰的这个故事呢,起码告诉我们,作为一个啥经验都没有的人,也是可以尝试设计一种系统,来通讯的。
1.4 莫尔斯码
第四个故事,摩尔斯码。摩尔斯是谁呢?大家应该都知道,他是电报之父,就是他,发明了电报这个东西。摩尔斯这个人,和我们课本上学的有点不同,我记得我上学的时候,说摩尔斯家境贫寒,由于某种原因,他不怕辛苦,不怕困难,终于研制出了电报。我小时候经常是这么被洗脑的。后来我才知道,摩尔斯不但家境不贫寒,而且老爹是个超级大富豪。摩尔斯本人呢,衣食无忧,是个画家,而且是个很出名的画家,每天的生活主要是想着能去哪里旅个游。而且,他在41岁以前,只会两件事情,花钱和画画,一点科学家的样子都没有。结果,有次,在旅游途中,在一艘轮船上,他的医生也很无聊,就和他展示了一个技术,电磁铁,一通电,铁棍就能产生磁场。这件事情,让摩尔斯产生了巨大的兴趣。41岁以前,他只会画画,电磁学的只是为0,远远不如他的医生懂得多。
然后,他回美国以后,才第一次买了一些实验仪器,开始自学电磁学的知识。刚开始的时候,纯粹是觉得这玩意好玩,他也没打算设计个啥东西出来,毕竟一个画家,到了后来,他才决定也搞一个通信系统出来。为什么呢,因为当时一大批人都试图搞一个通信系统,他不是第一个,也不是最后一个,确切的说,电报这东西的编码,根本不是他发明的,而是他的助手发明的。不管怎么说了,这个有钱的富二代,成功的画家,发现了一个有趣的现象,电流停止的片刻,导线上会出现电火花。
在这里多说一点,非常希望大家做一下这个实验,晚上把灯关了,用一节干电池,把正负极短路,也有轻微的电火花产生,这个我做过,只是电火花非常的微弱。我觉得吧,这个现象肯定不是摩尔斯第一个发现的,只是他第一个想到这个现象可以用来通信。因此,他的方法是这样的,有火花的时候看作是一种符号,没有电火花的时候看作一种符号,然后没有电火花的时间长度又是一种符号。这三种符号组合起来,就可以表示字母和数字了。
莫尔斯码其实和计算机关系不大,主要是和电报关系很大。有人说莫尔斯码是二进制的,这也是不对的,莫尔斯码是三种状态的组合,不是二进制。然后,摩尔斯很兴奋,就决定继续搞下去。然后,他花了很长的时间,设计了很多的编码,毕竟自己是个画家,经过了不懈的努力,他发现自己搞不定编码!有些事情,不努力一下,是发现不了自己不行的。如果有人不相信,你自己设计一下编码试试。反正我试了好几次,很难做出自己的编码。
然后摩尔斯就去找一个能搞定编码的人,他的名字叫艾尔菲德•维尔,美国人,是他发明的莫尔斯码。这个编码就是我们今天所知道的通过点,划和中间的停顿。不过,这个维尔同学,基本上没有什么名声,大家只知道摩尔斯这个人,并不知道摩尔斯码其实并不是摩尔斯设计的。其实莫尔斯码有好几种,比较出名的包括美式摩尔斯电码,还有国际摩尔斯电码等等,现在如果有人喜欢玩摩尔斯电码的话,也可以去玩,如果每分钟能发送20多个单词,还能获得业余无线电证书。
发送SOS的信号是三短,三长,三短。现在好像很多手机上的手电筒应用都有默认的设定,可以发送SOS的信号。我们可以看出来,因此摩尔斯码可以通过任何的媒介发送出去,不止是电线,也可以通过无线电,也可以通过手电筒。编码是相同的编码,发送的媒介可以与时俱进。
还有一个故事是,二战结束以后,很多的军人是会莫尔斯码的,然后两个退伍军人就去面试,面试的时候,有考题,笔试题。然后两个军人就通过铅笔敲桌子的方式来作弊,根据声音。结果,没想到监考的人也是个退伍军人,也通过敲桌子的方式发送莫尔斯码,来警告两位,不要作弊了!
这个故事告诉我们,当我们想传递信息的时候,编码搞定了,其实通过很多的媒介都是可以把信息传递出去的。可以通过手电筒,可以通过铅笔敲桌子,可以通过电线,或者通过无线电。比如说,在长征期间,红军的电报就坏了,主席非常开心,因为共产国际管不到他们了。那个电报,是通过无线电来传播的。
2 本系列的大体的脉络
2.1 巴贝奇计算机
如果大家以前听过我的音频的话,有两期我是做的人类历史上的第一个程序员,在里面着重说了几位人物,除了Ada,花费时间最多的人叫巴贝奇,巴贝奇试图用齿轮造出一台计算机,最终他没有做出来,但是后人使用他留下来的设计图,真的造出了那台机器,非常原始,但是能够工作的一台计算机。
在前面我刚刚提过,41岁的摩尔斯,在他的医生的展示下,第一次对电和磁产生了兴趣,然后,他花了很多的时间,由一个出色的画家,自学成才,成了一个伟大的工程师,并且拜著名的电磁学家亨利为师。我们初中物理的电学里,有这个人,亨利,电感的单位就是这个人的名字。在美国,他被认为是富兰克林以后最伟大的科学家之一。
摩尔斯是他的学生,前面我提到过,摩尔斯家族非常的厉害,他爸就是个学术界以及宗教届的牛人,具体牛到什么程度呢,大概是现在中科院院长,至少是个院士的地步。他爸爸是美国的“地理学之父”,在学术界和宗教界是不可忽视的力量,所以,摩尔斯才能够拜亨利为师,也是靠他老爸的关系。摩尔斯是耶鲁大学毕业的。
摩尔斯的发明,很大的一个推动力,就是他拜的这个老师,电感单位的牛人,亨利。电感的定义是这样的,虽然我们初中学过,我怕有些人忘记了,就提一下,因为这个定义非常的重要,以后我的课程里,要多次用到这玩意。电感是这样的,如果电路中电流每秒变化1安培,则会产生1伏特的感应电动势,此时电路中的电感定义为1亨利。这里的安培和伏特我就不多说了,安培是电流的单位,伏特是电压的单位。如果再解释,就没法讲了。再来说一下亨利的一个发明,他发现了电磁感应现象,比法拉第要早,但是,他没有法拉第有名气,因为法拉第确实更厉害吧,电容的单位就是纪念法拉第,我顺便提一下电容,是因为以后的节目里,也要用到电容这个东西。
摩尔斯的老师亨利先生,还有一个特别重要的发明,就是继电器。我这里说的继电器是最古老的那种继电器,电磁继电器。现在可能有同学说,继电器太多了,有固态继电器,磁簧继电器,还有热敏继电器… 这些继电器太先进了,我们不涉及。
我这里所说的继电器,就是最早的继电器,初中物理上的那个继电器,一个铁棍,一个线圈,一块电池,再加上一个弹簧片。这种最简单的继电器。使用这种最简单的继电器,使用一个或者两个,再加上一个弹簧片,就可以构建出我需要的各种逻辑门。然后再使用逻辑门,然后再使用逻辑门构建我需要的半加器。
2.3 为什么从继电器开始构造?
可能有同学会有疑问,为什么用这么落后的设备来构造计算机呢,现在都用晶体管了。是的,如果大家对计算机的历史有理解的话,第一台计算机再1930年代被制造出来,里面的设备就是继电器,这台计算机的名字叫机械式继电器计算机,这台计算机通过继电器里面的弹簧片的接通和断开来表示二进制的0和1,后来由于继电器的性能不能保障,因为里面有弹簧片,弹簧片这种东西,弹多了,就失效了,而且使用的能量也太多了。继电器中有弹簧,我们知道,弹簧的速度是不够快的,最快的弹簧片,需要1/100秒改变一下状态,而且,弹簧片不可靠,因此,并没有大规模的应用。但是德国的科学家朱塞就是使用继电器制造出了一台全自动的计算机,速度肯定不快,但是已经具有现在计算机的一些特征了,能够计算浮点数,二进制计算等等。后来才使用电子管代替了继电器,后来又用晶体管代替了电子管,但是,基本的原理并没有发生翻天覆地的变化。
今天我们使用的晶体管计算机,速度更快,能耗更低,也更便宜。但是,里面的工作原理和继电器的计算机并没有任何区别,今天的一个8位的加法器需要144个晶体管,同样,当年构造一个8位的加法器,需要144个继电器。只是现在科技发达了,由于集成电路的突飞猛进,144个晶体管,尤其是现在intel有10纳米的工艺,144个晶体管可能需要用电子显微镜才能看清楚。但是继电器的话,144个继电器,可能得一大坨。但是,我们要知道,里面的原理是一模一样的。
好了,下一次开始讲继电器的工作原理,如何用一个铁棍,一根导线,一个电源再加上一个弹簧片,构造出一个继电器出来。谢谢大家。
喜欢听主播发散性乱扯。说实话你要看严谨专业不如看书,要技术干货不如直接看培训视频、官方文档、博文。
太喜欢听了,我想听的,我以为必须硅开始呢
讲的太啰嗦了,大部分时间都花在乱七八糟的事情上,如果逻辑精简言简意赅,和卓老板聊科技有的一拼。
彳沐 回复 @软件那些事儿: 给自己做节目,管他鸟事。不必委曲求全,开心就好。这是你的风格,想听这是要遵守的。我也是个底层程序员,津津有味一期不拉地听到现在。你讲你的自己,不必管我;我听我的自己,不必管你。
好
老大牛犇啊!!!居然最终会讲底层原理!!!追剧追的我热血沸腾啊。。。感谢老大分享!继续来一个捐赠动作,作为感动的点赞~~
值得尊敬,没有相当的实力,就无法对计算机娓娓道来。
赞赏按钮呢?
战斗民族VR 回复 @战斗民族VR: 找到啦啊哈哈~
一听你这么讲就知道您看过佩措尔德《编码的奥秘这本书》
软件那些事儿 回复 @听友102939899: 是的
通过看免费课程(网易云课程、腾讯公开课)和看书和看论坛能自学到能找一份实习生的工作吗
软件那些事儿 回复 @ahriman_O1: 能
希望以后越来越好,千万不能关闭,