2015-08-14 14:08:55 njchina 阅读数 5343
  • 马哥Linux教程-Linux操作系统基础由浅入深全面讲解1

    本课程为全新马哥Linux全套系列课程之一--Linux基础入门和架构了解,从Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    19330 人正在学习 去看看 马永亮

以下内容总结自《鸟哥的Linux私房菜 -- 基础学习篇(第三版)》


1965年前后,贝尔实验室、MIT、GE共同发起Multics项目,目的是让大型主机可以同时供300台以上的终端机连接使用。1969年后,Bell退出该项目。


1969年,Bell实验室的Ken Thompson用汇编语言写出了一组内核程序,一些内核工具程序以及一个小的文件系统。这个系统是UNIX的原型,被称为Unics(当时尚未有UNIX)。这个文件系统有两个重要概念:

  所有程序或系统装置都是文件

  不管构建编辑器还是附属文件,所写的程序只有一个目的:有效完成目标


1973年,Unix正式诞生。贝尔实验室的Dennis Ritchie将B语言重新改写成C语言,再以C语言重新改写和编译Unics的内核,最后发行了UNIX的正式版本。


1977年,BSD (Berkeley Software Distribution)诞生。Berkeley大学的Bill Joy修改了UNIX的内核源码,得到合适自己机器的版本并增加了很多工具软件和编译程序,命名为BSD。Bill Joy也是Sun的创办者。Sun是以BSD开发的内核进行自己的商业UNIX版本开发的。(可用于x86硬件架构的FreeBSD即由BSD改版而来)


1979年,AT&T推出第七版System V,支持x86架构。但同时特别声明“不可对学生提供源码”。


1984年,谭邦宁(Andrew Tanenbaum)教授编写出 基于X86架构的与UNIX兼容的MINIX系统


1984年,Richard Mathew Stallman为了“创建一个自由、开放的UNIX操作系统”开始GNU项目。陆续开发出EMACS、GNU C(GCC)、GNU C LIBRARY (GLIBC)、Bash Shell。并于1985年草拟了GPL(general public license)。但当时开发的软件只能运寻根在授权的UNIX平台上,一直到Linux出现。


1988年,图形接口XFree86项目。


1991年,Linus Torvalds宣布他以bash/gcc等工具写出了可运行在Intel386上的内核程序。因为LInux用了很多的GNU相关软件,Stallman认为Linux的全名应该是GNU/Linux。


  由于Torvalds负责开发的Linux仅有内核和内核工具,于是很多商业公司或非盈利团体就将Linux Kernel(含工具)与可运行的软件集成起来,加上自己具有创意的工具程序,这个工具程序可以让用户以光盘、DVD或通过网络安装/管理Linux系统。这个“Kernel+Softwares+Tools”的可完全安装的系统,称之为Linux Distribution(可安装套件或Linux发行套件)


个人小结:根据以上的描述,UNIX发展到后期可以认为是由各商业公司把持的封闭系统,而Linux是开源的开放的系统。


2019-07-12 21:20:29 weixin_40132006 阅读数 24
  • 马哥Linux教程-Linux操作系统基础由浅入深全面讲解1

    本课程为全新马哥Linux全套系列课程之一--Linux基础入门和架构了解,从Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    19330 人正在学习 去看看 马永亮

Table of Contents

计算机系统

操作系统

操作系统的历史

操作系统的大家族

操作系统的特征

操作系统的主要功能

操作系统结构

习题


计算机系统

计算机系统组成:硬件,软件。

计算机软件是指计算机系统中的程序及其相关的文档。

计算机软件可以划分为系统软件(为用户提供最基本的功能),应用软件和介于这两者之间的支撑软件。


操作系统

操作系统是对计算机软件和硬件资源进行管理的软件。(一组程序,硬件和软件有效管理,为用户提供方便集合)

操作系统是计算机系统中的一个系统软件,是一些程序模块的集合——
它们能以尽量有效、合理的方式管理和分配计算机的软硬件资源,合理的组织计算机的工作流程,
控制程序的执行并向用户提供各种服务功能,
使得用户能够灵活、方便、有效的使用计算机,使整个计算机系统能高效地运行。

操作系统的历史

  1. 无操作系统阶段
  2. 单道批处理系统
    程序员把作业(卡片或磁带)提交给负责调度的操作员(系统管理员);
    操作员把作业“成批”地输入到计算机;
    批处理管理程序自动地识别、装入一个作业,并运行之,然后再取下一个作业。
    
    早期的批处理系统(单道批处理系统)
    把卡片拿到 IBM 1401
    读卡片内容到磁带
    磁带装到 IBM 7094 ,计算
    磁带装到 IBM 1401 ,   打印输出
    
  3. 多道批处理系统
    多道:内存中同时存放多个作业,由CPU以切换方式为之服务。在当前运行的作业需作I/O处理时,CPU转而执行另一个作业;
    宏观上并行运行:都处于运行状态,但都未运行完;
    微观上串行运行:各作业交替使用CPU和I/O设备
    
    提高了系统性能(增加了处理器管理,存储管理,I/O设备管理,文件管理,作业管理等功能),
    增加了计算机资源的共享和竞争,
    增加了系统的复杂性。
    它的出现标志着真正意义的操作系统的诞生。
    
    
    通道:用于控制I/O设备与内存间的数据传输,有专用的I/O处理器,启动后可独立于CPU运行,实现CPU与I/O的并行工作。
    中断:CPU在收到外部中断信号后,停止原来工作,转去处理该中断事件,在完成后回到原来断点继续工作。
    

     

  4. 分时操作系统
    主要特点:
    
    1.多路性:若干终端连接到计算机上,系统按分时原则为每个用户服务。
    2.独立性:各用户独立地使用一台终端工作,彼此互不干扰。
    3.交互性:
    4.及时性:用户的请求要在较短的时间内得到相应。
    

     

  5. 实时操作系统
    实时操作系统是指使计算机能及时响应外部事件的请求,
    在规定的严格时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致地工作的操作系统。
    
    正确性不仅依赖系统计算的逻辑结果,还依赖于产生这个结果的时间。
    
    分两类:实时过程控制,用于工业控制、军事控制;
           实时信息处理,用于电信、银行、飞机定票等领域。
    

     

  6. 嵌入式操作系统
  7. 网络操作系统
  8. 分布式操作系统
    分布式操作系统就是运行在 松散耦合方式(建立在计算机网络基础之上,各个计算机相对独立,通过消息传递来进行通信的多机系统)下的。
    具有以下特征:
    1.它是一个统一的操作系统。
    2.所有的分布式系统中的资源深度共享。
    3.系统对于用户透明,对用户来说,系统就像是一台单一计算机。
    4.处于分布式系统的多个主机都是平等的,没有主从的概念。

     

