UNIX操作系统简介

UNIX操作系统(尤尼斯),是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由KenThompson、Dennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。目前它的商标权由国际开放标准组织所拥有,只有符合单一UNIX规范的UNIX系统才能使用UNIX这个名称,否则只能称为类UNIX(UNIX-like)。

基本信息

    • 中文名称

      unix

    • 本质

      操作系统的一种

    • 类型

      分时操作系统

    • 开发

      1969年

    • 公司

      AT&T

    • 特点

      多用户、多任务的特点

      基本结构

      UNIX系统的基本结构如图所示。整个UNIX系统可分为五层:最底层是裸机,即硬件部分;第二层是UNIX的核心,它直接建立在裸机的上面,实现了操作系统重要的功能,如进程管理、存储管理、设备管理、文件管理、网络管理等,用户不能直接执行UNIX内核中的程序,而只能通过一种称为"系统调用"的指令,以规定的方法访问核心,以获得系统服务;第三层系统调用构成了第四层应用程序层和第二层核心层之间的接口界面;应用层主要是UNIX系统的核外支持程序,如文本编辑处理程序、编译程序、系统命令程序、通信软件包和窗口图形软件包、各种库函数及用户自编程序;UNIX系统的最外层是Shell解释程序,它作为用户与操作系统交互的接口,分析用户键入的命令和解释并执行命令,Shell中的一些内部命令可不经过应用层,直接通过系统调用访问核心层。

      系统组成

      UNIX操作系统结构由三大部分组成:

      1. (1) kernel(内核)

      2. (2) shell(外壳)

      3. (3) 工具及应用程序

      UNIX Kernel(UNIX内核) 是UNIX操作系统的核心,指挥调度UNIX机器的运行,直接控制计算机的资源,保护用户程序不受错综复杂的硬件事件细节的影响。

      硬件

      工具和应用程序

      SHELL

      KERNEL

      UNIX Shell(UNIX外壳) 是一个UNIX的特殊程序,是UNIX内核和用户的接口,是UNIX的命令解释器。

      目前常见的Shell有三种:

      hell类型 简称 命令 主要特点

      Bourne Shell B Shell sh 最老、使用最广泛,每个UNIX都提供。

      Korn Shell K Shell ksh 是对B Shell的扩充,兼容B Shell。

      C-Shell csh 格式有点象C语言。功能强,命令记忆稍难,在大学和学院中较为流行。

      一般系统缺省为Bourne Shell, 本文以此shell为例。

      要想将当前Shell改为其它类型的Shell,只需在操作系统提示符下键入相应的Shell命令即可。如在B Shell下键输入命令:$ ksh

      就进入了K Shell。

      发展历程

      unix操作系统它显然对开发和销售计算机及软件操作系统不感兴趣,实际上美国司法部也不允许AT&T公司销售软件.然而,当时AT&T由人和纸张组成的公司信息系统很快就要被60年代的浪潮所淹没.到70年代的时候电话业务的发展已经面临风险.AT&T公司的Ken Thompson开始为自己部门室内的信息处理寻找解决的方法,需要一个多用户操作的,能进行多个流程处理的方法,这种东西在当时来说没有一家计算机公司可以提供.这种东西的目的其实就是建立一个能支持多位话务员在一个复杂的环境中进行同时作业的操作系统. 这个需要的东西就是Unix萌发的源头. 接下来的介绍开发Unix类操作系统的循序渐进过程中发生的主要事件及对应时段.

      折叠1965年到1969年

      1965年Bell实验室加入了MIT(麻省理工学院)和GE(通用电器公司)合作开发的一个项目,该项目要求在通用公司的GE 645大型计算机硬件上开发出一套多用户交互操作系统软件,名字定为Multics.然而由于Bell实验室对系统开发中经常性的延迟和高成本消耗不满,最后终于在1969年退出了Multics系统的开发项目.1969年Ken Thompson把Multics在Bell实验室内进行了展示,这时候正好遇上了Dennis Ritchie,他提供了一台DEC(数字设备公司)的PDP-7迷你计算机硬件,可以继续用来开发能支持多用户研究环境的操作系统.这两个人建立了一个开发原型后,Ken Thompson返回了Bell实验室并鼓励在专利部门使用新开发的这款操作系统来进行文档处理工作.为区别于Multics项目,新操作系统被命名为Unix. 开发Unix的各种努力在继续,终于在1971年Unix得以在Bell实验室变得实际可用.第一版本的Unix操作系统完全使用汇编语言在PDP-11/20硬件上开发完成.它包含了基本文件系统,以及fork,roff和ed三个工具,当时它的用途就是为Bell实验室专利部门的文档准备工作提供字处理工具.

      折叠1970年到1972年

      70年代早期,Unix开始在Bell实验室变得流行起来,作为新诞生的操作系统Unix也受到了大学机构的欢迎.与学院和高科技研究领域对Unix喜爱形势不同,商业社区到处充斥着怀疑Unix的声音.为提升Unix的流行度,AT&T公司开始将Unix源代码以最小的价格许可给大学机构研究用,AT&T提供了关于Unix大量软件代码和说明手册,但是没有提供软件使用的技术支持.70年代末,几乎70%的大学机构获得了Unix许可.许多计算机专业的毕业生在使用Unix,甚至对Unix代码进行修改,使它更加健全.Unix是用汇编语言写出来的主要运行在DEC公司的硬件设备平台上,开始在PDP-7设备上,然后是PDP-11/40设备和11/45设备,最后到PDP-11/70设备,使用变得更加广泛和流行.

      折叠1973年到1979年

      这段时期是Unix开发最重要的时期.Ritchie和Thompson两人在1969到1973年时间内开发出了C编程语言,并且把Unix的内核用C高级编程语言进行了重新编写.Unix操作系统得以在不同硬件平台上编译运行.花几个月时间,用C编写的Unix就可以移植到新的硬件平台上.在C语言的帮助下修改操作系统也变得容易起来.学术社区的会员已经开始在许多系统设计课程中使用Unix,利用通用C语言写现代的命令,Unix也开始走出了字处理和编辑等局限性领域.此时Unix已经发展到了第六个版本,一个名叫Whitesmiths的商业公司基于第六版Unix发布了一个名叫Idris的商业Unix版本.1975年Thompson造访Berkeley大学安装在PDP-11/70设备上第六版Unix,此刻学校的两位毕业生Bill Joy和Chuck Haley刚好与Berkeley的这版Unix打交道,他俩在Berkeley为Unix的发展扮演了重要的角色,他们在第六版Unix环境上的第一个项目是ex编辑器的开发.他俩对Unix的内部运行原理很感兴趣,Joy把C语言增强壳以及vi编辑器等组合到了一起,形成了一个叫BSD(Berkeley软件发行包)的套装,1975第一次发布,这种模式在1978年进行了第二次发布,第二次发布的BSD中添加了虚拟内存的支持,允许程序可以在在物理内存大小不够用的情况下,继续模拟出虚拟内存来进行使用.这个特殊的想法对Bell实验室发布第七版的Unix影响非常大,第七版Unix也是最后一版完全由Bell实验室原创的Unix发行版.此后的Unix版本中的功能内容由多家商业公司和大学研究机构进行了或多或少的增添.70年代末美国国防部高级研究项目局决定将其通用计算环境构建在Berkeley版的Unix之上,在4.1版BSD的基础上,国防部高级研究项目局为4.1BSD进行了重要的性能调优提升,提供的fast文件系统提升了系统性能阻止了文件碎片的生成,该文件系统被加进了4.2版的BSD软件系统中.FreeBSD1982年到1983年

      1982年AT&T公司正式向商业领域发布了一款测试版Unix,名叫System III(System I和System II从来没有存在过),虽然System III基于第七版Unix但它也加入了一些来自BSD的工具,但System III发布版中没有包含vi编辑器和C壳,但内含了程序员workbench(工作性能度量工具),在发行System III的时候,AT&T看到了Unix的未来,很快就推出了System V版本的Unix(System IV没有在AT&T公司外出现过),其中包含了编辑器,curses(基于屏幕的软件库),和init(初始化程序),这些东西用来在开始运行Unix时启动各种过程.80年代初,Joy从berkeley大学取得了电气工程硕士学位后毕业了,变成了SUN(斯坦福大学网络)微系统公司的合伙创始人之一.Sun公司根据BSD实现的Unix操作系统名叫SunOS.这款Unix依靠对原BSD系统中的网络工具进行扩展,这些扩展中就有著名的后来变为工业标准的NFS(网络文件系统协议).Sun还为早期的Unix窗口软件开发做了一些工作,SunOS于1983年首次发布.利用Sun提供的工作站硬件产品,Unix开始在高技术领域,尤其是计算机辅助设计和工程领域(CAD/CAE)被广泛地接受.80年代早期CAD/CAE变得流行起来,另外的PC工作站提供商象HP和Apollo等开始加入到该领域,但配备Unix的Sun工作站在性能和多用户处理方面胜过了PC工作站.在其他的商业计算环境中,Unix始终被认为是一个需自我完善的操作系统,它没有侵占大型机的市场,只是在多任务处理和网络连接中发挥了显著的特色.更重要的在于C语言的诞生使Unix可以向几乎任何硬件平台移植.

      折叠1984年到2001年

      1984年AT&T发布了可以支持监视器连接到Unix的System V r2,该功能通过termcap的监视器数据库文件实现,命名为terminfo的文件可以提供多种监视器硬件的支持.其他的还有Streams和远程文件系统等. Solaris是1993年由SunOS改名而来,开始转向支持AT&T公司的System V release4版本.1993年Unix商标被Novell公司购得.1994年Solaris 2.4发布. 1995年Solaris 2.5发布,1997年Solaris 2.6生效,1998年Solaris 7发布,2000年Solaris 8发布,2001年Solaris 9测试版在3季度发布.从Solaris 8开始,Solaris除了能在Sun公司自己的SPARC系列处理器上运行外,还可以运行在Intel处理器平台上

      系统组成

      UNIX操作系统结构由三大部分组成:

      1. (1) kernel(内核)

      2. (2) shell(外壳)

      3. (3) 工具及应用程序

      UNIX Kernel(UNIX内核) 是UNIX操作系统的核心,指挥调度UNIX机器的运行,直接控制计算机的资源,保护用户程序不受错综复杂的硬件事件细节的影响。

      硬件

      工具和应用程序

      SHELL

      KERNEL

      UNIX Shell(UNIX外壳) 是一个UNIX的特殊程序,是UNIX内核和用户的接口,是UNIX的命令解释器。

      目前常见的Shell有三种:

      hell类型 简称 命令 主要特点

      Bourne Shell B Shell sh 最老、使用最广泛,每个UNIX都提供。

      Korn Shell K Shell ksh 是对B Shell的扩充,兼容B Shell。

      C-Shell csh 格式有点象C语言。功能强,命令记忆稍难,在大学和学院中较为流行。

      一般系统缺省为Bourne Shell, 本文以此shell为例。

      要想将当前Shell改为其它类型的Shell,只需在操作系统提示符下键入相应的Shell命令即可。如在B Shell下键输入命令:$ ksh

      就进入了K Shell。

      应用范围

      应用:几乎所有16位及以上的计算机上,包括微机、工作站、小型机、多处理机和大型机等等。

      特点

      1. (1) 多任务、多用户

      2. (2) 并行处理能力

      3. (3) 管道

      4. (4) 安全保护机制

      5. (5) 功能强大的shell

      6. (6) 强大的网络支持,Internet上各种服务器的首选操作系统

      7. (7) 稳定性好

      8. (8) 系统源代码用C语言写成,移植性强

      9. (9) 出售源代码,软件厂家自己增删

      UNIX流派 举例

      UNIX类别计算机

      SCO UNIX PC兼容机

      Digital Unix Dec Alpha机

      Sun UNIX Sun工作站

      AIX IBM机

