在上一章当中讲述了Linux的哲学思想以及文件系统的基础的规则,之后部分介绍了计算机操作系统硬件的组成,以及冯 诺依曼提出的五大硬件体系,及采用二进制法则来进行存储数据,那么接下来我们介绍操作系统的历史和操作系统的功能。

一、操作系统的进阶历史

1、单用户单任务

在上回章节说道,早期的操作系统是单用户单任务,也就是说,一次只能运行一个任务,时间等待很长,而且任务出错之后你还没办法去处理下一个任务,即使任务处理完成,你还得手动处理下一个任务。

2、批处理

后来批处理的兴起,它的好处是不用用户自动手动处理下一个任务,只是你需要规划好是A先处理完还是B处理完就可以了,比如:我先让A任务处理完,在让B任务处理完,将运行的程序按照顺序放置在磁带机上,按照一定的分隔符分开,依次运行,大致为这样:

  AAAA$$$BBBB

这样A处理完成之后就会自动处理B任务了,好处就是计算机执行时基本上是一气呵成,但这毕竟还是单任务,即使在跑着其它任务也不能处理,那么就需要一个多用户多任务的系统。

3、多用户多任务

在千呼万唤shit出来的情况下,美国组成三大团队,它们分别是:Bell(贝尔实验室)、MIT(麻省理工学院)和GE(通用电气)一起研发一个多用户多任务的操作系统Multics,起初还是满怀信心,但是越到后面越难,因为它们迷失了这个操作系统到底怎么设计以及它的用途是什么;很快,Bell和GE就放弃了这项计划,三大团队散了俩,还有一个在支撑,据说好像是成功了,但不可否认,这个操作系统为以后的Unix提供了非常好的思路。

4、Unix的诞生

Bell当初参与Multics雇佣了一大批工程师,其中有个人叫Ken Thompson,他也是发明Multics项目中的一员,还为了这个平台开发了一个游戏,叫太空大战(Space Travel),但是Bell已经撤出了这个项目了,于是这个游戏不能在Multics平台上运行了,但是他想玩这个游戏,于是想向领导申请需要一台计算机开发游戏,当然了,领导不批准,当时的计算机行业已经有一定的规模,但是资金也是比较昂贵的,心灰意冷的他走在实验室里发现了一个PDP-7,虽然型号有些老,但是可以使用,于是乎他就开始为这个游戏开始编写可供运行的平台,不过,PDP-7只能支持两个用户,其中有一个人开玩笑的说这是个"Unics"之后就称之为Unix,那一年他们完成是在1970年,于是就称之为Unux元年。
   在他完成之后,就可以在哪里面玩他的太空大战,于是就让他的同事来看这个游戏,但他的同事对他的游戏一点兴趣都没有,但对他的操作系统感兴趣,因为这个操作系统短小精悍又坚强,1972年,很快在贝尔实验室达到了十台之多,当年的十台量是重新用汇编语言重新构写,不像现在有高级语言,举个例子Intel的芯片架构和moto的芯片架构肯定是不一样,因为在思想和构架上有很多出入。
  思路可以延习,但架构是需要重新编写的,每个PC使用了不同的架构,就需要重新用该架构的汇编写这个程序,然后通过汇编器编译成该平台的机器语言运行,这是一件非常麻烦的事情,于是Ken的同时,Dennis Ritch将汇编B语言添加很多的功能,使得它不用在不同的架构上重新编写,在编译时用该平台的编辑器就可以了,这样减少了人工的参与。这样的语言就是我们现在所熟知的C语言。
  1974年,在《美国计算机通信》杂志上刊登了用C语言写Unix操作系统的文章;同时这也是第一次公之于众,很快就大火,当时Bell实验室是所属于AT&T公司,这个公司因为反垄断法只能经营电话或电报产品,Unix不能用作商业产品进行转卖,于是有很多公司和学者等想要研究这个Unix,于是乎Ken没别工作,只能拷贝这个系统给他们,并且还附属一些话叫"Love Ken"。
  到了1979年,Unix已经经历了第七个版本,这也可能是它的最后一版本了,它的强大是他们通过向Ken索要Unix时反馈回来的,之前,Ken带薪休假一年,去了伯克利分校去任教这给研究Unix的小组无疑添加了一个很大的帮助,于是乎Unix的分支出来了,名为BSD,当时研究Unix的组长为Bill Joy。
  1980年,DARPA创建了TCP/IP协议在BSD中充分实现,1983年,正式用在BSD上,从而对网络发挥着巨大的作用。
  1980年,微软成立,当年也是用Unix,只不过换了名叫XENIX,当年三个人一同创建,之后在1981年从某人买下DOS之后经过稍微加工成为了MS-DOS,当年卖给IBM和一些其它厂商,使得PC的价格变低,以此赚了很多钱。
  Bell实验室脱离了AT&T之后,第一件事情就是将操作系统改为收费,同时和BSD打官司,尽管BSD的代码保留Unix的代码已经不到20%,这一打就是十年之久。
   1985年,有一位人物,他认为软件都是自由和开放的,这个人叫Richard Stallman,他很激进,他提出一个叫做GNU计划,意为:GNU is Not Unix.衍生出两个协议,其中一个是GPL协议,很多的程序宣布都要加入GPL协议,但是它的程序软件都要在Unix的内核上运行,这也是特别尴尬的一件事情,于是这个协议似乎陷入了僵局。
  在1987年,有位Andrew教授Unix的大学老师发明了一个内核取名为Minux,共4000+行代码,原因是Unix操作系统作为了商用,无论是教育行业还是其它行业都要交一大笔钱才能使用,所以这个老师就开发了这个系统,起初就是用作教育讲课用,有一些人请求能不能将这个Minux改进一下,做一些贡献,可都被他拒绝了。

