计算机,言外之意,最初人民设计出来它的时候就是为了解决“计算calculation”的事情,而除了最先期的的算盘之外,最先的是在美国的一次人口普查用的,公元1880年,美国举行了一次全国性人口普查,为当时5000余万的美国人口登记造册。当时美国经济正处于迅速发展的阶段,人口流动十分频繁;再加上普查的项目繁多,统计手段落后,从当年1月开始的此次普查,花了7年半的时间才把数据处理完毕。也就是说,直到快进行第二次人口普查时,美国政府才能得知第一次人口普查期间全国人口的情况。python
直到有一位叫“霍列瑞斯”的人,发明了“打孔制表机”,把穿孔纸带改形成穿孔卡片,因为每一个人的调查数据有若干不一样的项目,如性别、籍贯、年龄等等。霍列瑞斯把每一个人全部的调查项目依次排列于一张卡片,而后根据调查结果在相应项目的位置上打孔。例如,穿孔卡片“性别”栏目下,有“男”和“女”两个选项;“年龄”栏目下有从“0岁”到“70岁以上”等系列选项,具体实现是怎么样的呢,让咱们来了解下:算法
他的设备核心思想就是用机械来代替人工计数,上面咱们讲到了用卡片上的孔来表明某一项的数据,如图所示,当卡片插入机器时,机器上的小金属针就会到卡片上,若是某个地方有打孔,那么小金属针就会穿过,注入一小瓶汞,联通电路,电路会驱动电机,给某个选项的齿轮+1。这样就用自动的电动机械行为代替了手工运算。当时这类机器的效率是人工运算的10倍。要知道,这个数量级的提高在当时是很是有意义的,也就是说原本一次人工普查的耗时7年,如今减小到不到一年。shell
随着时代的发现和计算需求的逐渐增大,人民须要计算力更强的机器,打孔的本质其实也是区分0和1,所以人民发现有没有更快的方式去去分,这样“继电器”就产生了,如图,当电流流过线圈,线圈产生电磁场,吸引金属臂,从而闭合电路。这个电路能够连到其余电路,好比马达,马达会让计数齿轮+1,相似于上面的打孔制表机。这类型的计算机表明就是哈佛马克系列。微信
不幸的是,继电器的质量太大,致使开关的速度也不够快,当时最好的继电,1秒也就翻转40次左右。另外,这些继电器组成的庞大的电路,工做时会发出较高的温度。而正因为这些温度会吸引昆虫。1947年,哈佛马克2型出现了一次重大故障,最后查到缘由就是有一只“死虫”把其中的继电器卡住了。所以咱们今天计算机故障都叫“bug”!网络
正是因为以上的缺陷,因此咱们又得想更加先进的模式去取代它!中间经历过真空管,直到1947年,贝尔实验室科学家发明了晶体管,一个全新的计算机时代诞生了!晶体管的物理学原理有兴趣的同窗能够本身深刻理解下,涉及到物理学和量子力学。咱们只讲用于计算机的原理及基础。架构
晶体管有两个电极,咱们称之为发射机和集电集。电极之间有一种材料隔开它们,这种材料有时候导电,有时候不导电(这叫半导体),控制线连到一个“门”电极,经过改变基级的电荷,咱们能够控制半导体材料的导电性,来容许电流流动获不流动。就实现了和以前真空管、继电器同样的功能。spa
======================①因此到这里为止,咱们终于知道了最佳的用于控制0和1的个体元素。====================【因此说计算机就是由晶体管组成的,下面会讲到cpu的三大部件,其实核心本质都是各类晶体管组成的逻辑电路!】操作系统
接下来咱们就用晶体管组成各种逻辑电路,下面是最简单的一个and电路(“与”门),用两个晶体管能够组成,两个输入一个输出,只有两个输入都是1的时候,输出才为1,不然任何一个输入不为1,结果就不成立:设计
而同理,咱们能够组成或门、非门、或非门。而后这些基础门再组成庞大的电路来处理复杂的运算。下面组成了一个“半加器”3d
而利用“半加器”又能够组装成“全加器”(有进位的加法器)【这些都是“数字逻辑电路”这门课中讲到的原理,有兴趣的同窗能够自行深刻了解!】
最先的因特尔74181处理器打工用了70个逻辑门,但不能执行乘除,具体的逻辑电路结构以下:
======================②到这里为止,已经把计算机中的ALU(cpu三大部件之一)讲清楚了。============================
寄存器,也是由晶体管组成的,看如下两个电路,第一个电路,开始的时候A、B输入都为1,那么输出也为1,若是以后A设为0,因为是AND门,输出会变成0,不管后面输入变成什么,output一直为0.所以,这个电路能记录0;
同理下面这个电路能够记录1
如今有了能记录0和1的电路,咱们把它们组合起来,变成AND-OR锁存器,它有两个输入,“设置”输入,把输出能够变成1,“复位”输入
,把输出能够变成0。若是“设置”和“复位”都是0,电路会输出最后放入的内容。(你们能够本身模拟试如下,只要复位不为1,输出就永远是上一次的输入!)也就是说,它存住了1bit的信息,这就是传说中的内存原理!!!
======================到这里为止,已经把计算机中的寄存器(cpu三大部件之一)讲清楚了。============================
cpu控制器由两个阶段组成,第一个阶段就是“取指令阶段”,第二个阶段是“解吗阶段”,这两种都是经过电路链接解决。这部分用视频过程演示能够会更清楚,文字的描述篇幅太大了(具体过程能够参考视频讲解,关注微信公众号后,直接发信息便可,我会把视频连接发给你们)。
======================到这里为止,已经把计算机中的控制器(cpu三大部件之一)讲清楚了。============================
剩下的就是执行程序了,有好多好多程序语言,最本质的原理无非是每个程序指令会和机器码对应,而计算机也保存着这份对应关系。以便用做解码用。
而最终程序也是放在存储中,让cpu控制器去取了,而后逐条执行完成计算。这样就是cpu最简单的工做模型。
总结下,计算机核心部件以下,而cpu内部包括内存都是由晶体管组成的,其实就看咱们如何去作咱们的集成电路!
能够关注公众号“python三人行”,咱们会按期分享讨论数据、架构、算法以及计算机或操做系统底层原理,欢迎参与!
---恢复内容开始---
【1】什么是操做系统?
“操做系统是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操做系统须要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操做网络与管理文件系统等基本事务。操做系统也提供一个让用户与系统交互的操做界面。”------这个是百度百科的解释
其实最简单的理解就是一个程序,一通电第一个启动的程序,包含了shell和kernel两个模块,shell对接其余应用程序,也就是用户;而kernel对接硬件,这里硬件包含了计算机的底层硬件,另外还有一些外设(包括键盘、鼠标等)
计算机底层硬件其实最主要由三部分构成:CPU、内存和磁盘,其中CPU和内存都是由三极管构成的(此部分若是想深刻了解能够看计算机原理,或联系楼主微信allenforu,我这边有快速理解的视频资料可分享,这里不展开来说)
所以操做系统为了管控其余各种的应用程序,它有特殊的权限,它的最重要的做用就是把实际的CPU、磁盘、内存分布抽象成进程、文件、地址空间。因此操做系统是一个很是复杂的软件,像window操做系统一共有4500万行的代码
因此通常人不可能读完全部源码,咱们读懂其中本身关心的一部分已是很不错了!
上面说到操做系统是一通电第一个启动的程序,所以咱们来看下启动的过程及原理:
DISK:存放OS
BIOS:基本I/O处理系统
芯片里的电路结构会把CS设置为0xFFFF,IP设置为0x0000,这样组成的地址就是0xFFFF0,而这个就是BIOS的入口地址,所以通电之后第一时间,CPU读取这个地址的代码。而后BIOS去读取放在磁盘里的OS,这样OS就被运行起来了!
操做系统的三种:
1)中断:外设
2)异常:应用程序意想不到的行为
3)系统调用:应用程序请求操做提供服务
【2】
---恢复内容结束---