Unix是20世纪70年代初出现的一个操作系统,除了作为网络操作系统之外,还可以作为单机操作系统使用。现在Unix系统的用户日益增多,应用范围也日益扩大。Unix系统在计算机操作系统的发展史上占有重要的地位,对已有技术不断作了精细、谨慎而有选择的继承和改造,并且,在操作系统的总体设计构想等方面有所发展,才使它获得如此大的成功。本文对Unix操作系统的原理、优点与缺点做了简单的分析。

Unix系统在计算机操作系统的发展史上占有重要的地位,对我们学习嵌入式操作系统有重大的意义。本文主要分析了Unix操作系统的原理、优点和缺点。其中原理部分包括Unix系统的基本结构、Unix文件系统、Unix存储管理。

一. Unix操作系统的原理

Unix是一种多用户、多任务管理操作系统。Unix系统由硬件部分、内核、Shell和应用程序构成,用户通过Shell发送用户命令到内核。Unix文件系统采用树形结构。Unix支持多种处理器架构,按照操作系统的分类,属于分时操作系统。苹果系统就是基于Unix的。

1.Unix系统的基本结构

(1)内核层
Unix系统内核的作用是与硬件交互并控制硬件向用户程序提供抽象服务。负责计算机系统中的资源管理和进程调度分配,其中包括中断处理、存储器管理、进程管理和I/O文件管理等。这些功能由Unix内核中的各个模块实现。其中包括直接控制硬件的各模块。Unix的内核是计算机硬件的第一次延伸,向用户提供接口进行服务,而用户不能够直接访问内核。

(2)Shell及专用程序层
Shell是Unix的用户接口,是Unix系统的重要组成部分。它负责完成用户命令的解释执行,完成Unix系统用户工作环境的设定等,但它不是内核的组成部分。在Unix系统中,一些命令通过应用程序的命令接口来实现。其中编译部件也在Shell及专用程序层上。

(3)用户程序层
用户程序层在Shell和专用程序的外部,与编译器同处最外层的是用户的实际应用程序。编译器主要完成将用户程序编译成系统可识别和处理的形式,也在用户程序层上。

2.Unix文件系统

Unix文件系统采用树形文件结构、内核与外核结合、设备与文件一样的管理机制和使用方法。Unix文件系统通过“磁盘索引i节点”和“目录项”来进行管理的,在文件被打开或被引用后还需要“内存索引i节点”、“用户文件描述表”、“文件表”。

文件系统在磁盘中大致分为以下三个区域:

(1)超级块
作用是存放文件系统本身的结构信息,比如每个区域的大小以及有哪些空余的磁盘块信息。超级块中保存了全局文件信息,如硬盘已用空间、数据块可用空间、i结点信息等等。

(2)i-节点表
存储文件的属性,大小以及所有者等。每个i-节点结构的大小一致,而且访问的方式就和数组类似,比如要访问i-节点号为9的i-节点结构,就对应i-节点表中的第10个位置。i结点是Unix操作系统中文件的核心,也是操作系统与硬盘中存储的数据间的中介,如果这个结点信息出现错误的话,那么硬盘中存储的数据块将无法被用户所采用。

(3)数据区
文件的内容就保存在这个区域,磁盘上的所有块的大小都是相同的,如果该文件的内容存储下来不止需要一个块,那就使用多个块进行存储。如果文件很大的话,就需要很多个磁盘块才能存储下来。

3.Unix存储管理

存储管理是对作业从进入就绪状态起到运行结束之间所使用的存储器进行管理。可以将存储管理模块的任务分为存储分配、地址映射和存储保护。

(1)存储分配
一个程序在编译和链接后,得到一个称为内存映像的文件。该文件描述了这个程序在运行时所需要的内存大小,其中包括代码和数据区的地址。这些地址称为逻辑地址,并且以首地址0为参考地址。每当一个作业调入内存,进入就绪状态,存储管理模块就要根据可利用的内存空间与作业所需要的内存两者进行计算,给该作业分配相应的内存空间。

(2)地址映射
将一个作业装入内存,意味着一个进程将被创建。存储管理模块会把该作业的映像文件首地址(为零)对准内存中进程的首地址。这个进程的首地址或起始地址是内存中的物理地址,称为偏移量。映像文件的逻辑地址加上偏移量,得到内存中的地址值均为物理地址。计算逻辑地址到物理地址的转换工作称为地址映射。映像中所有的逻辑地址都可转换为物理地址。

