MIT的CTSS:第一个分时操作系统

◼ Multics系统(Multiplexed Information and Computing System)

  ⚫ 1965年AT&T,MIT和GE的合作项目

  ⚫ 安装在大型主机上的多用户、交互式操作系统,支持300位以上的用户联机 使用

  ⚫ 这个系统不但开发周期长,成本高,而且庞大、缓慢,市场前景不被看好, 最终宣告失败

◼ 曾经参与 Muitics 的贝尔实验室的成员肯·汤普森(Ken Thompson) 由于自己工作上的需求,

开发了一套主要用于文件存取的小型操作 系统Uniplexed Information and Computing System(UNICS)

◼ 以 DEC 公司的计算机 PDP-7 为硬件基准,采用汇编语言开发

◼ 源于 Multics 系统,做了大幅度的简化,主要包括文件子系统和进 程子系统 (其主要架构被UNIX/Linux沿用至今)

◼ 1973 年,贝尔实验室的肯·汤普森、丹尼斯·利奇(Dennis Ritchie) 等人为了提升UNICS系统的性能与兼容

  性,采用高级语言对其进行 重构,并确定该操作系统名称为UNIX,这就是最早的UNIX 操作 系统(

  相对于Multics ,UNIX 具有单一的意思)

◼ C语言是UNIX的副产品!!

◼ 1974年,肯·汤普森、丹尼斯·利奇发表了著名论文“The UNIX Time Sharing System” ,让世人了解UNIX。

  并向外发行免费拷贝, 开放源代码

◼ 由于UNIX是由工程师所主导开发的,而且使用者也大多是工程师, 因此造成了UNIX 系统接

  口(库函数与API)较难被一般使用者接 受的情况

◼AT&T贝尔实验室

  ⚫版本排号:第1-7版,System Ⅱ,Ⅲ,Ⅳ,Ⅴ,例如:UNIX System V Release 4.2 (SVR4.2)

  ⚫现今的SCO UNIX ◼ 加州大学伯克利分校

  ⚫计算机系统研究小组(CSRG)的BSD UNIX(Berkeley Software Distributions)

  ⚫较有影响的版本:4.3BSD,FreeBSD

  ⚫工作站上的UNIX一般属于这一流派
    重要的UNIX分支:BSD UNIX
◼ 伯克利计算机系统研究小组对UNIX作出了许多重 要性的贡献

  ⚫Vi编辑器

  ⚫虚拟存储

  ⚫TCP/IP协议栈

  ⚫快速文件系统FFS

  ⚫可靠信号

  ⚫套接字

  ⚫……

◼80年代UNIX版本的剧增以及各种UNIX版本之间的差 别不断扩大导致了以美国政府为代表许多用户要求对

  其标准化,以增强各种应用程序在这些UNIX操作系统 之间的可移植性

◼重要的UNIX标准包括:ANSI C、IEEE POSIX等

◼UNIX标准只是对应用程序接口进行统一(内部实现机 制则留给操作系统开发者自行实现)
UNIX的标准化
  ◼ANSI C

    ⚫ANSI C是美国国家标准协会(ANSI)于1983年发布的C语言标准

    ⚫1989年,此标准被采纳为国际标准ISO/IEC 9899:1990

    ⚫ISO C标准现旨在提供应用程序的可移植性,使其能适应于不同的操作系统 ,而不仅仅是UNIX操作系统

    ◼POSIX

      ⚫1986年,IEEE制定了IEEE P1003标准,这套标准被称为POSIX(Potable Operating System Interface)

      ⚫POSIX定义了一整套的应用程序接口,包括系统调用、库函数、公共命令

      ⚫POSIX标准希望在源代码级别保证应用程序可移植性