操作系统的大家族

  1. 大型机操作系统主要用于面向多个作业的同时处理,需要巨大的I/O能力。如银行支票处理或者航班预定。每个业务量很小,但是系统需要每秒处理成百上千个业务
  2. 服务器操作系统即网络操作系统通过网络同时为若干个用户服务,允许用户共享硬件和软件资源
  3. 多处理机操作系统(依据连接和共享方式不同,多处理机分为多计算机和多处理器--采用的操作系统是配有通信、连接和一致性等专门功能的服务器操作系统的变体
  4. 个人计算机操作系统
  5. 智能终端操作系统
  6. 嵌入式操作系统
  7. 智能卡操作系统

操作系统的特征

  1. 并发(Concurrence):并行性是指两个或多个事件在同一时刻发生;而并发性是指两个或多个事件在同一时间间隔内发生。
  2. 共享(Sharing):指系统中的资源可供内存中多个并发执行的进程(线程)共同使用。
  3. 虚拟(Virtual):是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。
  4. 异步性(Asynchronism):进程以不可预知的速度向前推进。

操作系统的主要功能

  1. 处理机管理功能
    1.进程控制(创建,撤销,状态转化)
    2.进程同步(互斥同步)
    3.进程通信(管道通信,信箱,消息缓冲)
  2. 存储器管理功能
    1.调度
      1.1作业调度  从外存到内存,程序变成进程
      1.2进程调度  内存中的进程获得CPU,运行
      1.3调度算法  调度中使用的规则
    2.内存分配
      2.1连续分配 分区
      2.2离散分配 分页,分段
    3.内存保护
      3.1确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰 
      3.2主要解决“越界”问题
    4.地址映射
      程序编译后的地址和装入内存的地址不是一致的。存储器管理必须提供地址映射功能,以将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。
    5.内存扩充
      5.1局部性原理
      5.2请求调入功能
      5.3置换功能
    
  3. 设备管理功能
    1.缓冲管理
      缓和高速CPU和I/O设备间速度不匹配
    2.设备分配
      根据用户进程的I/O请求、现有资源情况以及设备分配策略,为之分配其所需的设备
    3.设备处理
      设备驱动程序,CPU到控制器的接口
    
  4. 文件管理功能
    1.文件的结构
      逻辑结构和物理结构,不同的文件系统有不同的结构FAT32,EXT2
    2.目录管理
      通过目录管理文件,检索、存取、共享
    3.存储空间管理
      外存空间管理
  5. 用户接口
    1.命令接口
      由一组键盘操作命令及命令解释程序所组成
    2.程序接口
      用户程序取得操作系统服务的惟一途径。它是由一组系统调用组成,每一个系统调用都是一个能完成特定功能的子程序。
    3.图形接口
      命令接口的图形化,鼠标、菜单、图标……

操作系统结构

  1. 整体式结构
    将总体功能划分为若干子功能,子功能再往下细分,直至最基本的功能为止。实现每个子功能的程序称为模块。整个系统就是由接口将所有模块连接起来的一个整体,所以被称为整体式结构。
    早期的UNIX系统和现在的Linux系统
    

  2. 分层式结构
    为了使系统的结构更加清晰,引入了层次式结构设计方法,即在硬件裸机的基础上一层一层向外扩充软件,其中低层软件为高层软件提供服务,高层软件通过调用底层软件实现其功能。
    THE系统 、MULTICS 
    

  3. 虚拟机结构
    这个系统的核心被称为虚拟机监控器(virtual machine monitor)。它在裸机上运行,向上层提供多台虚拟机,每台虚拟机不是具有完备系统功能的扩展机器,仅仅是对裸机的精确复制。这种复制是通过共享一台物理机器的资源来实现的。
    VM/370
    

  4. 微内核结构
    尽可能的将代码移出核心,将系统服务与系统的最基本操作分离开来。按照这种目标,OS被分成服务器和OS核心两部分。所有的服务器都工作于用户态,内核用来处理客户程序与服务器之间的通信过程。
    Mach操作系统 、Windows NT 
    


习题

允许多个用户以交互方式使用计算机的操作系统称为(B );允许多个用户将多个作业提交给计算机集中处理的操作系统称为(A);计算机系统能及时处理过程控制数据并做出响应的操作系统称为(D)。

A批处理操作系统

B分时操作系统

C多处理机操作系统

D实时操作系统

--E网络操作系统

为了更加方便的使用计算机,操作系统为用户提供了很多抽象的逻辑概念,这被称作C

A并行

B真实

C虚拟

D共享

你如何理解操作系统是扩展的计算机?

一般来说我们看操作系统有两个角度,一个是操作系统是计算机资源的管理者,另一个就是操作系统是扩展的计算机。
用户对于复杂的硬件是非常难以处理的,但是借助于操作系统提供的逻辑概念,处理上就简单多了。
比如对于cpu的活动,对于内存,对于磁盘,操作系统提出了进程,地址空间和文件等概念。在处理这些逻辑概念时,我们不需清楚硬件的细节,由操作系统代劳。就像文件,无论对于硬磁盘,光盘,还是U盘,用户的使用方式都是一样的,硬件的复杂性和差异性被屏蔽了。


什么是并发?并请举一个日常生活中的并发例子。

并发就是多个进程在宏观上同时执行,微观上只有一个进程在cpu上执行。
由于cpu在进程间切换速度很快,所以逻辑上,每个进程都在运行着,似乎拥有独立的cpu。
比如打扑克牌时候的发牌过程,微观上每个牌手轮流的获得扑克牌,宏观上牌手们在过程中不间断的都在获得扑克牌。


什么是单道?什么是多道?单道批处理与多道批处理系统的区别是什么?

单道的概念就是内存中只有一道程序,而多道是内存中存在多个程序,
cpu轮流地执行这些程序,即并发。是否支持进程并发,是这两个系统的主要区别。


我们使用的手机操作系统安卓和ios是分时系统吗?为什么?

分时就是CPU可以时分复用在每一个内存中的进程上。我们的手机操作系统安卓和ios,
都支持分时(例如我们听歌的时候,手机也可以收发微信),所以它们都是分时系统。

实时系统与分时系统相比有一些不同的特点:

1.分时系统主要用于作业的处理,系统本身只具有管理和调度的功能,它属于一种通用的操作系统。
  分时系统主要用于数据和信息的处理,不接受用户处理作业的要求。实时系统是一种专用的操作系统,本身实时控制和实时信息处理的专用程序。
2.分时系统也要求及时响应,但要求并不严苛,
  实时系统的实时性则严格的多,响应时间以具体的实时控制或实时信息处理所能接受的延迟时间决定。
3.分时系统用户不仅可以获得系统处理业务的服务,还可以请求系统提供文件编辑,数据处理和资源使用等多方面服务。
  实时系统的交互性非常有限,仅允许终端操作员访问有限的专用程序,不能编写程序或修改已有的程序。
4.分时系统要求系统可靠,而实时系统则要求系统高度可靠。

批处理,分时,实时系统是第三代计算机时代的3种典型的操作系统类型。

2019-12-11 23:06:32 qq_39341113 阅读数 4
  • 马哥Linux教程-Linux操作系统基础由浅入深全面讲解1

    本课程为全新马哥Linux全套系列课程之一--Linux基础入门和架构了解,从Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    19330 人正在学习 去看看 马永亮

Linux教程

Linux教程:http://www.fdlly.com/m/linux


#什么是操作系统
Linux 也是众多操作系统之一,要想知道 Linux 是什么,首先得说一说什么是操作系统
操作系统是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

操作系统简介

在计算机中,操作系统是其最基本也是最为重要的基础性系统软件。从计算机用户的角度来说,计算机操作系统体现在其提供的各项服务;从程序员的角度来说,其主要是指用户登录的界面或者接口;如果从设计人员的角度来说,就是指各式各样模块和单元之间的联系。事实上,全新操作系统的设计和改良的关键工作就是对体系结构的设计,经过几十年以来的发展,计算机操作系统已经由一开始的简单控制循环体发展成为较为复杂的分布式操作系统,再加上计算机用户需求的愈发多样化,计算机操作系统已经成为既复杂而又庞大的计算机软件系统之一。

操作系统历史

纵观计算机之历史,操作系统与计算机硬件的发展息息相关。操作系统之本意原为提供简单的工作排序能力,后为辅助更新更复杂的硬件设施而渐渐演化。从最早的批量模式开始,分时机制也随之出现,在多处理器时代来临时,操作系统也随之添加多处理器协调功能,甚至是分布式系统的协调功能。其他方面的演变也类似于此。另一方面,个人计算机之操作系统因袭大型机的成长之路,在硬件越来越复杂、强大时,也逐步实现以往只有大型机才有的功能。

从1946年诞生第一台电子计算机以来,它的每一代进化都以减少成本、缩小体积、降低功耗、增大容量和提高性能为目标,随着计算机硬件的发展,同时也加速了操作系统(简称OS)的形成和发展。 [2]
最初的电脑没有操作系统,人们通过各种按钮来控制计算机,后来出现了汇编语言,操作人员通过有孔的纸带将程序输入电脑进行编译。这些将语言内置的电脑只能由制作人员自己编写程序来运行,不利于程序、设备的共用。为了解决这种问题,就出现了操作系统,这样就很好实现了程序的共用,以及对计算机硬件资源的管理。

随着计算技术和大规模集成电路的发展,微型计算机迅速发展起来。从20世纪70年代中期开始出现了计算机操作系统。在美国1976年的时候就研制了DIGITAL RESEARCH软件公司出8位的CP/M操作系统。这个系统允许用户通过控制台的键盘对系统进行控制和管理,其主要功能是对文件信息进行管理,以实现其他设备文件或硬盘文件的自动存取。此后出现的一些8位操作系统多采用CP/M结构。 [2]

操作系统功能

计算的操作系统对于计算机可以说是十分重要的,从使用者角度来说,操作系统可以对计算机系统的各项资源板块开展调度工作,其中包括软硬件设备、数据信息等,运用计算机操作系统可以减少人工资源分配的工作强度,使用者对于计算的操作干预程度减少,计算机的智能化工作效率就可以得到很大的提升。其次在资源管理方面,如果由多个用户共同来管理一个计算机系统,那么可能就会有冲突矛盾存在于两个使用者的信息共享当中。为了更加合理的分配计算机的各个资源板块,协调计算机系统的各个组成部分,就需要充分发挥计算机操作系统的职能,对各个资源板块的使用效率和使用程度进行一个最优的调整,使得各个用户的需求都能够得到满足。最后,操作系统在计算机程序的辅助下,可以抽象处理计算系统资源提供的各项基础职能,以可视化的手段来向使用者展示操作系统功能,减低计算机的使用难度。 [3]
操作系统主要包括以下几个方面的功能 :

进程管理

其工作主要是进程调度,在单用户单任务的情况下,处理器仅为一个用户的一个任务所独占, 进程管理的工作十分简单。但在多道程序或多用户的情况 下,组织多个作业或任务时,就要解决处理器的调度、 分配和回收等问题 。

存储管理

存储管理分为几种功能:存储分配、存储共享、存储保护 、存储扩张。

设备管理

设备管理分有以下功能:设备分配、设备传输控制 、设备独立性。

文件管理

文件管理:文件存储空间的管理、目录管理 、文件操作管理、文件保护。

作业管理

作业管理是负责处理用户提交的任何要求

操作系统分类

计算机的操作系统根据不同的用途分为不同的种类,从功能角度分析,分别有实时系统批处理系统分时系统网络操作系统等。

实时系统

实时系统主要是指系统可以快速的对外部命令进行响应,在对应的时间里处理问题,协调系统工作。 批处理系统在1960年左右出现,可以将资源进行合理的利用,并提高系统的吞吐量。

分时系统

分时系统可以实现用户的人机交互需要,多个用户共同使用一个主机,很大程度上节约了资源成本。 分时系统具有多路性、独立性、交互性、可靠性的优点,能够将用户-系统-终端任务实现

批处理系统

批处理系统出现在20世纪60年代,批处理系统能够提高资源的利用率和系统的吞吐量

网络操作系统

网络操作系统是一种能代替操作系统的软件程序,是网络的心脏和灵魂,是向网络计算机提供服务的特殊的操作系统。借由网络达到互相传递数据与各种消息,分为服务器及客户端。而服务器的主要功能是管理服务器和网络上的各种资源和网络设备的共用,加以统合并控管流量,避免有瘫痪的可能性,而客户端就是有着能接收服务器所传递的数据来运用的功能,好让客户端可以清楚的搜索所需的资源。

操作系统实例

嵌入式

嵌入式系统使用非常广泛的系统(如VxWorks、eCos、Symbian OS及Palm OS)以及某些功能缩减版本的Linux或者其他操作系统。某些情况下,OS指称的是一个内置了固定应用软件的巨大泛用程序。在许多最简单的嵌入式系统中,所谓的OS就是指其上唯一的应用程序。

iOS是由苹果公司开发的手持设备操作系统。苹果公司于2007年1月9日的Macworld 大会上公布这个系统,以Darwin为基础,属于类Unix 的商业操作系统。最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch 、iPad 以及 Apple TV 等产品上。iOS与苹果的 Mac OS X 操作系统一样,属于类Unix的商业操作系统。

Android是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。

类Unix系统

所谓的类Unix家族指的是一族种类繁多的OS,此族包含了System V、BSD与Linux。由于Unix是The Open Group的注册商标,特指遵守此公司定义的行为的操作系统。而类Unix通常指的是比原先的Unix包含更多特征的OS。

类Unix系统可在非常多的处理器架构下运行,在服务器系统上有很高的使用率,例如大专院校或工程应用的工作站。

1991年,芬兰学生林纳斯·托瓦兹根据类Unix系统Minix编写并发布了Linux操作系统内核,其后在理查德·斯托曼的建议下以GNU通用公共许可证发布,成为自由软件Unix变种. Linux近来越来越受欢迎,它们也在个人桌面计算机市场上大有斩获,例如Ubuntu系统。

微软Windows

Microsoft Windows系列操作系统是在微软给IBM机器设计的MS-DOS的基础上设计的图形操作系统。现在的Windows系统,如Windows 2000、Windows XP皆是创建于现代的Windows NT内核。NT内核是由OS/2和OpenVMS等系统上借用来的。Windows可以在32位和64位的Intel和AMD的处理器上运行,但是早期的版本也可以在DEC Alpha、MIPS与PowerPC架构上运行。

MacOS X

macOS,前称“MacOS X”或“OS X”,是一套运行于苹果Macintosh系列计算机上的操作系统。Mac OS是首个在商用领域成功的图形用户界面系统。Macintosh开发成员包括比尔·阿特金森(Bill Atkinson)、杰夫·拉斯金(Jef Raskin)和安迪·赫茨菲尔德(Andy Hertzfeld)。从OS X 10.8开始在名字中去掉Mac,仅保留OS X和版本号。2016年6月13日在WWDC2016上,苹果公司将OS X更名为macOS,现行的最新的系统版本是10.14,即macOS Mojave。

Chrome OS

Google Chrome OS是一项Google的轻型的、基于网络的计算机操作系统计划,其基于Google的浏览器Google Chrome的Linux内核。

2018-12-05 13:13:18 Ha1f_Awake 阅读数 171
  • 马哥Linux教程-Linux操作系统基础由浅入深全面讲解1

    本课程为全新马哥Linux全套系列课程之一--Linux基础入门和架构了解,从Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    19330 人正在学习 去看看 马永亮

主要内容

处理机管理功能

存储器管理功能

外围设备管理功能

文件管理功能

用户接口


操作系统(Operating System,OS)是为了满足人们需求而逐步产生并发展的一个“工具”。现代社会的操作系统中Windows、UNIX和Linux系统三足鼎立,还有其他的操作系统异军突起。

操作系统是计算机中最基本的系统软件,几乎不存在一台计算机不含有操作系统。

买电脑时除了查看电脑配置(硬件),其次就是看电脑安装了哪个操作系统,Win7、Win10还是其他的。

即使有人专门买裸机(没有任何软件的计算机系统),买回去后一样得安装操作系统,因为它是用户与计算机硬件系统交互的接口。


 

操作系统的基本目标

1)方便性普通用户一般用Windows操作系统,软件、系统开发人员则一般用UNIX或Linux操作系统。

