第一代计算机
1940-1955: 真空管和穿孔卡片
lowa州立大学的john Atanasoff教授和他的学生Clifford Berry建造了据认为是第一台可工作的数字计算机。该机器使用300个真空管。大约在同时,Konrad Zuse在柏林用继电器构建了Z3计算机,英格兰布莱切利园的一个小组在1944年构建了Colossus,Howard Aiken在哈佛大学建造了Mark 1,宾夕法尼亚大学的William Mauchley和他的学生J.Presper Eckert建造了ENIAC。这些机器有的是二进制的,有的使用真空管,有的是可编程的,但都非常原始。
'''
特点:
没有操作系统的概念
所有的程序设计都是直接操控硬件
工作过程:
程序员在墙上的机时表预约一段时间,然后程序员拿着他的插件版到机房里,将自己的插件板街道计算机里,这几个小时内他独享整个计算机资源,后面的一批人都得等着(两万多个真空管经常会有被烧坏的情况出现)。
后来出现了穿孔卡片,可以将程序写在卡片上,然后读入机而不用插件板。
优点:
程序员在这段时间内独享计算机资源
缺点:
浪费了计算机资源
串行(就是一个一个运行,运行完一个在运行另外一个)
'''
第二代计算机
1955-1965: 晶体管和批处理系统
'''
特点:
有了操作系统的概念
有了程序设计语言的概念,机器语言
优点:
解决了第一代计算机的缺点,把一大推人的输入攒成一大波输入,然后按照顺序解决(本质上还是串行,这点并没有解决第一代计算机遗留的问题),把一大波攒成一大波输出。
节省了计算机资源
缺点:
整个过程需要人参与控制,将磁带搬来搬去
计算机任然是顺序计算---串行
程序员不能独享计算机资源
'''
第三代计算机
1965-1980: 集成电路芯片和多道程序设计
这个时代,IBM采用了小规模集成电路,这就是现代服务器的前身
"""
多道技术:
一个cpu在同一时刻只能执行一个任务。
cpu在这个程序这执行几秒,又跑去另外一个程序执行,然后又去其他程序,就这样来回快速切换,让人感觉就像是这些程序在同时运行(并行)。
并发(单cpu加多道技术就可以实现并发):
伪并行,让cpu来回快速切换,让人感觉就像是在同时运行,要速度快cpu就要从内存上读取数据,这个就叫进程,所以程序在运行的时候,把程序从磁盘读取到内存,就因为内存快,实现并发。
并行(多个cpu才可以实现):
是正正意义上的同时运行,一个核不能并发,但是可以并行。
空间上的复用:
将内存分为几部分,每个部分放入一个程序,每个程序都获得了cpu的一点资源
时间上的复用:
当一个程序在等待IO的时候,另一个程序可以使用cpu
"""
当然空间上的复用也伴随着问题:
首先丧失的是安全性, 比如一个程序运行的时候可以访问操作系统的内存,这也就意味着你运行的这个程序可以拿到操作系统的所有权限
其次是稳定性,比如某个程序崩溃的时候可能把别的程序的内存也给回收了
分时操作系统
因为第三代计算机依旧没有解决程序员可以独享计算机资源的优点,此时诞生了分时操作系统
多个联机终端+多道技术
现代操作系统
1.MULTICS
MULTICS 其实是"MULTiplexed Information and Computing System"的缩写
伟大的一步
Bell(贝尔实验室), MIT(麻省理工学院人工智能实验室), GE(General Electric,通用电气)联合建立
Multics操作系统
2.unix
1970年称为unix元年
3.GNU
1985年,Richard Stallman 愤怒的认为unix大家都有过添砖加瓦的建设,应该共享。随即,发起
GNU(GNU is not unix)自由操作系统,软件共享运动。
GNU的GPL解释
1>任何个人或公司可释放出自由软件(free software)
2>任何释放出自由软件的个人或公司,均可由自己的服务来收取适当的费用
3>该软件的原始码(source code)需要随软件附上,并且是可公开发表的
4>任何人可透过任何正常渠道取得此自由软件,且均可取得此授权模式
4.linux
1984谭宁邦教授的Minix教学操作系统,提供原始码以及软件
这个时候诞生了很多开源软件:
Emacs编辑器+GNU C(GCC)+GNU C Library (glibc)+Bash Shell
FSF(free software foundation)自由软件基金会
GPL(General Public License)通用公共许可证
1988年 XFree86计划:X Window System+Free+X86
其他的开源团队: sendmail团队 wu-ftp团队 apache团队
1991年芬兰人开发了linux
**批处理系统-》分时操作系统-》multics-》unix-》linux-》各种linux发行版**