程序教程基础_电脑是个啥玩意

世界上最早的计算机

起源

在小时候叼毛我给家人逼着去背当时自己不明白的口诀,什么 一上一,二上二,三上五除二……(有兴趣的朋友自己去google里百度 算盘 606口诀). 现在想想当时背的是一套多么高深又简单的数学模型和算法. 这个模型和算法经历了2600多年的历练和优化,而且现在还在用.(自己去小城市的一些店铺里看看是不是还有很多的掌柜也可能是老板用的是这个神器).所以历史在一次向我们证明,经得起人们折腾的东西才是好玩意。我个人相信这东西还会继续延续下去。因为这东西了维护成本几乎忽略不计的,二期可用性非常强,对使用者的要求不高。不需要太多太多的专业知识,最重要的就是这神器遇强则强遇弱则弱(其实我们老祖宗给我们留下的很多宝贝这样的),不像大家见到的电子计算器这些电子产品,有寿命还有维护成本。所以这是多么难得的可贵的而且伟大的神器.让我们来看看这个神器的真正面目:

   

别问我为什么用两张图片,我只想告诉您.在这2600多年中不管是平民百姓还是商业大咖.都在用这个神器.顺便告诉大家一个大秘密.这件神器让各位过上幸福的生活和不可磨灭的贡献.因为我国的原子弹就是靠几屋子人用算盘的算出来的.当然在中国古代非常多的著名的建筑在动工前的计算也离不开这神器。


国际巨人----IBM的崛起之初

上面讲了我国最早的计算机现在我们来看看在机械革命后外国人发明的计算机,说到计算机我不得不说到IBM的创始人赫尔曼·霍尔瑞斯教授,他于1888年发明自动制表机——首个使用打孔卡技术的数据处理机器。自动制表机用于1890年以及后续的美国人口普查,并获得巨大成功(发现没有,不单是在国内是政府的钱好挣,国外也是,看看IBM和oracle的崛起就知道了)

 

看看是不是和我们的算盘非常像呀.加上机械的概念让人家一下就觉得高大上.其实就是盗版了我们的算盘.第一张图片就是把我们的算盘立起来.这是把算珠换成了纸(外国人也懒.本来是非常简单通用的东西就硬生生的搞成了复杂不通用的东西,可能是人家没有背上面的口决吧)


然后我们在看看第一台所谓的电子数字试计算机

 

图片看看就可以了,我只会告诉你,现在你用的手机比他要强NNN倍.但是这台电脑最早用的输入设备就是打孔机,就是在纸片上打孔(想想和你在算盘上拨盘珠是一个道理.没有什么高深的,而且打孔非常非常简单.比在算盘上拨盘珠要简单好多倍这就是我说上面这些废话的原因了).

Debug的由来

顺便说一下debug的由来.就是当年有一女神 葛丽丝·霍波(Grace Hopper),辛辛苦苦把打好孔的一叠纸张塞入马克2号(Harvard Mark II)中去,然后嘴上说:天灵灵,地灵灵,这台电脑听我令.给老娘运行起来. 结果估计这妞平时欺负多了这台电脑.电脑就是不听话.这样一下这女神就不干了. 卷起袖子就马上就成了女汉子,就开始拆电脑了. 拆开继电器后,发现有只飞蛾被夹扁在触点中间,从而“卡”住了机器的运行。于是,霍波女神诙谐的把程序故障统称为“臭虫(BUG)”,把排除程序故障叫DEBUG,后来这个就非常优良的延续下来了,成了计算机领域的专业行话。


计算机的发展

其实任何事务的发展都是向两个方向发展的,通用性(说白了就是平民化大家都可以用的),专用的(说白了就是定制的贵的 土豪用的).计算机也是,如PC就是个人电脑的英文缩写.就是通用的, 还就是巨型机,服务器这些就是专用的.具体我就不多介绍了.因为介绍了也没有用,能接触到的不用我介绍,不能接触到的我介绍也没有用.但是这些计算机有一个同用的特点那就是他们都遵循了 冯·诺依曼结构

冯·诺依曼结构

什么是冯·诺依曼结构呢?先我们在回到我们刚刚的算盘上来.看看你要算个数你会在算盘上去拨动一个算珠. 对就是这个算珠.别小看这个玩意.这个东西可以充分的体现我们老祖宗的智慧.为什么呢.我们来分析一下.如你要算一个数.如 123456*56789 正常情况下你会首先听到或者看到 123456 这个数 你可以记到本子上 然后看到 乘号 在记到本子上 在看到56789 在记到本子上这样子的话你的本上就如下