2)有效性处理作业的效率。

3)可扩充性Windows操作系统打补丁、Linux操作系统可以对模块进行剪裁(系统瘦身)等;

4)开放性Windows源代码保密,相反,Linux开源,用户可以自己对OS进行修改或补充。

 

操作系统的作用

1)面向用户

对不同的用户而言,OS的作用也不同。小孩可以通过OS上网玩游戏,工作人员可以使用Word、Excel之类的应用软件进行文字性工作等。

OS处于用户与计算机硬件系统之间,用户在OS的帮助下,能够方便、快捷、安全(别中毒)、可靠(别蓝屏)地操纵计算机硬件运行自己的程序

在早期计算机刚诞生、没有安装OS的情况下,用户使用计算机的方式非常麻烦,而且只有专业人士才能顺利地使用计算机。但那已经是过去式了,如今在OS的帮助下,普通群众,甚至是三岁小孩都能轻松地使用计算机,这就是操作系统的强大之处。

What's more,用户要使用浏览器、QQ、Word等应用软件,必须要有OS的系统调用功能的支持。

 

2)面向计算机系统资源

OS是计算机系统资源的管理者。用户要使用资源,必须向OS提交请求,然后由它进行判断、分配、调度和管理。

在一个计算机系统中,通常含有各种各样的软、硬件资源。归纳起来可将资源分为四类:处理机、存储器、I/O设备以及信息(数据和程序)。由OS对这四类资源的管理衍生出四个专题:处理机管理存储器管理I/O设备管理以及文件管理

