计算机发展史
本文来自我的博客apeit-程序猿IT
概述
从1946第一台通用计算机ENIARC诞生, 短短70几年,已经非常普及和强大了,几乎渗透到各个领域了。从一座房子大小到掌上电脑的微型。从简单的计算到复杂的人工智能。计算机在引领着时代的潮流。
计算机的前世今生
感觉计算机的横空出世是不是惊呆了,但是看它的发展历史,其实创新就是在原有的基础上进行加工推进,并非完全的无中生有。
计算机前世:计算加数及减数的机械计数机-》精确至12位的计数器-》解决差分程序计数机-》16位加数器-》复杂数字计数机-》ABC计算器-》ENIAC
据传ENIARC的发明者之一莫克利在阿坦纳索夫家(ABC)借住5天,借此机会盗取了研究成果及想法,之后和埃克特一起制造了“ENIAC”。
第一台电子计算机ABC(Atanasoff-Berry Computer)阿塔纳索夫-贝瑞计算机
第一台通用计算机ENIARC(Electronic Numerical Integrator And Computer)。
计算机出现的原因,战争的需要,美国“弹道研究实验室”需要大量进行计算,催生了超强计算能力的计算机。
ENIARC每秒能进行5000次加法运算(据测算,人最快的运算速度每秒仅 5次加法运算),每秒400次乘法运算。是使用继电器运转的机电式计算机的1000倍、手工计算的20万倍。
计算机原理
**冯 诺依曼体系 **
-
存储程序原理:把程序当做数据对待,程序和该程序处理的数据以同样的方式存储起来。
cpu按照指针加载数据,数据有描述符记录着这个内存段的访问权限(可读,可写,可执行),从描述符就可以知道是指令还是数据。
存储器是按地址访问的线性编址的一维结构,每个单元数固定是8bit位。
-
计算机的数制采用二进制
-
程序按顺序执行
指令由操作码和地址组成的。操作码指明指令的操作类型,地址码表明操作数和地址。操作数本身无数据类型标志,它的数据类型是由操作码决定。
指令的执行直接发出控制信号,控制器控制计算机的操作。指令在存储器是按其执行顺序存放的,由指令计数器指明指令所存放的单元地址,指令计数器只有一个,一般按顺序递增。但执行顺序可按运算结果和外界条件而改变。
运算器为中心,I/O设备与存储器的数据都要经过运算器
- 计算机硬件五大件:
- 输入数据和程序的输入设备
- 记忆程序和数据的存储器
- 完成数据加工处理的运算器
- 控制程序执行的控制器
- 输出处理结果的输出设备
CPU(Central Processing Unit)中央处理器
CPU(Central Processing Unit)中央处理器: 是一块超大规模的集成电路(integrated circuit),是一台计算机的运算核心和控制核心,主要功能是解释计算机指令以及处理计算机软件中的数据。
构成:运算器(算术逻辑运算单元,ALU,Arithmetic Logic Unit),控制器(control unit),寄存器(内部存储器),缓存 。
算术逻辑运算单元(ALU):的基本功能为加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、求补等操作。
计算机运行时,运算器的操作和操作种类由控制器决定。
控制器:主要负责指令译码,并且发出为完成指令所要执行的各个操作的控制信号。
寄存器(内部存储器):暂存指令,数据,地址。CPU对存储器中的数据进行处理时,往往先把数据取到内部寄存器中,而后再作处理。
缓存(高速缓冲存储器):介于cpu和内存之间的一级存储器。存放由内存调入的指令和数据。
cpu比内存快的多。
任何层次不能很好的协同处理,那么加中间层。cpu缓存介于cpu和内存中间。
cpu对内存地址编址,只能是扁平化的,平面化地址结构。它的编址必须容纳所有的内存空间。类似key-value。
32位的cpu是指:cpu数据存储能力一次是32位。
32根线,通电是1,不通电0,2^32次可能。
32位的cpu的寻址能力= 2^32次 = 4GB。所以32的cpu最多支持4GB内存。
例如:加法。先取一个数放到寄存器,取操作符放到寄存器,再取要加的数据,最后进行运算。
cpu支持的指令的所有的集合叫做指令集。普通指令,对其他人没有影响。特权指令,影响到其他人的。
指令是计算机规定执行操作的类型和操作数的基本命令。
程序运行步骤:
- 程序和数据放在磁盘上,启动。
- 将数据和程序存储到内存中
- cpu从内存或者高速缓存器取出指令
- cpu取出指令,放入寄存器 ,并对指令进行译码。在解码阶段,指令被拆解为有意义的片段。根据CPU的指令集架构(ISA)定义将数值解译为指令。
- 将指令分解为一系列微操作,然后发出各种控制指令,执行微操作系列,从而完成指令的执行。
- 进行计算
计算机的性能在很大程度上由CPU的性能决定,而CPU的性能主要体现在其运行程序的速度上。影响运行速度的性能指标包括CPU的工作频率、Cache容量、指令系统和逻辑结构等参数。
主频也叫时钟频率,单位是兆赫(MHz)或千兆赫(GHz),用来表示CPU的运算、处理数据的速度。通常,主频越高,CPU处理数据的速度就越快。
主频3GHZ:在1秒钟内,能做3GHZ(3亿多次)次的操作。
存储器:内存,RAM(Random Access Memory)
加速和提升cpu
cell:存储单元,固定8 bit位(8位二进制)。bytes字节(8 bit)是最小存储单位。
指令和数据都存放在内存中。
cpu本身也有存储设备(寄存器),但是太小。
计算机接口
计算机就是由硬件和软件组成。
硬件接口:
机器语言:二进制指令,二进制数据
硬件接口只保留最底层的功能,非常简陋,基础的。因此保持了最大的通用性。用硬件的接口去直接实现复杂逻辑功能是非常麻烦的,而且是固化的。
软件接口:
给用户使用最好是傻瓜式的,高级的,易用的。
软件通过调用硬件的接口,来实现各种复杂的高级功能。
提供的工具越接近最终形态,适用的范围越窄。越底层,适用范围越广,可操作性越强。
软件:
机器语言:二进制指令,二进制数据
汇编语言:低级语言;(汇编器:语言转换)
写驱动程序
几乎每种芯片都会提供汇编语言接口,它们紧密相连,所以通用性很差,使用另一种芯片又需要重新学习接口。
高级语言:
(编译器->汇编器)
系统级:C,C++
操作系统,对性能要求较高的服务类程序
应用级:java, python,php
应用程序:ansible,puppet…
程序员写的程序水平代码,编程语言。
高级语言-》编译器-》汇编语言-》汇编器-》机器语言-》计算机运行。
高级语言:离人较近,人易懂,学习容易,但是机器执行效率较低,最高级人类语言。
低级语言离机器较近,机器容易执行,执行效率高,最低级二进制。
应用:
linux运维:linux生态圈中的各应用程序应用。
shell脚本编程:让某些应用工作能自动完成。
python:专业编程语言;
ansible,openstack
DevOps:
Development 研发
Operations 运维
操作系统的前世-监控程序
计算机执行指令方式:
第一阶段:人与计算机交互。人手动输入指令,读取指令。
第二阶段:人将指令写入磁带,然后将磁带与机器交互。任务单一执行。
第三阶段:多任务,一个计算机运行多个任务。
人输入-》计算机-》输出给人。计算机运行很快,人这一环节是最慢的。
人输入-》磁带-》计算机-》输出给人。
远古时代:程序员查看芯片的说明书写程序,不同芯片接口不同,代码不能通用。
通用程序 , 专用程序。
通用程序:让底层硬件能够基本工作起来的驱动程序。最后发展为操作系统。
专用程序:解决具体任务。
计算机硬件是没有计算操作能力,所以需要I/O设备。
程序:
指令 + 数据
算法 + 数据结构
硬件本身没有任何程序。计算机器本身没有任何指令。输入输出设备:硬盘。输入设备:键盘。输出设备:显示屏。
过程式编程语言:
顺序执行,循环执行,选择执行
cpu 单任务的系统。
cpu 比内存快,cpu大量时间处于空闲的。是否能够让cpu满载。
cpu 进行时间分片,任务分批。轮流执行。
多任务:
内存分片
cpu时间切割
监控程序:为其他程序提供公平的运行环境。
延伸
linux学习线路
计算机的发展历史,原理,及运行
Unix发展历史
linux 发展历程,及原理
相关阅读
在开始——运行中输入lusrmgr.msc,在用户中找到Administrator,右键,设置密码。 如果Administrator用户设置了密码就得用Windows用户
网站历史相当于新手SEO而言,是一个陌生的词汇,而对于一名专业的SEO人员,则刚好相反,审查网站历史快照,是一项必修课。 它在整站SEO的过
计算机科学,研究计算机及其周围各种现象和规律的科学,亦即研究计算机系统结构、程序系统(即软件)、人工智能以及计算本身的性质和问题
核心观点股民这个大群体,是需要区分对待的:其中包含一小部分有自己独立判断能力的投资者和一大群没有自己判断能力(尽管他们经常觉得
抖音从今年春节异军突起,本文作者对其产品框架、市场情况以及内容方向都做了比较全面的分析,并提出了一些改进建议,一起来看看。视频