操作系统原理-用户界面_第1页
操作系统原理-用户界面_第2页
操作系统原理-用户界面_第3页
操作系统原理-用户界面_第4页
操作系统原理-用户界面_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用户界面用户界面教学内容用户环境 用户界面概念 操作界面 系统调用教学重点操作界面 系统调用教学难点系统调用Linux系统调用机制3.1用户环境 3.1用户环境 用户环境用户环境是指计算机用户工作的软件环境,包括命令行环境,桌面环境,以及相关的用户使用手册。用户环境的构造是指按照用户的要求和硬件特性,安装和配置好操作系统,为用户提供必要的操作命令或图形界面,并使其工作方式和交互方式合理高效,方便用户使用计算机完成相应的工作。3.2用户界面概念 3.2用户界面概念 用户界面用户界面(UserInterface,UI)是用户与操作系统内核进行交互和信息交换的媒介。用户界面分为两大类操作界面和系统调用用户、用户界面、操作系统内核与计算机硬件四者的关系3.2用户界面概念 1.操作界面用户通过操作界面可以直接或间接地控制自己的作业或获得操作系统提供的服务。操作界面包括操作命令、批处理命令和图形用户界面三种典型形式。2.系统调用系统调用是提供给程序员在编程时使用的接口,是用户程序取得操作系统服务的唯一途径。3.3操作界面3.3操作界面教学内容操作命令重定向和管道命令 批处理程序命令 图形用户界面 Shell Shell脚本程序教学重点3.3.1操作命令3.3.1操作命令操作命令操作命令又称交互式命令,其中,操作命令除了可以直接在命令行上输入使用,还有管道和重定向这两种特殊执行方式。在Linux、UNIX系列操作系统中,操作命令在一个称为Shell的控制台环境下运行。3.3.2重定向和管道命令3.3.2重定向和管道命令重定向和管道命令都属于特殊的操作命令。操作系统定义了两个标准输入和输出设备。各种程序以键盘作为标准输入设备,以显示器作为标准输出设备,即任何命令的输入默认来自“键盘”,任何命令的输出(含错误)默认送往“显示器”。重定向重定向即把命令默认的输入来源或输出方向修改为其他设备(或其他文件,设备视同文件)。重定向分为输入重定向和输出重定向两种,分别用“<”及“>”表示。3.3.2重定向和管道命令输出重定向的基本格式Command-Line>file或设备命令Command-Line的执行结果(标准输出,或者错误输出,本来都要打印到屏幕上面)被重定向到指定的普通文件file或其他输出设备上(含打印机设备)。输入重定向的基本格式Command-Line<file或文件操作符或设备命令Command-Line需要输入参数,其参数将从file或文件操作符或设备中获取,而不是从键盘获取。3.3.2重定向和管道命令重定向操作符号及其含义类别操作符说明输入重定向<

将命令输入由默认的键盘更改或重定向为指定的文件输出重定向>

将命令输出由默认的显示器更改或重定向为指定的文件>>