1. 处理机管理:用于分配和控制处理机,协调各作业、进程的执行。

2. 存储器管理:主要负责内存的分配和回收。执行程序要先把程序存储到内存当中,然后顺序执行,一步步地取指令、分析指令、执行,不断循环这个过程。

3. I/O设备管理:用于分配和操纵I/O设备(比如打印机)。

4. 文件管理:负责文件的存取、共享和保护。比如拍照后将照片上传到电脑,然后删除效果不太好的照片,上传和删除就涉及到对文件的操作。

 

3)用作扩充机器

对于一台裸机,即使其功能再强,也必定是难以使用的。如果在裸机上覆盖一层或者几层的管理软件,它将变成功能更强、使用更方便的机器。通常把覆盖了软件的机器称为扩充机器或虚机器。(I/O设备管理软件 + 文件管理软件 + 窗口软件 + ......)

 

操作系统的作用方式

1)命令方式:由OS提供一组联机命令(语言),用户可通过键盘输入有关命令来直接操纵计算机。如Linux系统。

2)系统调用方式:OS提供了一组系统调用,用户可在自己的应用程序中通过相关的系统调用来操纵计算机。目前OS提供的系统调用已经足够满足用户的大部分需求。

3)图形、窗口方式:最普遍、最被熟悉的方式。用户通过屏幕上的窗口和图标来操纵计算机系统和运行自己的程序。

 