然后在通过您那聪明的 大脑来高速的算出来结果通过笔写到本子上或者通过嘴说出来 .

看看你算这个的时候 你用了些什么呢  通过眼睛去看(或者通过耳朵去听)题目 (输入),然后借助本子去记题目(存储).在运用您那聪明大脑去算 (运算) 这个题目,最后过笔把结果写到本子上(输出).要是你高兴的话你可以用嘴大声的读出来 (输出) ,这些步骤都是在你聪明的大脑的指挥下有条不紊的进行的(控制器).当然你要是想恶作剧使坏的你也可以故意写(说)一个错误的结果(控制器),这主要是一个正常人算一个数学题目的基本过程(非常人的那些看一眼就知道结果的牲口我就不讨论了)

好在回到前面我们说到的算盘,你要算一个数先是在算盘上把珠子调整到这个数.然后在听下一个数在去通过你的手指在上面飞舞很快就可以算出结果了(注意这是不用你的大脑算的)

看看这里可以让你省下了笔 纸 还有就是你的聪明的大脑也可以少死一点细胞.完全就是算盘上的珠子的功劳.这充分体现我们老祖宗的聪明才智了.把输入,输出,运算,存储完美的结合在一起了,只要你的手来充分的控制它.就可以了.

但是外国人可能没有用过我们的算盘.所以他们体验不到我们中国算盘的强大之处.只有通过自己的算数的基本步骤来设计一台电脑.根据上面我们分析的计算一个数的步骤和要用到的一些东西然后再抽象成了一台计算机要下面5个基本的组成部分.

主机,显示器,键盘,鼠标,音箱(嘘,你们小声点,我的计算机入门老师拿着斧头正在赶来的路上,因为我正在误导人家子弟)开心一下,我来个正经一点的:

一台计算机包括以下5大部分

输入设备   如 键盘 鼠标 U盘  手机 等

输出设备   显示器, 打印机  U盘 手机 等

存储设备   内存条  硬盘 U盘 光盘 键盘 算盘等 后面两个不是

运算设备   CPU中的一部分由于外国猴子没有发育完全什么也照搬人类的大脑所以你懂得

控制设备   CPU 中的另一部分 

根据上面我们算数的过程然后抽象了一下计算机的工作流程如下:

 

输入输出设备没有什么讲的了因为我们在日常生活过使用电脑的过程中经常接触过.有些设备你们比我还熟悉.特别是某些人键盘上的某些按键 譬如说 QWER这些键可能磨的字母都看不清了.所就现在我们来讲讲其他的设备

存储设备

要是真心想学的朋友可能在认真的听我在这里一本正经胡说八道,在记东西,要是记性和我一样的兄弟(进入中年,记忆力衰退)可以拿着本记着我说的某些废话.好了现在出来了两个不同的东西是.一种是记到大脑里(或者是心里,具体这两个有什么区别自己去体会),还有一种是记到本子上.麻烦大家想想这两种有什么区别吗?

对了,一般正常人(我们只讨论正常人,非正常的牲口我们不讨论以后也是)记在大脑里的有些东西可能过段时间就忘记了,甚至一转身就忘记了.但是记到本子上的东西,正常情况下会一直在.(当然你的本子丢了,给老鼠咬破了不算),这样的话计算机的存储根据我们人类的这些情况可以抽象成内存(不管是你记在心里还是大脑里)和外存(你记到本子上的)

内存

上面讲到了计算机的内存,只是没有详细说到有些事记到心里和大脑里的区别,现在我们来讲个记到心里和大脑里区别.记得曾经一个非常非常好的朋友,在外面辛辛苦苦打了一年的工(我那个朋友高中毕业就出去工作了).结果高高兴兴回家过年.到我们县城非常非常晚了.大半夜.想想回家了.非常开心.结果出事了.辛辛苦苦一年挣的钱给县城的几个骗子骗了个精光.这件事情他记到了心里.终生难忘.

下面我在说另一件事,我去找一个朋友借钱,说好的多少钱去找他拿钱,结果到时间了他居然说昨天还记得的,结果今天早上一忙就忘记了.

看看人记在心里或者大脑里的也有区别.有的是终身难忘的,有的是过段时间就会忘记了.计算机系统的也是这样的.所以计算机的内存又可以分为 只读存储(爱过痛过刻苦铭心的),还有就是随机存储(爱过累过后的断片)

ROM