了解unix操作系统发展阶段的更多相关文章

  1. 1、了解计算机与操作系统发展阶段 2、选择一个具体的操作系统,结合计算机与操作系统的发展阶段,详细了解其渊源、发展过程、趋势,整理成简洁美观的图文博客发布。 Windows Mac os x Unix Linux Android 等。

    1.了解计算机与操作系统发展阶段 操作系统并不是与计算机硬件一起诞生的,它是在人们使用计算机的过程中,为了满足两大需求:提高资源利用率.增强计算机系统性能,伴随着计算机技术本身及其应用的日益发展,而逐 ...

  2. Unix操作系统中UUCP知识详细讲解

    导读 Unix操作系统有很多值得学习的地方,这里我们主要介绍Unix操作系统中的uucp,大家一起来学习下吧!UUCP系统是一组程序,完成文件传输,执行系统之间的命令,维护系统使用情况的统计,保护安全 ...

  3. MAC地址查询 Linux/Unix操作系统mac地址怎么查

    Linux/Unix操作系统熟悉的人都通常是用console命令控制台来进行相应的操作.  Linux/Unix操作系统查看网卡mac地址的方法可以通过以下命令获得: 1.ifconfig -a 2. ...

  4. 了解计算机与操作系统发展阶段以及android操作系统的发展史

    计算机与操作系统发展阶段 计算机的发展: 第一代(1946-1957年),电子管计算机 第二代(1958-1964年),晶体管计算机 第三代  (1964—1970年),集成电路数字机 第四代 (19 ...

  5. Unix操作系统LD_PRELOAD简介

    http://blog.csdn.net/ieearth/article/details/49952047 Unix操作系统的动态链接库的知识中,这个功能主要就是用来有选择性的载入Unix操作系统不同 ...

  6. linux是类unix操作系统

    linux是类unix操作系统,linux与unix使用的基础命令是一样的,没有区别.Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程 ...

  7. 了解Linux操作系统发展阶段

    一.硬件与软件发展历史 计算机由硬件和软件组成结构 二.Linux的发展史 Linux 操作系统是Unix操作系统的一种克隆系统.它诞生于1991年的10月5日(只是第一次正式向外公布的时间).以后借 ...

  8. Unix操作系统监控详解(一)

    一.描述 监控在检查系统问题运行状况以及优化系统性能工作上是一个不可缺少的部分.通过操作系统监控工具监视操作系统资源的使用情况,间接地反映了各服务器程序的运行情况.根据运行结果分析可以帮助我们快速定位 ...

  9. 类UNIX操作系统概念

    摘要:对unix os上的一些基本概念做一个统一的梳理,以下内容转自互联网和相关书籍 一 进程组.会话.控制终端 进程组---------------------------------------- ...

随机推荐

  1. Spring xml配置

    <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.s ...

  2. js bind0

    $(function(){ $("#ul").on('click','li',function(){ if(!$(this).a $(function(){ $("#ul ...

  3. python从零开始 -- 第0篇之Hello World!

    为什么选择python以及版本选择 学习资料 学习方法和路径 1. 为什么选择python以及版本选择: Python  好玩,强大,更多关于关于为什么选择Python,在  编程小白的第一本 Pyt ...

  4. linux下用命令安装node&pm2

    我的安装环境是腾讯云centos7操作系统,并且将安装包下载到了/usr/local/src目录下 一.下载node安装包 1.wget https://npm.taobao.org/mirrors/ ...

  5. D2 有关写博客新的体会以及面向对象

    之前几篇博客一大堆废话,着实浪费时间也没啥实际作用.除了总结一些java的知识点外,再用一些比喻或者形象化的语言来表述这些知识点,无可厚非.但是,现在看来,应当减少这种堆满偏理论式偏方法性的内容的博客 ...

  6. Spring Boot的第一个程序

    Spring boot是由Pivotal团队提供的全新框架,在设计之初,其目的是为了简化Spring应用的创建.运行.测试.调试.部署的过程.Spring Boot框架不仅简化了Spring的搭建过程 ...

  7. Improved Semantic Representations From Tree-Structured Long Short-Term Memory Networks-paper

    Improved Semantic Representations From Tree-Structured Long Short-Term Memory Networks 作者信息:Kai Shen ...

  8. java中字符串"1999-10-01T00:00:00+08: 00" 转化为Date格式

    String oldStr = "1999-10-01T00:00:00+08: 00": SimpleDateFORMAT sdf = new SimpleDateFORMAT ...

  9. PTA——近似求PI

    PTA 7-50 近似求PI 网友代码: include <stdio.h> int main(){ , i, temp=; scanf("%le", &eps ...

  10. 在Javascript中闭包(Closure)

    在Javascript中闭包(Closure) 什么是闭包 “官方”的解释是:所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分. ...