操作系统的发展历史

回顾“点这里”。

 

操作系统的基本类型

回顾“点这里”。

 

操作系统的基本特性

1)并发(Concurrence)

并行性并发性是既相似又有区别的两个概念。并行性是指两个或多个事件在同一时刻发生;而并发性是指两个或多个事件在同一时间段内发生。在多道批操作系统中,多个程序在宏观上同时执行,微观上分时交替执行。

 

2)共享(Sharing)

在OS环境下,系统中的资源可供内存中多个并发执行的进程(线程)共同使用。由于资源种类不同,进程对资源共享的方式也不同。目前主要有以下两种资源共享方式:

1. 互斥式:一段时间内只允许一个进程(线程)访问该资源。当一个进程A要访问某资源时,必须先提出请求,如果此时该资源空闲,系统便可将其分配给进程A使用,此后若再有其他进程访问该资源,除非进程A用完并释放该资源,否则必须等待。这种资源又被称作临界资源或独占资源(如大部分物理设备)。

2. 同时式:这里的“同时”也是指宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问。(如磁盘设备)

 

3)虚拟(Virtual)

OS中利用了多种虚拟技术,分别用来实现虚拟处理机虚拟存储器虚拟外部设备虚拟信道等。

在虚拟处理机技术中,通过多道程序设计技术,让多道程序并发执行,分时使用一台处理机。此时虽然只有一台处理机,但它能同时为多个用户服务,使每个终端用户都感觉有一个处理机专门为他服务,于是物理上的一台处理机就虚拟成了逻辑上的多台处理机。我们把用户感觉到的处理机称为虚拟处理机。

类似地,通过虚拟存储器技术,可以将物理上容量不大的内存虚拟成容量更大的虚拟内存,从逻辑上扩充存储器的容量。(之后在“存储器管理”的文章会再作介绍)

 

4)异步性(Asynchronism)

进程以人们不可预知的速度向前推进,这就是进程的异步性。尽管如此,只要运行环境相同,作业经过多次运行都能获得完全相同的结果。

 

操作系统的主要功能(important)

 

处理机管理功能

1)进程控制