5、Linux的诞生

就在这陷入特别尴尬的境地的时候,1991年9月份,一个叫Linus的大学生在论坛上发布了他根据POSIX标准发布的内核当初叫做Freax,那些***可任意得到下载这个内核进行修改,使这个内核越来越强大,后来就叫做Linux,10月份,Linux正式成立并加入GNU开源协议。

转载于:https://blog.51cto.com/tianxie/1970451

2017-9-19Linux基础知识(2)相关推荐

  1. 2017年计算机基础知识答题宝典,最全全国计算机基础知识试题及答案考级宝典(2018)..pdf...

    最全全国计算机基础知识试题及答案考级宝典( 2018 ) 第一 部分 . 一.单项 选择题 1.世界上第一台电子数字计算机取名为 ( ) . A.UNIV AC B.EDSAC C.ENIAC D.E ...

  2. 2017年计算机基础知识答题宝典,2017年全国职称计算机考试答题技巧分享

    为了考查考生对各方面知识点的应用能力,考试系统有一些特别的地方,因此考生在做题时也可应用一些解题技巧. (1)掌握"先易后难"的做题总原则. 参加考试的基本要求是合格,也就是说只需 ...

  3. 公务员计算机基础知识考试,2017年计算机基础知识考试试题及答案「公务员」...

    一.用适当内容填空 1. 微型计算机通过(主板)将CPU等各种器件和外部设备有机地结合起来,形成一套完整系统. 2. 微处理器是由(控制器)和(运算器)组成. 3. 微型计算机总线一般由(内部)总线( ...

  4. 华南理工计算机基础知识题,华南理工_计算机应用基础_随堂练习答案(2017年)

    华南理工_计算机应用基础_随堂练习答案(2017年) (18页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.9 积分 . . . .华南理工-计算 ...

  5. 计算机二级公共基础知识2017,2017年计算机二级公共基础知识基础试题

    2017年计算机二级公共基础知识基础试题 随着微处理机的迅速发展,计算机广泛应用于工业.农业.文化教育.卫生保健.服务行业.社会公用事业等.yjbys小编收集了一些关于计算机二级公共基础知识基础试题, ...

  6. 计算机专业技能知识,2017年度计算机专业技能知识资料基础知识资料试题'及其答案...

    2017年度计算机专业技能知识资料基础知识资料试题'及其答案 (19页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 ''第一部分   一 ...

  7. 计算机二级二叉树基础知识,2017年计算机二级公共基础知识学习教程:树与二叉树...

    (六)树与二叉树 1.树的基本概念 树是一种简单的非线性结构.在树结构中,数据元素之间有着明显的层次结构.在树的图形表示中,用直线连接两端的结点,上端点为前件,下端点为后件. 在树结构中,每一个结点只 ...

  8. 计算机二级数据模型三要素,2017年计算机二级公共基础知识重点讲解:数据模型...

    4.2 数据模型 数据模型的概念:是数据特征的抽象,从抽象层次上描述了系统的静态特征.动态行为和约束条件,为数据库系统的信息表与操作提供一个抽象的框架.描述了数据结构.数据操作及数据约束. E-R模型 ...

  9. c语言事业单位笔试题目及答案,2017年事业单位考试公共基础知识试题及答案

    2017年事业单位考试公共基础知识试题及答案 一.多项选择题 1.知识产权包括( ). A.商标权 B.发明权 C.专利权 D.著作权 E.姓名权 2.民法中的证券具有的特征是( ). A.一种股票凭 ...

  10. 2017关于计算机的知识,计算机基础知识及答案

    一.选择题 1 若在excel的A2单元中输入"=8+2",则显示结果为(A). A. 10 B. 64 C. 10 D. 8+2 2 普通excel文件的后缀是(A). A. . ...

最新文章

  1. sqlserver 类似oracle的rownum功能: row_number
  2. 云服务器配置(jdk、tomcat、mysql)
  3. Java Swing Mysql实现的汽车租赁租车管理系统源码附带设计报告及视频导入运行教程
  4. 【LeetCode】【数组】题号:*442,重复元素出现两次
  5. 最全的Java多线程面试题
  6. (2020全新)UGNX二次开发(零基础入门)到提高全套视频教程_NXopen-UG二次开发_新浪博客
  7. 【机器学习中的数学】贝叶斯概念学习
  8. PAL与NTSC制式的详解
  9. lca_trajan
  10. 使用c++语言做概率论 涉及求方差
  11. 51c语言延时程序怎么编写,C51中延时程序的编写
  12. 牛牛的算术(公式推导)
  13. 软考英文缩写_计算机软件常见英文缩写及对应全称
  14. 安卓系统怎么查找手机定位服务器,安卓手机丢了怎么查定位找手机
  15. spssχ2检验_实用医学统计:配对四格表资料的χ2检验之SPSS操作篇
  16. PDF生成插件--TcPDF
  17. 移动支付线上线下支付应用场景
  18. 一站式SCI投稿大全(感谢pennhmp116版主的整理)
  19. 百度AI实现m:n人脸搜索
  20. Pytorch TTA(预测增强) 源码阅读

热门文章

  1. 教你如何用Python自动下载抖音好看小姐姐,有对象的同学小心尝试!
  2. 面试Python时,面试官最喜欢问这些技术问题
  3. mysql查询月份1到31_mysql查询今天、昨天、7天、近30天、本月、上一月 数据
  4. mysql 删除foreign key_MySQL-Foreign Key
  5. 肌电信号 原始信号 积分_实验室人必看!复杂的色谱峰要如何正确积分?
  6. BFS java实现,java实现dfs及bfs算法
  7. JavaScript:在JS中截取字符串的方法
  8. 终于等到你:国内***团队360Vulcan公布iOS 12.1越狱漏洞细节
  9. eyoucms 网页制作软件有哪些 这些你都知道吗
  10. 取消 Windows Server 2008 下“一个用户限制使用一个会话”