UNIX的商业化
  ◼1977年到1982年,AT&T促使UNIX走上商业 化道路(收回版权,并且不公开源代码)

  ◼1982年SUN公司发布SunOS,这是基于 4.2BSD的UNIX变体, Solaris版本

  ◼微软和SCO联合发布了XENIX
  ◼ UNIX的商业化让许多 UNIX爱好者感到担心,包括了大名鼎鼎的理查 德·斯托曼先生(Richard M. Stallman )
  ◼ Stallman在 1983 年发起了 GNU计划,GNU是“GNU‘s Not Unix”的递归 缩写,其目标是创建一个完全自由的类Unix操作系统,

    GNU计划也开发 了大批其他的自由软件,例如 Emacs 、Glibc、GCC、BASH等

  ◼ 1985年Stallman又创立了自由软件基金会(Free Software Foundation) 来为GNU计划提供技术、法律以及财政支持
  GNU计划与Free Software Foundation
  ◼自由软件并不是指“免费”的,而是指具有“自由度”的软件。什么是 自由度呢?也就是使用者运行、复制、发布、研究、修改和改进该软件 的自由

  ◼GNU通用公共许可协议(GNU GPL)是一个广泛被使用的自由软件许 可协议条款,最初由Stallman为GNU计划而撰写,GPL授予程序接受人 以下权利,或称“自由”:

    ⚫以任何目的运行此程序的自由;

    ⚫再发行复制件的自由;

    ⚫改进此程序,并公开发布改进的自由
Linux的诞生
  ◼1984年,因为UNIX规定“不能对学生提供源码”,安德鲁·斯图尔 特·塔能鲍姆( Andrew Stuart Tanenbaum )自己编写了兼容于UNIX 的Minix系统,用于教学

  ◼1991年,芬兰郝尔辛基大学研究生林纳斯·托瓦兹 (Linus Torvalds)受Minix系统影响,开发了针对386机器的Linux内核

  ◼1991年Linux的第一个版本公开发行时,GNU计划已经完成除了操作 系统内核之外的大部分软件(其中包括了shell程序,C语言程序库以 及C语言编译器)。

    Linus Torvalds及其他早期Linux开发人员加入了 这些工具,而完成了Linux操作系统

  ◼Linux是在GNU通用公共许可证下发行,它却不是GNU计划的一部分
Linux与UNIX的关系
  ◼ UNIX是可以应用从大型计算机到普通PC机等多种不同的平台上,是应用面 最广、影响力最大的操作系统。

  ◼ Linux是一种外观和性能与UNIX相同或更好的操作系统,但Linux不源于任 何版本的UNIX的源代码,是一个类似于UNIX的产品

  ◼ Linux遵循POSIX规范,成功的模仿了UNIX系统和功能,更具体地讲, Linux兼容于System V以及BSD UNIX:

  ◼ 对于System V,应用程序源代码在Linux下重新编译之后就可以运行

  ◼ 对于BSD UNIX,应用程序可执行文件可以直接在Linux环境下运行。