(3)存保护
内存空间总是被若干个进程分享,其中包括操作系统本身要常驻在内存中的那一部分。内存保护的任务是对内存空间中已划分出的区域,知道它们各属于哪些进程,并且知道每个进程有权访问的区域。每当一个进程执行过程中需要访问某个地址时,存储管理模块就要检查一下这个进程是否有权访问这个物理地址。通常,每个进程在内存中的区域是该进程可以访问的合法地址。如果访问的地址落在该进程的区域之外,即产生了非法访问。一旦遇到非法访问,内存保护就要拒绝访问,并进行出错处理。

二. Unix操作系统的优点

Unix系统是最早出现的操作系统之一,现在Unix系统的技术已经变得成熟,它具有以下优点:

1.可靠性高

Unix操作系统具有较高的可靠性,Unix主机和服务器可以保持24小时不间断运行,使用Unix系统的主机/服务器更加稳定可靠。现在的Unix操作系统采用64位技术,多路I/O提高系统可靠性和性能,支持控制器热插拔、硬盘跨接和镜像等,满足了复杂的应用要求。

2.良好的用户界面

Unix系统提供了良好的用户界面,具有使用方便、功能齐全、清晰而灵活、易于扩充和修改等特点。Unix系统的使用有两种形式:一种是操作命令,即Shell语言,是用户可以通过终端与系统发生交互作用的界面;另一种是面向用户程序的界面,它不仅在汇编语言,而且在C语言中向用户提供服务。并且Unix有3种主流的Shell,同时为用户提供数千条系统命令,大大方便了系统操作、系统管理。系统的可操作性强,可以用非常简易的输出设备代替显示器,来操作计算机和完成复杂的系统开发和管理工作。

3.良好的文件系统

Unix系统的文件系统是树形结构。它由基本文件系统和若干个可装卸的子文件系统组成,既能扩大文件存储空间,又有利于安全和保密。Unix系统把文件、文件目录和设备统一处理。它把文件作为不分任何记录的字符流进行顺序或随机存取,并使得文件、文件目录和设备具有相同的语法语义和相同的保护机制,这样既简化了系统设计,又便于用户使用。其中跨平台的文件系统和网络文件系统都为用户提供了很大便利。

4.可移植性强

Unix系统包含有非常丰富的语言处理程序、实用程序和开发软件用的工具性软件,向用户提供了相当完备的软件开发环境。Unix系统的绝大部分程序是用C语言编程的,只有约占5%的程序用汇编语言编程。C语言是一种高级程序设计语言,它使得Unix系统易于理解、修改和扩充,并且具有非常好的移植性。

5.强大的网络功能

这是Unix系统的一大重要特色。作为Internet网络技术和异构系统互连重要手段的TCP/IP协议就是在Unix上开发和发展起来的,而且他也成为Unix系统的一个不可分割的部分。Unix几乎所有系统都包括对TCP/IP的支持。同时,在Internet网络服务器中,Unix服务器占80%以上,占绝对优势。还支持所有常用的网络通讯协议,能方便的与其他主机系统、各种广域网和局域网相连接。

6.开放性

这也是Unix系统的一大重要特色。一些Unix是部分开源的,也有一些分支是开源的。例如macOS就是基于Unix的bsd分支。任何人都可以一起发现漏洞,改进、增加新功能,提高安全性能,提高了知识的利用率,也促进了生态的发展。

三. Unix操作系统的缺点

虽然Unix系统具有很多优点,但也存在一些缺点。

1.不适合普通用户

Unix操作系统的使用需要使用者掌握晦涩难懂的计算机语言,而且操作复杂,没有智能修正,命令行易产生歧义,造成使用上的一些问题。因此,Unix系统具有一定的入门门槛,不适合普通用户使用。

2.文本流作为接口不够方便可靠

Unix系统从标准输入得到文本流,处理,向标准输出打印文本流。程序之间用管道进行通信,让文本流可以在程序间传递。在程序向标准输出打印时,数据被转换成文本,这是一个编码过程,而程序之间用管道进行通信,程序从文本中提取信息是一个解码过程。由于鼓励使用文本流,很多程序员很随意的设计他们的编码方式而不经过严密思考。这就造成了 Unix 的几乎每个程序都有各自不同的输出格式,使得解码成为非常头痛的问题,经常出现歧义和混淆。

3.传统Unix内核可扩展性差

Unix用一种极简的方法构建工具,大型和复杂的工具都可以通过小型简单的工具组合创建出来,而同样的方法没有在内核上继续应用。传统Unix内核只有少量的基础功能用于代码重用,可扩展性差。随着Unix的发展,开发者直接将代码添加到内核中,会使内核变得臃肿复杂、反模块化。

