资源预览内容
第1页 / 共31页
第2页 / 共31页
第3页 / 共31页
第4页 / 共31页
第5页 / 共31页
第6页 / 共31页
第7页 / 共31页
第8页 / 共31页
第9页 / 共31页
第10页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1.5 Linux操作系统概述1.5.1 Linux的起源的历史Linux是Internet的产物Linus利用MINIX开发了两个进程用以写/读数据,并以此 为契机添加硬盘驱动程序、小型文件系统以至形成了 Linux的雏型Linus将这个雏型放在校园网上征求大家的意见。Linux 从一开始就是一个以编程爱好为主的系统。最初是由芬兰的赫尔辛基大学的计算机系二年级学生 Linus Torvalds编写的他还在读大二时,因不满学校服务器一次只能接待16人 上网,于是自己开始在MINIX的平台上开发程序MINIX是杰出的计算机 科学教育学家安德鲁 S坦尼鲍姆( Andrews Tanenbaum)自行设 计的微型UNIX,是专 门用于教学、科研的 操作系统其出发点在于: 1. 核心程序的开发; 2.对用户系统支持。这就为那些对操作系 统怀有强烈认识、了 解欲望的人们提供了 一个学习的机会。1在Linus的主持开发下,一个由广大爱好操作系统的网民 们共同扶持的新型操作系统问世了,这就是闻名于世的 Linux操作系统。 1.5.2 Linux的特点几乎所有在其它UNIX操作系统的实现上所能找 到的功能。还包括一些UNIX系统的 其他实现版本上没有 的功能。Linux 操作系 统的支 持2Linux可以支持各种类型的文件系统。多任务、多用户的32位操作系统。Linux支持UNIX的全部功能,而价格比UNIX 系统更为便宜。Linux提供了TCP/IP 网络协议的完备实现,同 时也支持完备的TCP/IP客户与服务器功能。支持广泛的硬件。丰富的软件支持。强大的网络通信功能。独特的内核机制。L I N U X 的 特 点比较linux系统与windows 系统的特点263Linux系统的体系结构如图1-4所示41.5.3 Linux的基本结构1. Linux系统的体系结构(1) 用户应用程序(2) 操作系统服务(3) 系统调用接口(4) Linux内核(5) 硬件平台2、当一个用户程序在Linux系统 之上运行时,它成为一个用户进 程。1、用户应用程序是运行在Linux 系统最高层的一个庞大的软件集 合。3、该层对应不同的应用程序, 如字处理程序、网络浏览器等。51、通常被看作操作系统的一个 部分,如视窗系统、Shell等。2、还包括同内核的程序接口,如编译工具和库等。(1) 用户应用程序(2) 操作系统服务(3) 系统调用接口(4) Linux内核(5) 硬件平台1.5.3 Linux的基本结构1. Linux系统的体系结构6(1) 用户应用程序(2) 操作系统服务(3) 系统调用接口(4) Linux内核(5) 硬件平台1.5.3 Linux的基本结构1. Linux系统的体系结构在应用程序中,可通过系统调用 来调用操作系统内核中特定的过 程,以实现特定的服务。例如,在程序中安排一条创 建进程的系统调用,则操作 系统内核便会为之创建一个 新进程。7(1) 用户应用程序(2) 操作系统服务(3) 系统调用接口(4) Linux内核(5) 硬件平台1.5.3 Linux的基本结构1. Linux系统的体系结构内核实际是抽象的资源操作到 具体硬件操作细节之间的接口。这是本课程要介绍的重点。 内核是操作系统的灵魂,它负责 管理磁盘上的文件、内存,负责 启动并运行程序,负责从网络上 接收和发送数据包等。8(1) 用户应用程序(2) 操作系统服务(3) 系统调用接口(4) Linux内核(5) 硬件平台1.5.3 Linux的基本结构1. Linux系统的体系结构这一层包括了Linux安装时需要的所有可能的物理设备。1、CPU 2、内存 3、硬盘 4、网络硬件92.4 Linux的用户接口LinuxDOS/Windows自由软件操作系统将内核与用户接口分离 开来Linux有shell为用户接口又有X-Window为窗口 管理系统商业软件操作系统将内核与用户接口融为一体DOS的用户界面是命令行Windows是图形窗口Linux 与 windows的区别shell既是命令行解释程序 ,也是强大的编程语言, 为用户提供编程工具X-Window是建立在客户-服务 器模型基础上的,基于网络 协议的一个窗口管理系统102.4.1 Linux的外壳shellshell的中文含义是“壳”在Linux的任意版本中都沿用了UNIX的Shell“外壳”而不同版本的Linux或UNIX都有不同的shell也即shell有多种:sh,bash,tesh,cshs Sh-Bourne shell -在众多的shell中,最早出现, 也是最早UNIX shellLinux事实上是采用了Bourne shell的一个变种,也叫Bash shell作为默认的shell。以“%”做提示符C shell -是美国加利福尼亚大学的Bill Joy开发的,他考虑到用户界面的友好性。以“$”做提示符11C shell的编程接口不如Bourne shell,但却支持Bourne shell 不支持的许多命令 Linux提供的Tesh是C shell的一个扩展版本。 shell从功能上- 是一个命令语言解释器,拥有自己内建的shell命令集。shell -还能被Linux系统中其它有效的实用程序和应用程序所调用。shell - 在成功的登录进入系统并启动后,将始终作为与系统内核的交互手段一直到退出系统,系统上的每位用户都拥有一个缺省的 shell,路径为/etc/passwd的文件被指定12shell执行命令解释程序的过程是这样的:用户键入一条命令N调命令解释程 序分析和分解分解成系统调用调用内核响应 机制YYN显示出错信息并 返回Shell状态该命令是否 是内部命令在搜索路径中查是 否是一个应用程序13l除了shell界面以外,Linux还配有图形窗口界面,这 就是Xwindow系统。lX window系统本身就是一个客户机服务系统,服务器 显示运行在客户机的程序中。l服务程序与客户程序之间借助X通信协议进行通信。lX window系统最基本的部分(也称为 SEVER)只提供 最基本的窗口功能l如建立窗口、在窗口中写入文字或画图形、控制键盘 和鼠标的输入和取消窗口等l即它不提供用户界面,而只提供建立界面的基本结构l 其余的大部分关于窗口的操作由窗口管理器来处理l窗口管理器是和核心相分离的一个特殊的客户程序l可以改变包括缩放、移动、关闭窗口的方法以及启动 程序的方法2.4.2 X windowLinux的图形窗口界面14X Window和MS Windows不同之处l鼠标操作不同l界面和窗口形状不同l而最大 区别在于:lX Window 具有灵活的界面l各个界面之间是完全不同的l这主要归功于它的窗口管理器l这可是MS Windows中所没有的。lX Window可以通过窗口管理器:生成多个界面lMS Windows中只有一套界面操作方式lX Window的各个界面之间是完全不同的lMS Windows通过定制工具改变界面,界面差异很细微15X Window 和 MS Windows相似的地方:l两者都使用图形界面;l都主要通过鼠标操作来配合键盘完成任务;l都可以处理多个窗口;l都可以建立窗体、菜单和对话框等。16Linux是一个多任务的开放系统,进程就是许多分离的任 务(Task)。每一个进程都有一定功能和权限,运行自己的虚 拟地址空间的程序。它们彼此独立,并通过进程间的通信机 制实现进程之间的同步与互斥。Linux通过进程调度程序在多 个进程之间实现合理的调度。在Linux系统中,进程与任务是 相同的概念。Linux中,进程被定义为进程映象(Process Image)的执 行。这里的进程映象即为进程的实体部分,它由正文段 (Text)、用户数据段(User Segment)以及系统数据段(System Segment)组成,从而形成了进程的一个执行环境。3.9 Linux的进程管理1. Linux的进程和进程组成3.9.1 Linux的进程17在Intel386体系结构中,Linux利用其保护模式、特权级 等特征,把每个进程分为内核态(特权级0)和用户态(特权级3) 两种级别。中断和系统调用是内核态向用户态提供服务的重要 途径。图3.33 Linux进程的组成进 程正文段 (共享代码)用户数据段系统数据段程 序程序是由一组指令和数据组成的静态的概念,而进程则 是由正文段、用户数据段和系统数据段组织在一起的动态实 体。Linux的进程组成如图3.33所示。182. Linux的进程调度Linux内核的进程调度程序按照一定的策略来选择最应该 在CPU上运行的进程,并通过不断地保存和恢复进程的运行环 境,使得进程能得以占有CPU,运行完毕。通常,由于系统中 只有一个CPU,当然也可以有多个CPU(Linux支持SMP对称多 处理机),而系统中进程的数量远远多于CPU的数量,为了提高 CPU的利用率,Linux采用了一系列的调度策略来保证公平和高 效。Linux的进程调度分为实时进程调度和普通进程调度两种 。Linux的进程调度操作由schedule()函数完成。这是一个 只在内核态运行的函数,函数代码为所有进程共享。任何进程 ,当它从系统调用返回时,都会转入schedule(),重新进行调 度,或者,当中断产生时,大多数的中断服务程序在完成各自 的中断处理后,也会转入schedule()。193. Linux进程的生命周期Linux中,当用户打入shell命令,要求执行一个命令文 件,要求执行一个命令文件或运行各种应用程序时,操作系 统就为每个程序建立一个运行环境,从而形成进程的动态实 体,此即创建了进程。当进程调度程序选中了该进程后,为 其恢复现场,进程就在CPU上开始了运行。随着程序中指令的执行,进程实体也在动态地变化,例 如寄存器的值、用以保存各种临时数据(传递给函数的参数、 函数调用的返回地址、函数中的变量等)的堆栈、打开文件的 数量等等。进程在运行中也可以放弃原有的正文段,而连入 新的正文段,也可以扩大或缩小自己用户数据段的长度。进 程执行环境的动态变化充分表明进程是动态的执行活动。20*3-9-2 Linux的进程控制块进程运行完自己的正文段后,就进入消亡状态。此时,进 程将释放所占用的系统资源,唤醒其父进程为其善后处理,从 而结束了进程的生命周期。进程在运行中,还需申请其他的系统资源。为了运行它的 指令,要得到CPU、要申请物理内存来存放进程的实体、通过 文件系统来打开、读写和关闭文件、还要申请使用各种系统的 外部设备。进程的资源请求均由Linux的各种资源管理子系统 来实现。这些资源管理子系统通过各种资源的管理策略,满足 进程对资源的共享,提高资源的使用效率。进程控制块(PCB)是进程抽象化的数据表示。操作系统根据 PCB而感知一个进程的存在并对进程进行控制和管理。Linux中 ,每一个进程都由一个task_struct数据结构来描述,此即为进 程的PCB,其中记录了进程的所有的控制和管理信息。211. 进程的标识信息(Process Identifiers) 2. 进程的调度状态信息(state) 3. 进程的调度信息(scheduling) 4. 进程的家族信息及链接信息 5. 时间和定时器信息(Times and Timers) 6. 进程通信信息(IPC,Inter-Process Communication) 7. 文件系统信息(File System) 8. 虚拟内存信息(Virtual Memory) 9. 页面管理信息(Page Management) 10. 对称多处理器(SMP)信息 11. 其他信息进程控制块的信息包括:task_struct结构是Linux系统对进程进行控制的唯一最 有效的手段。22在进程的生命周期内,进程所
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号