Linux学习笔记1—Linux操作系统发展史

Linux操作系统发展史

计算机与操作系统
ENIARC(电子数字积分计算机简称):世界第一台通用计算机,美国宾夕法尼亚法学设计,诞生于上世纪40年代
计算机由五大基本部件组成:
CPU当中包含两个重要部件(运算器、控制器)
**1、运算器:**主要进行算数运算,逻辑运算以及各种类型运算
**2、控制器:**控制总线的使用权限,寻址控制,对内存当中读访问,写访问进行控制
另外还包含存储部件:寄存器(CPU内部存储器),缓存(一级缓存,二级缓存)
**3、存储器:**内存,又称为随机访问存储器RAM(Random Access Memory)
4、输入设备Input:对计算机下指令,以及提供对方需要加工的数据等
5、输出设备Output:输出数据,对方输出加工后的结果
计算机的主要重要部件:CPU(运算器、控制器),存储器

计算机如何通过存储器当中取得数据? 冯诺依曼体系当中定义
程序的描述方式分为两类:
(1)程序由指令+数据组成:计算机使用命令从内存中某个位置取得数据
(2)程序由算法+数据结构组成:通过不同的算法进行路径选取,运行数据结构
指令如何运行:对于计算机来讲,CPU就是用于运行指令,比如CPU进行加减乘除运算(称为指令集)

内存存储单元cell:每个存储单元的大小是8位,8bits, 又称为1个字节Bytes(大B和小B的概念)
内存最小存储单位:8位,即使存储1个字节,也要占用8位,另外7位为空
内存寻址方式:计算第8个格子和第13个格子之和,便涉及到寻址,计算机更善于通过数字进行寻址,而不是通过字符串进行寻址
内存编制:内存只支持平面化地址结构下进行编制,必须能够容纳所有的内存空间,不支持立体空间编制
32位CPU概念:数据存取能力一次是32位2进制,可以想象为CPU有并排的32根线,每根线有两种状态,通电和非通电状态,即0,1两种状态,32根线可以组合成的所有变化,即2的32次方种变化,CPU即能理解大概40多亿种变化

1024102410244Bytes=2的10次方乘以2的10次方乘以2的10次方乘以2的2次方
向上换算后:
1024
10244KB
1024
4MB
4GB (由于以上这种换算机制,因此32位CPU最多只能支持4G运行内存ROM RAM)

指令+数据运行的概念:
所有数据在运行时,都需要先装入内存,比如由磁盘装入到内存当中。程序由指令+数据构成的,因此指令和数据都在内存当中存放。想象为第1,2,3个格子装载的指令,第4,5,6格子装载的是数据。CPU先加载指令,CPU随后取内存中对应要加载的数据,比如取出数据后做加法运算。因此内存又称为编制的存储单元。
加法运算完成后,为了告诉CPU运行完第一条指令后,第二条指令在哪个存储单元运行,或者数据需要进一步加工,CPU的寄存器承担这部分职责,比如指令指针寄存器、数值寄存器等

过程式编程语言概念:
1、 顺序执行:依次运行
2、 循环执行:将整个循环体代码执行N次
3、 选择执行:只执行代码中的一个分支(一部分)

CPU与内存运行速度:CPU的运行速度比内存要快的多,为了避免CPU和内存之间的运算速度不要差异太多,CPU当中引入缓存的概念,缓存越大,内部运行的命中率越高,性能越好,即代表CPU的运行的效率越高。因此同一个型号的CPU,缓存越高,CPU的造价越高

计算机本身不能生成指令,需要将指令和程序输入计算机,并由计算机输出结果。因此计算机必须包含输入/输出(I/O)设备,比如磁盘、键盘、鼠标、显示屏

时间在计算机传输过程中起到重要作用
输入数据过程,类似发电报,按下去马上抬开算作0,按下去过一段时间再抬开算作1,双方必须按照时序进行工作,要不同步,要不异步,均需要事前提前定义好,比如每一毫秒间隔算作1,或者每一秒间隔算作1,因此时间在数据传输过程中起到至关重要的作用,没有时间将无从知道是一个1还是一堆的1,这也是为何计算机有频率的概念

计算机频率的概念:在一个时钟周期内运算的次数,主频越高,性能越好,3GHz代表1秒中能做30多亿次的运算,1GHz代表1秒中能做10多亿次的运算

关于不同公司生成的CPU芯片是否可以通用:
1.A公司CPU芯片和B公司CPU芯片,并不具备通用性,早期不同公司的硬件是独立运行的
2.程序员需要写大量代码,编写驱动程序去驱动相关芯片的底层硬件运行
3.由于不同硬件需要编写单独的程序驱动,很繁琐,因此出现通用程序,提供驱动程序支持不同类型的硬件运行,随后该通用程序逐渐就演化为操作系统