Unix操作系统的原理、优点与缺点相关推荐

  1. Unix操作系统的优点总结

    linux操作系统是在Unix操作系统的基础上发展而来的,所以也继承了Unix的优点,正是由于这些优点,才有今天的简单.健壮.强大的linux操作系统 1.首先当然是它的开源性,这一点保证了,许多计算 ...

  2. Mipmap详解(有无Mipmap区别、原理、优点、缺点、优化)

    一.先了解纹理过滤         想要了解为什么要使用Mipmap,首先要知道纹理过滤是什么.         当你在玩吃鸡的时候可能会发现一个现象,一个人在距离你5米的地方,可以观察到敌人的一举一 ...

  3. QNX neutrino 实时操作系统的原理

    QNX_1_实时操作系统原理 (译)   QNX中微子RTOS的主要目标是以一种健壮的.可伸缩的形式交付开放系统POSIX API,这种形式适用于广泛的系统--从小型的资源受限的嵌入式系统到高端的分布 ...

  4. 51单片机多任务操作系统的原理与实现

    写在前面的话:这篇文章值得看十遍.分享一下 51单片机多任务操作系统的原理与实现 -- 一个超轻量级的操作系统 前言 想了很久,要不要写这篇文章?最后觉得对操作系统感兴趣的人还是很多,写吧.我不一定能 ...

  5. HTML5的优点与缺点

    HTML5的优点与缺点 文章目录 HTML5的优点与缺点 优点 缺点 优点 网络标准统一.HTML5本身是由W3C推荐出来的. 多设备.跨平台. 及时更新. 提高可用性和改进用户的友好体验. 缺点 安 ...

  6. unix cp 原理_Unix的工作原理:您都不敢问的一切

    unix cp 原理 重点 (Top highlight) Unix的工作原理:您都不敢问的一切 (How Unix Works: Everything You Were Too Afraid to ...

  7. HTML5 的优点与缺点

    前端面试题(2) 打卡: 2021-4-26 HTML HTML5 的优点与缺点? 优点 (1)网络标准统一,html5是由w3c提出(建立网站的技术统一) (2)多设备,跨平台 (3)即时更新⏲ ( ...

  8. ”舍得“大法:把自己的优点当缺点倒出去

    和几个创业者在网上或线下聊天,聊着聊着几个人就开始激动或吐槽了,无外乎几个原因:1)创业成效还不见 2)亏损现象不能扭转 3)产品打不出去 ,打了广告很多钱都无法把产品推出去 我暂时不去主观和客观的评 ...

  9. 流行的9个Java框架介绍: 优点、缺点等等

    流行的9个Java框架介绍: 优点.缺点等等 在 2018年,Java仍然是世界上最流行的编程语言.它拥有一个巨大的生态系统,在全世界有超过900万Java开发人员.虽然Java不是最直接的语言,但是 ...

  10. Hadoop基于Shell命令与底层Unix操作系统的交互

    在阅读Hadoop源代码过程中,在org.apache.hadoop.security.UnixUserGroupInformation类中,需要获取到Unix系统的用户名和所属组的信息,就需要通过执 ...

最新文章

  1. SQL Server Lock Escalation - 锁升级
  2. AdminStudio功能模块与版本信息总结
  3. Python——文件操作详解
  4. 用 JavaScript 验证只能输入数字,并做数字加总
  5. 各种排序算法及其实现总结
  6. yum安装mysql5.6
  7. 楼继伟:现有5G技术很不成熟
  8. 【RS码2】RS码的BM迭代译码原理详解及MATLAB实现(不使用MATLAB库函数-代码见CSDN同名资源)
  9. 爬取IMDBTOP250
  10. java程序n体问题_2n皇后问题 (Java代码)详解
  11. shell脚本常见错误
  12. 奇怪,勒索软件Ryuk 新版本把这些 *UNIX 文件夹列入了黑名单
  13. 关于飞信短信报警的问题
  14. OsgEarth加载shp文件问题以及shp文件介绍
  15. UltraISO 9.7.0.3476中文完美破解安装版
  16. Android Studio 打包Jar
  17. 互联网正在消灭中产阶级
  18. bzoj 1539 [POI2005]Dwu-Double-row 建图+思路
  19. SQL Server插入或修改数据是中文乱码的问题
  20. 人人开源代码快速生成品牌管理的前后端基本代码

热门文章

  1. 数据库常用的事务隔离级别都有哪些?都是什么原理?
  2. sql中 replace函数
  3. jQuery数据缓存功能的解析及简单实现
  4. 源代码分析工具推荐Understand
  5. layui 之button 事件绑定的一种方法
  6. Backpropogation反向传播公式推导【李宏毅深度学习版】
  7. 从Gradient Descent 到 Stochastic Gradient Descent(SGD)
  8. Linux 性能分析工具
  9. docker-compose nginx + ssl配置
  10. map分组后取前10个_35岁詹皇有多强?17年生涯首拿助攻王背后:10个月前早已定下目标...