在传统的多道程序环境下,要使作业运行,必须先为它创建一个或几个进程,并为之分配必要的资源。当进程运行结束时,立即撤销该进程,以便及时回收该进程占用的资源。

进程控制的主要功能是为作业创建进程撤销已完成的进程,以及控制进程的状态转换上下文切换。在现代OS中,进程控制还应具有为一个进程创建若干个线程以及撤销已完成线程的功能。

 

2)进程同步

为多个进程(含线程)的运行进行协调:

1. 进程互斥,各进程(线程)对临界资源的访问采用互斥方式;

2. 进程同步,相互合作去完成共同任务的各进程(线程)间,由同步机构对它们的执行次序加以协调。(一般用于逻辑上有相互关系的进程或线程)

为了实现进程同步,系统中必须设置进程同步机制。最简单的机制是给临界资源设置一把,打开则可以访问,反之不可。

 

3)进程通信

在多道程序环境下,为了加快应用程序的运行,除了创建进程、线程外,还需要在进程或线程之间作信息交换。

当相互合作的进程(线程)处于同一计算机系统时,通常由源进程利用发送命令直接将消息挂到目标进程的消息队列上,以后由目标进程利用接收命令从其消息队列中取出信息。

 

4)进程调(diao)度

在后备队列等待的每个作业,通常要经过调度才能执行。在传统的OS中,包括作业调度和进程调度两步。

作业调度:从后备队列中按照一定的算法(如FCFS、RR等),选择出若干个作业,为它们分配必需的资源(首先分配内存),在将作业调入内存后,便分别为它们建立进程,使它们都成为可能获得处理机的就绪进程,并按照一定的算法将它们插入就绪队列。

进程调度:从进程的就绪队列中选取一个进程,把处理机分配给它,并为它设置运行现场,使进程投入执行。需要注意的是,在多线程OS中,通常把线程作为独立运行和分配处理机的基本单位,为此,必须把就绪线程排成一个队列,每次调度选取一个线程。

 

存储器管理功能

1)内存分配

OS实现内存分配有两种方式,静态或者动态。

静态分配方式中,每个作业的内存空间是在作业装入时确定的(JCB)。作业装入后的整个运行期间内,不允许该作业申请新的内存空间,也不允许作业在内存中“移动”,即更换地址。

动态分配方式中,每个作业在装入时只确定基本内存空间,但在作业的运行过程中,允许作业申请附加内存空间,以适应程序和数据的动态增涨,也允许作业在内存中“移动”。

 

为了实现内存分配,在内存分配的机制中应具有下列结构和功能:

1. 内存分配数据结构:该结构用于记录内存空间的使用情况,作为内存分配的依据;

*涉及资源分配的问题基本都得用上数据结构,用以记录资源的使用情况。

2. 内存分配功能:系统按照一定的内存分配算法,为用户程序分配空间;

3. 内存回收功能:系统根据用户的释放请求,完成回收内存的任务。

 

2)内存保护

确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰,因此必须设置内存保护机制。一种比较简单的保护机制是设置两个界限寄存器,分别用于存储正在执行程序的上界和下界。系统需对每条指令所访问的地址进行检查,如果发生越界,便发出越界中断请求,以停止该程序的执行。为了保证程序的运行速度,越界检查由硬件实现,软件配合越界处理。

 

3)地址映射

一个应用程序(源程序)经过编译后,通常会形成若干目标程序,这些目标程序再经过链接才能成为可装入程序

这些程序的地址在逻辑上都是从“0”开始的,程序中的其他地址都是相对于“0”计算的,由这些地址形成的地址范围称为“地址空间”,其中的地址称为“逻辑地址”。此外,由内存中一系列单元限定的地址范围称为“内存空间”,其中的地址称为“物理地址”。

在多道程序环境下,每道程序不可能都在物理上从“0”地址开始装入。如果是这样,后一道程序必然覆盖前一道程序。

正因为不可能在物理上实现所有程序都从“0”开始,这就致使地址空间内的逻辑地址和内存空间中的物理地址不相一致。为使程序正确运行,存储器管理必须提供地址映射功能,以将地址空间中的逻辑地址转换为内存空间中相应的物理地址。这需要在硬件的支持下实现。

 

4)内存扩充

利用虚拟存储技术实现扩充,涉及两个功能的实现:请求调入功能和置换功能。

 

外围设备管理功能

完成用户进程提出的I/O请求,为其分配必需的I/O设备,提高CPU和I/O设备的利用率等。

1)缓冲管理

内存中设置缓冲区,解决CPU高速性与I/O设备低速性的矛盾。

 

2)设备分配

可类比。

 

3)设备处理

设备处理程序又称为设备驱动程序。其基本任务是完成CPU与设备控制器之间的通信,即由CPU向设备控制器发出I/O命令(读、写),要求它完成指定的I/O操作;反之设备控制器向CPU发出中断请求,要求CPU给予迅速的响应和相应处理。

 

文件管理功能

1)文件存储空间管理

文件系统对各个文件以及文件的存储空间实施统一的管理。其主要任务是为每个文件分配必要的外存空间,提高外存的利用率,并能提高文件系统的运行速度。

为了提高存储空间的利用率,一般采用离散分配方式来对存储空间进行分配。

 

2)目录管理

为了方便用户在外存上找到自己需要的文件,通常由系统为每个文件建立一个目录项。目录项包括文件名文件属性文件在磁盘上的物理位置等信息,若干个目录项又可以构成一个目录文件。

目录管理的主要任务:

1. 每个文件建立目录项,对各个目录项加以组织,以实现方便的按名存取。

2. 文件共享,在外存上保留一份共享文件的副本。

3. 快速的目录查询,提高对文件的检索速度。

 