将命令输出重定向并追加到指定文件的末尾错误重定向2>将命令的错误输出重定向为指定文件(先清空)2>>将命令的错误输出重定向为指定文件(追加到末尾)输出与错误组合重定向&>将命令的正常输出和错误输出重定向为指定文件。3.3.2重定向和管道命令管道管道命令本质上是两条或更多条输入输出重定向命令的综合应用。管道命令可以将多条相关命令有序连接起来,把第一条命令的输出信息作为第二条命令的输入信息,同时,又把第二条命令的输出信息作为第三条命令的输入信息。相关的多条命令就在逻辑上形成一条信息传递和处理的管道。3.3.3批处理程序命令3.3.3批处理程序命令批处理命令批处理命令通过类似程序的方式执行具有一定逻辑顺序的命令序列。在MS-DOS和Windows以bat为扩展名在Linux、UNIX中,批处理又称为脚本(Script)。狭义上,批处理仅指Windows和DOS批处理命令。批处理按规定逻辑顺序自动执行若干个指定的DOS命令或程序。批处理把原来在控制台上需要逐个输入和执行的命令汇总起来,按一定的逻辑顺序(可以是顺序或选择或跳转或循环)成批地执行,可以避免反复输入命令的麻烦。3.3.3批处理程序命令使用批处理程序求1~100所有整数和并将其输出3.3.3批处理程序命令帮助程序员编译驱动程序的批处理程序例子3.3.3批处理程序命令PowerShelPowerShell是微软公司为Windows设计的新的命令行程序,支持交互式提示和脚本环境,它们可以独立使用也可以交互使用。3.3.4图形用户界面 3.3.4图形用户界面 图形用户界面图形用户界面(GraphicalUserInterface,GUI)采用了图形化的操作界面,用户已完全不必像使用命令接口那样去记住命令名及格式,从而把用户从烦琐且单调的操作中解脱出来。设计良好的图形用户界面好的UI设计遵循的准则:风格一致性设计原则、布局具有逻辑性原则、具有启示性设计原则、应遵循习惯性原则等。3.3.5Shell 3.3.5Shell Shell,俗称壳(用来区别于内核)Shell是操作系统与用户交互的重要操作界面之一。Shell负责接收用户的命令和参数,然后通过操作系统调用相应的应用程序完成命令所要求的功能,并把结果以合适的方式展示给用户。Shell本身不执行命令,仅仅具有管理命令和展示命令结果的功能。3.3.5Shell Shell的主要类型UNIX或Linux环境下的sh、csh、ksh和bashWindows环境下的PowerShell大多数Linux都以bash作为默认的Shell3.3.5Shell Shell的主要功能命令行编辑功能历史命令功能命令别名功能命令和文件名补全功能重定向和管道操作功能脚本程序命令功能3.3.6Shell脚本程序3.3.6Shell脚本程序脚本程序脚本程序通过类似程序的方式执行具有一定逻辑顺序的命令序列来完成较复杂的功能和人机交互。脚本程序保存在文本文件中,是一系列Shell命令语句的集合。脚本程序有变量、关键字,有各种控制语句,如if、case、while、for等语句,支持函数,有特定的语法结构。3.3.6Shell脚本程序脚本程序的例子用于向系统安装一个软件包,安装过程主要包括解压、配置、删除临时文件等工作。3.3.6Shell脚本程序脚本程序的基本格式脚本程序保存在文本文件中,扩展名可取为.sh(sh代表Shell脚本程序的首行#!/bin/bash告诉系统这个脚本程序需要什么类型的Shell解释器来执行。脚本程序执行时,从第一行开始,按逻辑逐行分析和执行命令。凡是能够在Shell下直接执行的命令,都可以在脚本中使用。脚本中还可以使用一些不能在Shell下直接执行的语句。3.3.6Shell脚本程序脚本程序的运行方式(1)将脚本程序作为程序运行,在命令行直接输入脚本文件名字在脚本中为当前脚本指定特定的Shell,需要在脚本文件的开头增加如下一行代码:#!/bin/bash(2)将脚本文件名作为参数传递给特定的Shell解释器,用特定Shell解释执行。#/bin/bashtest.sh3.3.6Shell脚本程序键盘输入和屏幕输出键盘输入可以使用read命令,向屏幕输出则可使用echo命令。查询指定软件包是否安装的脚本例子3.4系统调用 3.4系统调用 教学内容系统调用概念 系统调用工作原理 Linux系统调用机制 Linux系统调用实现教学重点3.4.1系统调用概念 3.4.1系统调用概念 系统调用系统调用(SystemServiceCall,SystemCall)是操作系统内核为应用程序提供的服务,是应用程序与操作系统之间的接口。系统调用一般涉及核心资源或硬件的操作,运行于核态。每个系统调用具有唯一的编号。调用系统调用的过程会产生中断,这种中断是自愿中断,即是软件中断,也是内部中断。系统调用用户程序调用sys_foo()函数,但是该函数却是在内核中真正实现的。当然,sys_foo()函数能从用户空间穿越到内核空间,显然该过程利用了中断机制,产生了中断。3.4.2系统调用工作原理3.4.2系统调用工作原理系统调用工作原理内核中预先设计了一系列系统调用,每个系统调用都有唯一的编号,以区别彼此。应用程序通过形如SVCN的访管指令调用第N号调用,调用过程中发生了中断。3.4.2系统调用工作原理系统调用工作原理(1)应用程序使用SVCX准备调用第X号系统调用。(2)内核识别并响应SVCX指令引起的中断。(3)系统执行保护现场。(4)根据系统调用编号X在系统调用入口地址表中查找相应的入口地址。(5)转入相应的系统调用函数。(6)恢复现场数据。(7)返回应用程序。3.4.2系统调用工作原理系统调用工作原理在DOS操作系统中,使用INT21H触发软件中断,使用相应的系统调用;在Linux操作系统中,使用INT80H触发软件中断,使用相应的系统调用。3.4.2系统调用工作原理常用DOS系统调用(INT21H)AH功能调用参数返回参数01键盘输入且回显

AL=输入字符02显示输出DL=输出字符

03异步通信输入

AL=输入数据04异步通信输出DL=输出数据

05打印机输出DL=输出字符

07键盘输入无回显

AL=输入字符09显示字符串DS:DX=串地址'$'结束字符串

0F打开文件DS:DX=FCB首地址AL=00文件找到AL=FF文件未找到10关闭文件DS:DX=FCB首地址AL=00目录修改成功AL=FF目录中未找到文件13删除文件DS:DX=FCB首地址AL=00删除成功AL=FF未找到3D打开文件DS:DX=ASCII串地址AL=0读AL=1写AL=3读/写成功:AX=文件号错误:AX=错误码3E关闭文件BX=文件号失败:AX=错误码3.4.2系统调用工作原理DOS操作系统下调用系统调用的过程(1)给出系统调用的编号。系统调用编号写入AH寄存器中。(2)给出相关的入口参数。参数写入相关的寄存器中。(3)INT21H。该指令真正触发系统调用。3.4.2系统调用工作原理DOS操作系统下调用系统调用的例子利用DOS的INT21H的9号系统调用向屏幕输出一个字符串,并在最后的第14行利用4CH号系统调用退出程序,返回DOS命令行状态。3.4.2系统调用工作原理Linux操作系统下调用系统调用的例子Linux中使用80H号中断实现系统调用表3-4列出了Linux的部分系统调用在EAX寄存器中提供系统调用的编号,其余的参数在BX、CX、DX等寄存器中存放。3.4.2系统调用工作原理常用Linux系统调用(INT80H)编号名称功能调用参数00setup安装根文件系统EBX=硬盘参数表地址01exit退出进程EBX=退出码02fork创建进程

03read读文件EBX=文件描述符,ECX=缓冲区首址,EDX=字节数04write写文件EBX=文件描述符,ECX=缓冲区首址,EDX=字节数05open打开文件EBX=文件名,ECX=打开标志,EDX=属性06close关闭文件EBX=文件描述符07waitpid等待进程终止EBX=进程ID,ECX=返回状态地址,EDX=选项0bexecve执行程序EBX=文件名,ECX=argv指针,EDX=envp指针0cchdir更改当前目录EBX=目录名0dtime获取当前时间EBX=时区0fchmod修改文件属性EBX=文件名,ECX=文件属性14getpid取进程ID

17setuid设置进程用户IDEBX=用户ID18getuid获取进程用户ID

3.4.2系统调用工作原理Linux操作系统下调用系统调用的例子write系统调用(内部的名称是sys_write)的编号是4,编号被存在EAX寄存器中。3.4.3Linux系统调用机制3.4.3Linux系统调用机制Linux系统调用机制系统调用都具有唯一的功能号。这些功能号被定义在文件include/unistd.h中。read系统调用的功能号是3,定义为符号__NR_read。系统调用处理函数指针数组表sys_call_table[]read系统调用的处理函数指针位于sys_call_table[3]处。3.4.3Lin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论