1.1 从UNIX到Linux的发展历程的更多相关文章

  1. Linux实战教学笔记03:操作系统发展历程及系统版本选择

    标签(空格分隔): Linux实战教学笔记-陈思齐 第1章 Linux简介 1.1 什么是操作系统? 简单讲:操作系统就是一个人与计算机硬件的中介. 操作系统,英文名称Operating System ...

  2. 不权威的国产CPU发展历程

    最近进行了一些国产化相关工作 趁着周末有时间,自己整理一下这段时间的学习内容. 毕竟不是处理器和芯片的业内人士,里面多有纰漏,请谅解. 希望可以作为入门学习的简单知识. 1.0 远古时代 unix 世 ...

  3. unix及Linux发展历程

    unix及Linux发展历程 版权申明:本文资料为网上收集,由本人整理而成,转载请注明 一,unix诞生: Ken Thompson肯·汤普森 -------- unix之父 在1969年到1970间 ...

  4. Vi (Unix及Linux系统下标准的编辑器)VIM (Unix及类Unix系统文本编辑器)

    Vi是Unix及Linux系统下标准的编辑器.学会它后,您将在Linux的世界里畅行无阻.基本上vi可以分为三种状态,分别是命令模式.插入模式,和底行模式. vi编辑器是所有Unix及Linux系统下 ...

  5. 一段关于 Unix、Linux 和 Windows 的暗黑史

    “SCO 在言语上变得越来越好斗,而且还拒绝展示有关诉讼的任何证据,一切都似乎在表明,SCO只不过是在那里拉虎皮做大旗地狂言乱语.但是,微软 决不会轻易放弃这么可以一个利用这些狂言乱语的好机会.”20 ...

  6. 【Linux基础】Unix与Linux操作系统介绍

    一.Unix和Linux操作系统概述 1.Unix是什么 UNIX是一个计算机操作系统,一个用来协调.管理和控制计算机硬件和软件资源的控制程序. 2.Unix特点 (1)多用户:在同一时刻可以有多个用 ...

  7. 带你领略Linux系统发展及版本更迭

    Linux的出现是在1991年,Linus Torvalds的学生开发的,最初的Linux是类似Unix操作系统,可用于386,486或奔腾处理器的计算机上.Linus Torvalds是一个伟人,他 ...

  8. [转帖]一段关于Unix与 Linux的暗黑史

    一段关于Unix与 Linux的暗黑史 https://blog.csdn.net/a343315623/article/details/51436715 微软曾经开发过 MS-DOS Xenix O ...

  9. Linux发展历程

    阅读内容 一.linux基础 二.linux发展史 三.linux图形界面 回到顶部 一.linux基础 1.操作系统的分类 1.1 Windows 系统 优点:Windows 用户群体大:应用软件多 ...

随机推荐

  1. 在Linux安装和使用LinuxBrew

    简介 LinuxBrew是流行的Mac OS X的一个Linux叉自制包管理器. LinuxBrew是包管理软件,它能从源(在Debian / Ubuntu的如"易/ DEB",并 ...

  2. Jenkins简介

    Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上.同时 Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和 ...

  3. C语言 分割字符串

    对指针的操作有点迷糊 只好采用下面一些比较low的手段 char str[100]; char delims[] = ";"; char *result = NULL; sprin ...

  4. js仿ppt,在线演示文档:Impress.js

    (附件) Impress.js是一款基于css3转 换和过渡.工作于现代浏览器(Google Chrome或Safari (或 Firefox 10 或 IE10)).并受prezi.com的理念启发 ...

  5. Linux 命令之split(将一个大文件根据行数平均分成若干个小文件)

    把一个 txt 文件导入到 excel 中,但是 excel 单列支持的行数为 1048576,而我需要导入的 txt 文件总共有 7945674 ,我们无法一次性将整个 txt 文件里面的内容导入到 ...

  6. linux 进阶命令笔记(12月26日)

    1. df 指令 作用:查看磁盘空间 用法: #df -h       -h 表示以可读性较高的形式展示大小   2.free 指令 作用:查看内存使用情况 语法:#free -m       -m表 ...

  7. 删除node_modules文件

    删除node_modules文件夹报错:路径太长,无法删除. npm install rimraf -g rimraf node_modules

  8. python 操作剪切板

    python3 在使用网上找到的一些使用剪切板的片段时发现存在写入剪切板后乱码的情况, 研究后发现python3不能使用SetClipboardData方法, 要使用SetClipboardText ...

  9. 6-1 建立客户端与zk服务端的连接

    6-1 建立客户端与zk服务端的连接 zookeeper原生java api使用 会话连接与恢复; 节点的增删改查; watch与acl的相关操作; 导入jar包;

  10. Hadoop大数据分析应用场景

    J 为了满足日益增长的业务变化,京东的京麦团队在京东大数据平台的基础上,采用了hadoop等热门的开源大数据计算引擎,打造了一款为京东运营和产品提供决策性的数据类产品-北斗平台. 一.Hadoop的应 ...