3)文件的读/写管理

根据用户的请求,从外存读入数据,或将数据写入外存。

在进行文件读写时,系统先根据用户给出的文件名,检索文件目录,从中获得文件在外存的位置,然后再利用文件读写指针对文件进行读写操作。一旦读写完成,便可修改指针,为下一次读写做准备。由于读和写操作不能同时进行,所以两种操作可以共用一个指针。

 

4)文件保护

1. 防止未经准许的用户存取文件;

2. 防止冒名顶替存取文件;

3. 防止用户使用不正确的方法存取文件。

 

用户接口

用户接口分为命令接口(典型如Linux系统)、程序接口(涉及系统调用)、图形接口(最熟悉的Windows系统)。

 

 

 

2018-11-22 15:06:30 Ha1f_Awake 阅读数 161
  • 马哥Linux教程-Linux操作系统基础由浅入深全面讲解1

    本课程为全新马哥Linux全套系列课程之一--Linux基础入门和架构了解,从Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    19330 人正在学习 去看看 马永亮

主要内容

Let's talk about what is operating system.

1. 批处理操作系统

2. 分时操作系统

3. 实时操作系统

4. 通用操作系统

1. 处理机管理

2. 存储管理

3. 设备管理

4. 文件系统管理

5. 用户接口管理


 

Let's talk about what is operating system.

操作系统是为了满足人们需求逐步产生并发展的一个东西,现代社会的操作系统中Windows、UNIX和Linux系统三足鼎立,也有其他的操作系统异军突起。


 

操作系统的基本概念

(一大波专业名词正在袭来...)

 

操作系统(operating system)是计算机系统中的一个系统软件,现存的任何一个计算机都配置着至少一种操作系统。

操作系统的基本目标是:

1)方便性

2)有效性

3)可扩充性

4)开放性

 

计算机系统由两部分组成:硬件软件

系统硬件包括CPU(中央处理器,由运算器和控制器组成)、存储器和输入输出设备等(“计算机组成原理”的知识);

系统软件包括操作系统、系统处理程序和多种工具软件等。

 

没有任何软件支持(仅包含硬件)的计算机称为裸机(bare machine),它仅仅构成可计算机系统的物质基础。

操作系统提供的资源管理功能和方便用户的各种服务功能把裸机改造成功能更强、使用更方便的机器,因此操作系统通常又称为虚拟机(virtual machine)。

 

操作系统管理和控制计算机系统中的硬件和软件资源,合理地组织计算机工作流程,以便有效地利用这些资源为用户提供一个具有足够功能、使用方便、可扩展、安全和可管理的工作环境,从而在计算机与用户间起到接口的作用。

 

下面我们将通过回顾操作系统的发展历史来更好地理解操作系统是什么,又因为什么而出现。


 

操作系统的历史

(年纪轻轻学什么计算机,来学历史呀!)

 

第一代计算机时期,构成计算机的主要元件是电子管,计算机的运算速度比较慢,用户直接用机器语言编写程序,并在上机时独占全部计算机资源用户既是程序猿,又是操作猿,所以在当时计算机的使用门槛相当地高。

上机完全是手工操作,用户先把程序纸带(或卡片)装入输入机,然后启动输入机等待程序和数据送入计算机,接着通过控制台开关启动程序运行。计算完毕,打印机输出计算结果,用户取走并卸下纸带(或卡片)。下一个用户重复相同的操作。

手工操作(姑且可以称为“手工操作系统”)的效率显而易见,十分低,但这与当时计算机的缓慢运算速度符合,所以还不要求配备“自动化的操作系统”。

20世纪50年代后期,随着计算机技术的发展和计算机运算速度的提高,计算机运算与手工操作之间的矛盾日益剧烈,人们迫切需要一个“自动化的操作系统”。

因此,批处理出现了。与此同时,用户的双重身份分离,用户仅作为编写程序的程序猿,另有专门的计算机操作猿为其操作计算机,从而提高工作效率并降低操作失误的概率。

 

所谓批处理,是指操作猿把用户提交的作业分类,并把一批作业编成一个作业执行序列。每一批作业都有专门编制的监督程序(monitor)自动依次处理。

早期的联机批处理:慢速的输入输出设备与主机直接相连(矛盾出现)。这种联机批处理方式虽然解决了作业自动转接的问题,但慢速输入输出设备与快速主机之间处于串行工作,主机CPU在大部分时间将处于等待状态。

脱机批处理:在输入输出设备和主机之间增加卫星机输入/输出带。输入设备通过卫星机将作业输入输入带,进而传输进主机;输出带通过卫星机将作业执行结果输出到输出设备。

卫星机与主机可以并行工作,作业输入后在卫星机中堆积,当主机执行完一个作业后,卫星机才传入下一个作业;主机输出的作业执行结果也在卫星机中堆积,当输出设备打印好一个作业结果后,卫星机才会向其传入下一个作业执行结果。

 

批处理克服了手工操作的缺点,实现了作业的自动过渡;脱机批处理又改善了主机CPU和输入输出设备的使用情况,提高了计算机系统的处理能力。但它仍有些缺点作业磁带需要人工拆装,十分繁琐;另一个更重要的问题是系统的保护

在批处理过程中,监督程序管理着作业的运行,它与系统程序和用户程序之间存在一种调用关系,任何一个环节出问题,整个系统都会停顿。

 

20世纪60年代初期,硬件获得了两方面(即通道中断技术)的进展,推动操作系统进入了执行系统阶段。

通道是一种专用处理部件,它能控制一台或多台输入输出设备工作,负责输入输出设备与主存之间的信息传输;中断是指主机接到外部信号时,马上停止原来的工作,转去处理临时任务,处理完毕后,主机回到原来的断点继续工作。