爱过痛过刻苦铭心的,就是终生不会忘记的.就会停电了,你把主板砸了,里面的信息还在的.这样的存储叫只读存储.电脑主板上有个叫BIOS的东西就是这个鸟玩意. BIOS 就是最基本的输入输出设备的意思,你开机时说 众神归位 听我号令 然后在按一个特殊的键就可以进入到这个神秘的地主去.


RAM

重要有些事你可能当时记的过段时间就忘记了。在计算机里抽象成了随机存储。随机存储也就是内存里的东西可以读取,也可以写入。但是在计算机断电后里面的所有的信息都会丢失。和你记在大脑里的事情过段时间忘得一干二净差多是一个意思。

好了现在让我们来看看内存长的是个什么样子,至少让我们认识认识他吧。不然以后看到不认识就不要说听过我的课。   


内存和变量的关系

现在我们把内存来看成是一个你做笔记的本子的话,那么你把你的本子在做了点点提高效率的事情就是加上目录,那么以后你要在本子里找一点你需要找的信息就不需要从第一页开始找了,只有从前面的目录(索引)去找了。如你要用的数据在第5页,那么你就直接翻开第5页就找到相关的数据了。但是现实中你在电脑上要处里的数据可能一页放不完,要放好几页,甚至是几十上百页那么你能完全非常清楚的记的那个数据在哪一页吗?要是一般的普通正常人可能很少有这样的能力。那么肿么办呢?对,就是给这内存区域取名,也就是变量名。你去设置变量的值就是把这个变量内存区域的值设置的相应的数据,你获取这个变量的值也就是读取这块内存区域的数据(值)。

函数(方法)和变量名为什么不能以数字和特殊字符开头

在很多的语言当中函数的名称或者方法名称和变量名称不能以特殊字符或数字开头,知道为什么吗?好吧。其实不为啥。就是因为这做这些编译器的人非常非常懒,不想去实现这个功能。因为要实现这个功能工作量非常大。为什么呢。因为前面的课程当中我们讲了计算机是非常非常笨的一种机器。如下面几个符号

1+2   3f   5*5   6&2   4(7f*0)*a *4  !1  =6

在计算机里电脑是非常难判断那个是算术表达试,那个是无意义的字符,所以那些程序编译器或者解释器的开发大牛们就遵循了一个通用的标准,以特殊字符或者数字开头的都以算术表达式的方式去处理。所以就函数的名称或者方法名称和变量名称不能以特殊字符或数字开头,你要是想知道更多的话推荐去看《编译原理》。

外存

上面说上课能有些兄弟会拿笔记到本子上,本子就是外存设备。当然你要是用铅笔写,那么就算本子写满了你也可以用橡皮擦擦掉再继续写,这样的就是你可以读去以前写的笔记,也可以擦除以前的部分笔记再继续写。而且在你的大脑忘记了或者断片后还可以拿这个笔记本来看看,就是说外存断电后里面的信息(数据)是不会丢失的。常用的外存有 硬盘 u盘等。

硬盘

硬盘的尺寸有3.5(台式机用的)的和2.5(笔记本用的,当然台式机或者小主机都可以用的)更多硬盘资料请看这片文章http://caipiao365.vip/article/15(个人电脑数据的安全防护之------<硬盘的日常保养)

现在来两张硬盘的玉照给大家瞧瞧 机械硬盘(3.5,2.5的),和固态(SSD)硬盘。

         

上次一个朋友给我发了上面这张图片。问我说他的硬盘是300G这右下脚的550是什么意思,我告诉他是两个250再加两个 250*0.1的意思。当然是开玩笑的了。这不是550是SSD


运算器

我们在来谈一下我们人类来做数学运算的过程。因为世界上所有的事情都有非常多简单的事情组成的,数学运算也是这样。各种数学运算最终都会抽丝剥茧变成加法和减法。因为加减是其他运算的基础。不管是算卫星的运行轨迹还是导弹的运行轨迹,最终都要用到基础的加减法。好了废话不多说了,如我说要你算一下(5*6)+12等于多少,你会马上告诉我答案,但是你算的太快了。我们放慢速度来分析一下,先你听到5你就会在你大脑里暂时记一下5,在听到乘6,你会把刚刚在大脑里记的5提出来乘以6 并且算出等于30,再暂时记住他,在听到加12,你就又在你的大脑里把刚刚的30提出来,并且算出加12等于多少,再暂时存在你的大脑里。好了,沿用我前面一惯的做法我们来抽象一下我们的过程。

一个运算器要包含的小部件有 

寄存器 用来暂时存运算数据的地方 可细分为:状态寄存器、通用寄存器