批处理程序:最早期计算机采用批处理程序(batch)将编写好的程序输入磁带当中,让计算机依次运行这些程序,运行完第一个程序后自动加载第二个程序。批处理程序的特性,计算在某一时刻只能运算一个程序,等第一个程序运行完后再读取运行第二个程序,即单任务系统。

如何让计算机一次性运行多个程序?
采用多任务处理方式(multi tasks),为了计算机多任务处理时不会发生数据混乱,引入监控程序的概念,Bell, MIT,GE联合推出了Multics程序,但是由于希望实现的目标太多,最终没有完成开发

关于LINUX的发展历史:
1969年,贝尔实验室被召回到实验室后,Ken Thompson研发一个游戏程序Space Travel,需要跑在Multics系统上,但是需要付费,为了运行此游戏,自己写了一个程序来运行,即为Unix雏形,写程序需要设备,DEC公司:生产当时著名的小型机PDP,PDP-11,VAX(VMS操作系统,后期Unix逐渐胜过VMS),Ken Thompson申请此设备未成功后,发现了PDP-7,在此设备上用汇编语言写了一个程序,程序写好后Space Travel可以在其上运行。游戏推广的同时,该程序却被广泛关注,该程序即为Unics=Unix,
1971年,贝尔实验室为了运行文字处理程序(nroff),需要一个底层系统,Ken在Unix上实现此程序的运行,并逐步改善了Unix系统
1972年,安装量已达到10台,通过B语言编写
贝尔实验室,Dennis Ritch改善B语言性能,增加数据结构和数据类型,演化为C语言
随后,Ken Thompson与Dennis Ritch联合,通过C语言重新编写了新版的Unix

如何让Unix在不同厂商的硬件设备上运行?
通过中间层(编译器)能够帮助C语言(高级语言)版本的Unix在不同厂商的设备上运行,只要编译器能够支持将C语言翻译成特定硬件设备的汇编语言和机器语言运行即可

Unix的历史沿袭:
《美国计算机通信》杂志:1974年,发表论文第一次将Unix公之于众
AT&T:Unix最早称为System V7,Bell实验室,在高校中非常流行,1979年
SCO:Unix以商业版本发行,西雅图数字公司,负责包装发型Unix,1978年
Microsoft:Microsoft成立,XENIX(实际是Unix的变种版本)1980年
Berkeley:美国加州大学伯克利分校,Ken Thompson,1976年
BSD Unix:Bill Joy, BSRG伯克利操作系统研究小组,1977年, 发布了BSD Unix (Berkeley System Distribution),随后称为校园核心系统
DARPA:美国国防部高级计划署,1980-1983年,为了实现TCP/IP协议,在Unix系统上最终实现TCP/IP协议栈
Microsoft:1981年,Bill Gates,发布Windows操作系统
SCP: 西雅图计算机产品公司,为了在个人计算机PC的intel处理器运行操作程序(当时Unix运行在摩托罗拉的处理器上面 ,耗能较大),研发了QDOS (Quick and Dirty Operation System),Bill Gates购买QDOS版权后并入Microsoft,更新为Windows操作系统,后续合并VMS操作系统开发人员后,发展出了Windows NT (new technology) ,随后DOS系统升级至2.0,胜过SCP的CP/M系统,直到1990 年,微软开发环境一直是UNIX
SUN: Bill Joy,出售BSD系统的小型机,称作workstation
Apple: 发现XEROX公司当中PARK实验室(发明鼠标、以太网、star图形界面),将其收购, Windows也同步研究图形界面。随着ATT分拆后,Bell实验室独立,Unix进行更广泛的商业化发展,并将BSD告上法庭,双方官司长达十年,最终导致Unix没落
Richard Stallman:就职于MIT,认为软件应该免费,开源,1985年
GNU:Stallman发起了GNU运动,任何人都可以免费使用该软件,GNU is not Unix
GPL:GPL章程,定义任何软件程序只要遵循General Public License,就是自由软件,任何人都可以获取源代码
FSF:FSF吃称为自由软件基金会,Free Software Foundation,提倡自由软件运动
X-window:FSF基金会成立不久,为Unix提供图形界面的公司X-window第一个宣布加入GPL
gcc:Stallman研发的编译器,gcc的c编译器(gnu c complier)
vi:文本编译器,visual interface
Unix分支包括:
SUN:Solaris,Unix商业二次发行版本
IBM:AIX,Unix商业二次发行版本
HP:HP-UX,Unix商业二次发行版本
Andrew Tanenbaum:开发了类似Unix的操作系统,称为Minix, 早期只有4000行代码,包含操作系统的完整功能

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值