借助着两种技术,监督程序的功能得到了扩展,称为了常驻内存的执行系统。(监督程序→执行系统)

执行系统显著提高了系统效率,但这时计算机系统运行的特征仍是单道顺序地处理作业。对于以计算为主的作业,输入输出量少,外围设备空闲;而对于以输入输出为主的作业,又会造成主机空闲。因此,如果要进一步提高计算机系统的资源利用率,我们需要实现执行多道程序的计算系统。

 

多道程序系统在宏观上并行,而在微观上串行。内存中同时存放多道相互独立的作业程序,宏观上它们在同时运行,微观上它们是先后占用了输入设备、CPU和输出设备。因为计算机的执行速度较快,所以在用户看来,这几道程序仿佛是同时执行,同时输出:当第一个作业程序占用CPU时,输入设备空闲,这时下一个程序就会进入输入设备,如此类推。

 

在操作系统渐趋成熟的阶段,作业调度管理处理机管理存储器管理外围设备管理文件系统管理等功能相继出现。


 

操作系统的基本类型

 

1. 批处理操作系统

批处理操作系统又称多道批处理操作系统,是一种早期的大型机用操作系统,现代的操作系统大都具有批处理功能。

多道批处理系统的优点是,系统资源被多个作业程序共享,作业之间自动调度执行,大大提高了系统资源的利用率和作业吞吐量。可缺点是没有交互性,用户提交作业后就无法干涉之后的执行过程,且作业周转时间长,用户使用不方便。

虽然计算机内部之间不用互相等待了,但用户需要等待计算机鸭......

 

2. 分时操作系统

为了解决无交互性的问题,满足用户独占并控制计算机的愿望,同时避开独占与资源效率的矛盾,一台计算机可同时连接多个用户终端,而每个用户可在自己的终端上联机使用计算机,就好像自己在独占计算机一样。

分时技术:处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。若某个作业在分配的时间片内不能完成计算,则作业暂时中断,把处理机让给下一个作业使用,等待下一轮继续运行。由于计算机速度很快,给每个用户的感觉就好像他独占了一台计算机。

每个用户可以通过自己的终端向系统发出各种操作控制指令,完成作业执行。

多用户分时操作系统是当今计算机操作系统中最普遍的一类(如UNIX)。

 

3. 实时操作系统

实时操作系统要求计算机对于外来信息能以足够快的速度进行处理,并在被控对象允许时间范围内作出快速响应,其响应时间要求在秒级、毫秒级甚至更小。实时操作系统在嵌入式计算中得到了越来越广泛的应用。

 

4. 通用操作系统

通用操作系统同时兼有多道批处理分时实时处理中两种或以上的功能。例如:

在实时批处理系统中,优先处理实时任务,插空进行批作业处理。实时任务称为前台作业,批作业称为后台作业

在分时批处理系统中,优先保证分时用户,插空进行批作业处理。


 

操作系统功能

 

【硬件】

1. 处理机管理

处理机包括中央处理器主存储器,输入-输出接口,加接外围设备就构成完整的计算机系统。

在单道作业或单用户的情况下,处理机被单独占用,对处理机的管理十分简单。但在多道作业或多用户的情况下,就要解决处理机分配调度策略、分配实施和资源回收等问题——这就是处理机管理。

根据操作系统不同的管理策略,其提供的作业处理方式也不同,例如上面所述的批处理、分时处理和实时处理,于用户而言就有了不同的操作系统。

 

2. 存储管理

存储管理的主要工作是对存储器进行分配、保护和扩充的管理。

(1)内存分配。合理分配内存,使系统软件与用户程序的存储区互不冲突。

(2)存储保护。防止程序之间发生破坏。

(3)内存扩充。结合管理内存与外存,为用户提供比实际内存的容量大得多的虚拟存储器

 

3. 设备管理

(1)根据一定的分配策略,把通道、控制器和输入输出设备分配给请求输入输出操作的程序,并启动设备完成实际的操作。

(2)通过虚拟技术缓冲技术,尽可能发挥设备和主机的并行工作能力。

 

【软件】

4. 文件系统管理

上述三种管理都属于对计算机硬件资源的管理,文件系统管理则是对系统软件资源的管理。

程序和数据统称为文件信息。暂时不用的文件会被存放在外部存储器(如磁盘、磁带或光盘等),我们必须要对这些文件进行管理,否则将会引起文件混乱甚至破坏。

文件的共享保密保护也是文件系统需要解决的问题。

 

【接口】

5. 用户接口管理

上述四种管理是操作系统对资源的管理。除此以外,操作系统还为用户提供方便的手段来使用计算机——接口。接口分为两种:

(1)程序一级:提供一组广义指令用户程序其他系统程序调用。

(2)作业一级:提供一组控制操作命令供用户去组织控制作业的运行。


 

指令的执行与中断

 

计算机提供的最基本功能是执行指令任何应用程序都只有通过指令的执行才能得以完成。

执行指令的基本过程分两步:

(1)处理机从内存读入指令:处理器(单处理器也称CPU)中的程序计数器(PC)内装有下一周期被执行指令的地址。读入指令即是根据PC中地址读入。

(2)执行指令:执行处理器中的指令寄存器(IR)装有待执行的指令。

 

在指令的执行过程中或结束时,如果处理机收到中断信号,它会优先处理紧急事件,处理完毕后再返回中断时保存的执行现场(即处理器中各寄存器的值)继续执行指令。


 

路过的圈毛君:“这一篇写得貌似比较赶,要是有哪些地方没讲清楚,欢迎大家在评论区说一下哇_(:з」∠)_”

 

没有更多推荐了,返回首页