运算单元 基本功能为加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、求补等操作

为了方便理解我们来一张图片来看看计算机是如何傻乎乎的做运算的(为了简单我们来一个逻辑运算吧,而且在程序中也非常用)

先来介绍一下逻辑运算有要有 非、 与、或这三个组成,听字面上的意思大家就知道了。

非 就是相反的意思。如:非零值那就是就这个值不是零

与 就是 A和B两个都要存在

或 就是两个只要一个存在就可以了

先来几个例子如: 我要找你借钱, 

要是你不想借 你可能会说没门 就是非操作。

要是你答应了还要问你爱人,你和爱人都答应了 那就是与操作

要是你或者你爱人两个当中一个人答应了那就是或操作


为了揭开CPU里面的运算器的神秘面纱我们来看看逻辑运算器的简单电路图片

 

当然要是你想了解更多的话请学习:《电子技术》,《数电模电》,《微机电路》这些基础课程了。先要知道二极管PN结是什么鸟玩意,NPN和PNP等等(电子是一门物理和化学结合的课程,看看多学些(或者了解)非本专业的知识是多么的重要。)(又一个非的使用哦,我们生活当中到处在使用逻辑运算)


控制器

控制器这个东西就更好的解释了,他就是一台计算机的总司令,由他去管理什么时候去读取数据,什么时候去做运算,做什么运算等等。



CPU


闲话之电脑升级

运算器和控制中通常都是做到一块芯片里我们叫CPU。早期的CPU是焊死的主板上的(当然现在也有些电脑如工程机,或者是小主机 也是焊死在主板上的)后来由于硬件的更新速度快就没有焊死了,为了方便你升级,所以主板上的各种接口非常多。(顺便也说一下以前大家去配电脑不要相信那些JS说的用什么什么东西,以后升级方便。因为一台电脑用了两三年或者更长时间后你如果想升级的话还不如换一台新的。为什么呢,你想要升级内存发现不是接口不一样的就是速度不一样,安装上了可能会把电脑搞蓝屏。还不如不升级。你想升级显卡以前是VGA的接口,结果一升级是发现是DP的接口然后你还要去换显示器。所以一般说要升级的硬件的时候我个人建议大家去配一台新的电脑还省事)。

  

好了现在我来说说CPU,先看看前面的图片,有针脚是不是呀。放心那是以前的CPU,现在的新CPU没有针脚了。为什么呢?这就要从很久很久以前说起了。话说一个哥们晚上加班很晚而且当时还给工头T了一顿(不要问我为什么用T,因为是搞挨踢的),下班后想想自己多么的苦逼呀,天天没日没夜的加班,越想越觉得自己好苦。然后就去喝闷酒,喝的醉熏熏的回家,回到给他老婆问这问那,讲政治课,结果那哥们的小脾气,一言不合就*****。后来据说他老婆的娘家来人了。恰巧他在修电脑,把主板、cup等都拆下来了。然后他老婆的娘家人和他非常愉快的讲了很多的人生大道理,不过为了让他加深理解和印象让他跪在地上双手楸着耳朵听完的。然后他老婆为了让他在长点记性就把他身边刚刚拆的那块CPU放到了他膝盖下。我那可怜的哥们最后一把鼻涕一把泪向全球男人狗保护协会请求帮助。结果全球男人狗保护协会很快就接到并且处理也他的事情,就有了第二张图片和的CPU。  

其实真正的原因是针脚的CPU在安装和拆的时候容易造成针脚倾斜弯曲和断掉,从而造成整个CPU的报废。

上面的故事纯属虚构,如有雷同实属巧合。

 

单片机

上面我给大家看了CPU的图片 内存的图片 还有硬盘的图片。所以说PC就是一个多片机。说这里的时候,聪明的您就想到了要是我把这些东西集成到一块或者两块型芯里那就是不是叫单片机呢?对了,聪明的您一猜就准。

单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。单片机也是电脑,和我们的生活息息相关。如你家的电冰箱,洗衣机,路由器,你天天用的手机等等非常多。好多单片机里的系统和里面的应用是C写的,但是还有好多的单片机里的软件可以支持用python来做。比如说你手机( 你可以搜 在应用市场上搜python),你家的路由器,你可以刷成dd-wrt或者open-wrt.就可以支持python了。看看单片机也没有非常复杂。因为单片机本来就比PC要简单的多。



注意:本文属于原创。首发于自己的博客: http://caipiao365.vip/article/24 

欢迎转载,转载请保留上面的链接谢谢合作。版权保留。