当前位置:网站首页>0.计算机简史
0.计算机简史
2020-11-07 23:08:00 【hakou】
为了给大家讲好操作系统的故事,首先得看看操作系统是什么,即它是怎么诞生的。
最开始时,计算机是没有操作系统的。那时的计算机是什么样的呢?
呃,错了,这是算盘。ps.它应该也算是最早的计算机吧。来看看真正的早期计算机吧。
这就是早期的计算机,它不是用电子管或者晶体管之类的电子计算机,它是机械式的,只能计算一些基本的运算而已。体积很庞大,但是功能比较单一,基本人工操作。这就是早期机械式计算机的基本特点。
随着科技的进步,计算机抛弃了齿轮、转轴等机械部件,走向了电气化。
有看过《模仿游戏》这部电影吗?它讲述了图灵在二战期间通过建造一台通用计算机来解密德军英格玛密码的故事,对计算机历史有兴趣或者对康伯巴奇(曾饰演过神探夏洛克和奇异博士)有兴趣的可以去看一下。上面这个图就是当时建造的图灵机。这大概就是计算机最开始的样子:体积大,速度慢,在同一时刻只能处理一个任务,而且它没有什么类似 CPU 的处理模块,只是根据电气特性进行机械动作。
随着电子管的出现,计算机进一步演化,从这个时候起,计算机才被称为电子计算机,成为电子产品。
早期电子计算机的体积还是很庞大的,但是这个时候的计算机比图灵那时的计算机的计算速度快多了。这个时候的电子管计算机是通过卡带来进行工作的,可以看到上图的两个操作员正在进行操作卡带。这个时候的电子管计算机的特点是:
- 单处理。一次只能处理一个任务。
- 任务卡带化。所有任务都是通过卡带让计算机工作。
- 批处理。可以让每个任务排好序一个个执行。
- 已有操作系统的雏形。
- 冯诺依曼结构。
可能有很多人听过这个词,那什么是冯诺依曼结构呢?
早期的计算机只能直接给它喂一条指令,然后它输出一次结果,人是一直需要给它进行喂指令的。如果人不用一条条的给它喂指令多好,把所有指令先用一个东西保存好,然后一次性喂它,人就可以不用守着它然后解脱去玩了。这就是通俗理解的冯诺依曼结构。你看,这是由于人懒得出的智慧。当然,冯诺依曼结构不是这么简单理解的,它将计算机分成了上图的几个模块,这个结构模型成为了现在计算机的雏形,间接催生了程序员这个职业。所以冯诺依曼结构在计算机历史上的地位还是很重要的,有兴趣的同学可以接着这个引子去搜索相关的资料看一下,这里就不详细表述了。
注意,这以上这个阶段操作系统已经出现了。但是大部分操作系统是定制的,并不是通用的操作系统。什么是定制系统?每个生产计算机的厂商的操作系统只能在这个厂商的计算机上进行安装和使用,不能兼容其他厂商的计算机,所以各个厂商是各自为政的状态,对整个计算机生态很不友好。那什么是通用操作系统呢?以现在是市面上的系统为例,Linux 可以看做是通用的操作系统,MAC OS 是定制的操作系统,因为 MAC OS 只能安装到指定的硬件上,而 Linux 可以安装到绝大部分的通用机器上(因为有全世界的工程师为它贡献硬件驱动)。
随着科技的进步,计算机的运算能力是越来越好,每次只能处理一个任务的特性已经不能满足它了,根本无法发挥出计算机的性能,这种任务处理程度简直就是浪费计算机的性能。于是早期的计算机工程师们就想着改造计算机让它能够支持同时处理多个任务。那如何才能让一个计算机同时处理多个任务呢?需要多个人来同时把纸带指令放进计算机执行吗?
人工?这辈子都不可能人工的。 必须得让机器自己进行操作!但是 CPU 只有一个,不可能同时执行多个任务。那如何才能让计算机同时执行多个任务呢?如何才能让我们在计算机上一边听音乐一边浏览网页呢?计算机工程师们为操作系统设计了程序调度,使得多个任务可以看似同时执行,而实际是操作系统在 1s 内在多个任务之间来回切换执行。
总结一下,计算机的历史演进如下:
- 机械式。这个时期只能进行简单的数字运算,全程人工参与。
- 电气化。可以进行稍微复杂的数字运算,需要部分人工参与。
- 电子管。操作系统雏形出现,需要部分人工参与。
- 晶体管。现代操作系统开始出现,此时这类计算机尚未进入寻常百姓家庭,还是政府以及大企业的专属工具。
- 集成电路。现在操作系统功能日渐完善,得益于硬件制造成本的降低,计算机开始进入普通家庭。
操作系统是随着计算机性能越来越好的过程中发展出来的,因为单纯的人工操作已经不能满足计算机这么强大的性能了。
ps.欢迎关注官方微信公众号“哈扣”。
版权声明
本文为[hakou]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4732490/blog/4707760
边栏推荐
- Insight -- the application of sanet in arbitrary style transfer
- When tidb and Flink are combined: efficient and easy to use real-time data warehouse
- AFO
- Cryptography - Shangsi Valley
- Go之发送钉钉和邮箱
- Animation techniques and details you may not know
- Privacy violation and null dereference of fortify vulnerability
- Analysis of kubernetes service types: from concept to practice
- Assembly function MCALL systemstack asmcgocal system call
- IDEA-项目未自动生成 .iml 文件
猜你喜欢
Summary of the resumption of a 618 promotion project
Wanxin Finance
状态压缩:对动态规划进行降维打击
C语言I博客作业03
面部识别:攻击类型和反欺骗技术
use Xunit.DependencyInjection Transformation test project
GoLand writes a program with template
android基础-RadioButton(单选按钮)
The road of cloud computing: a free AWS cloud server
【原创】ARM平台内存和cache对xenomai实时性的影响
随机推荐
Reflection on a case of bus card being stolen and swiped
16.文件传输协议、vsftpd服务
go wire 依赖注入入门
When tidb and Flink are combined: efficient and easy to use real-time data warehouse
use Xunit.DependencyInjection Transformation test project
awk实现类sql的join操作
Insight -- the application of sanet in arbitrary style transfer
There's not much time left for Kwai Chung.
【解决方案】分布式定时任务解决方案
C language I blog assignment 03
看一遍就理解,图解单链表反转
一万四千字分布式事务原理解析,全部掌握你还怕面试被问?
Python image recognition OCR
Get tree menu list
Implementation of Caesar cipher
Data structure and sorting algorithm
CPP (1) installation of cmake
Writing method of field and field comparison condition in where condition in thinkphpp6
Using subprocess residue in supervisor and python multiprocessing
C语言I博客作业03