操作系统用户接口
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
UNIX上有许多种shell,主要功能是相同的,在细节上有一 些区别。几种shell 都有它们的优点和缺点。
Bourne shell(/bin/sh)
Bourne shell 的作者是 Steven Bourne。它是 UNIX 最初使用的 shell 并且在每种 UNIX 上都可以使用。Bourne shell 在 shell 编 程方面相当优秀,但在处理与用户的交互方面作得不如其他几种 shell。 Bourne shell 最大的缺点在于它处理用户的输入方面。在 Bourne shell 里键入命令会很麻烦,尤其当你键入很多相似的命令时。
命令格式:一个命令可Leabharlann Baidu命令参数,格式包括选项/
开关 (option/switch)或参数(argument)。
如UNIX系统: cp -r doc /tmp--argv[0], argv[1], ...(含子目录的文件复制:/tmp为目标地址)
3
命令分类:内部命令和外部命令 内部命令:直接由shell本身完成,功能简单、使用频繁;如: DOS的copy命令。 外部命令:运行相应的可执行文件,在使用时加载。如: DOS的xcopy命令。 命令简化:利用参数替换可简化命令输入,通配符(?, *)用于 匹配一组文件名 如:UNIX的cp命令:当前目录上有两个"1.tar"和"2.tar"时, "cp *.tar /tmp"等同于"cp 1.tar /tmp; cp 2.tar /tmp"
如:"ls -l | wc -l"可给出文件数目。 如:“cat sample.text | grep "High" | wc -l” 这个管道将把 cat 命令(列出一个文件的内容)的输出 送给grep命令。 grep 命令在输入里查找单词 High,grep命令的输出则 是所有包含单词 High的行,这个输出又被送给 wc命令。 带 -l选项的 wc命令将统计输入里的行数。
转表,跳转到相应功能的过程。
保护CPU现场(将PC与PSW入栈),改变CPU执行状态 (处理机状态字PSW切换,地址空间表切换) 将参数取到核心空间
执行操作系统内部代码;
执行iret指令:将执行结果装入适当位置(类似于
参数带入),恢复CPU现场(以栈顶内容置PSW和 PC)。
24
7.3.3 系统调用的分类
8
Korn shell (ksh) Korn shell (ksh) 由 Dave Korn 所写。它集合了C shell 和 Bourne shell 的优点并且和 Bourne shell 完全兼容。 Bourne Again shell (bash) Bourne Again shell (bash)是 Bourne shell 的扩展。 bash 与 Bourne shell 完全向后兼容,并且在 Bourne shell 的基础上增加和增强了很多特性。bash 也包含了很 多 C 和 Korn shell 里的优点。bash 有很灵活和强大的 编程接口,同时又有很友好的用户界面。 bash 有几种特 性使命令的输入变得更容易。 其他shell 除了这些 shell 以外,许多其他的 shell 程序吸收了这些 原来的 shell 程序的优点而成为新的 shell 。如: tcsh (csh 的扩展) Public Domain Korn shell (pdksh, ksh 的扩展)
将系统的功能分为两部分: 系统自身所需要的 作为服务提供给用户的
OS的系统调用: 进程控制类系统调用 文件操作类系统调用 进程通信类系统调用 设备管理类系统调用 信息维护类系统调用
25
进程管理
26
文件管理
27
目录管理
28
其他
29
7.4 图形用户接口 (GUI, GRAPHIC USER INTERFACE)
4
2. 环境变量
环境变量(environment variable)--应用进程地址空间中的特 殊变量区。
环境变量也可以作为shell参数,如命令提示符的式
样,外部命令的查找目录路径等。
如:PATH=/bin:/usr/bin:/usr/sbin:. HOME=/home/thisuser
环境变量是传递命令参数的另一种途径。如: cd $HOME;
16
7.2.2. 批处理
批处理命令: 针对脱机用户操作和大量顺序操作功能而设计 批处理命令可以是专门的命令,也可是系统的 基本命令;还有有关的语法结构,循环、分支、 转移、判别等,构成一套特殊的命令语言
17
7.3 系统调用(SYSTEM CALL)
系统调用是操作系统提供给软件开发人员的唯 一接口,开发人员可利用它使用系统功能。OS核心 中都有一组实现系统功能的过程(子程序),系统调 用就是对上述过程的调用。
22
用户程序
陷入处理机构 入口地址表 (1)保护处理 现场 A0
系统子程序 A0 A1
Sub1 Sub0
system call
(2)取系统调 用功能号并 寻找子程序 入口 (3)返回
A1 Ai
Ai
Subi
An
An
Subn
系统调用的处理过程
23
设置系统调用号和参数。 调用号作为指令的一部分(如早期UNIX),或装入到特 定寄存器里(如:DOS int 21h,AH=调用号。) 参数装入到特定寄存器里,或以寄存器指针指向参数表 (内存区域)。 执行trap(int)指令:入口的一般性处理,查入口跳
第七章 操作系统用户接口
在这一章中,我们讨论OS向上提供的用 户接口,即系统命令接口和系统调用接 口。系统命令接口可完成用户作业的组 织和控制。系统调用接口向编程人员提 供API
1
7.1 联机用户接口
• 接口分为脱机接口和联机接口 •脱机接口:用户输入作业说明书,整个作业的运行由系统 控制。 • 联机接口: •通过人-机会话方式控制作业运行。用户登录(控制台登录 或远程登录),由系统自动执行一些命令脚本后,并进入 shell(字符或GUI界面),接受用户的命令和操作,最后退 出系统。 • 命令 :分为命令行方式和批命令方式
环境变量可按名字访问,可以新建、赋值或撤销。
5
7.2 UNIX的作业管理
shell命令处理程序 shell批处理
6
7.2.1 shell命令处理程序
1. shell的类型 2. 初始化文件 3. 基本特征 4. 输入输出重定向 5. 管道 6. 后台执行 7. 别名 8. 常用的外部命令
7
1. shell的类型
13
6. 后台执行
后台执行:cmd &;
如:"xterm -display 202.205.84.56:0.0 &"
为在后台启动一个xterm窗口,并显示到主 机202.205.84.56上。
14
7. 别名
给复杂命令定义别名:alias/unalias alias 的格式: alias aliasname=string …. 把 aliasname 直接用来取代后面的 string ,如 有任何跟在后面的 argument 将会出现的其 后。利用该功能,使用者可以将常用却冗长 的指令以其他的名字存起。 如:"alias dir='ls -a -l'"为"ls -a -l"定义了一个 别名"dir";
7.3.1 系统调用及其功能 7.3.2 系统调用的实现过程 7.3.3系统调用的分类
18
7.3.1 系统调用及其功能
每个操作系统都提供几百种系统调用,包括:外存文件与目录 的读写,各种I/O设备的使用,在程序中启动另一个程序,查 询和统计系统资源使用情况等等。
实际上系统调用语句本身是硬件提供的(机器指令),但其所 调用的功能是操作系统提供的。每种机器的机器指令集中都有 一条系统调用指令。
9
2. 初始化文件
B Shell执行.profile C Shell执行.cshrc和.login两个文件 K Shell执行.profile和$ENV两个文件 (sh) .profile与(csh) .login对应,进行
注册时的初始化;而在csh在非注册启动 时都读入.cshrc;
在命令行方式下,用户与操作系统的交互要求用户记 忆命令格式。在图形用户接口方式下,用户可利用鼠 标对屏幕上的图标进行操作,完成与操作系统的交互, 从而减少记忆内容,方便用户使用。它的技术基础是 高分辩显示器和鼠标。 (1)窗口系统(window system)的特点 (2)窗口系统的图形元素及其状态 (3)窗口管理器(window manager) (4)例子
2
1. 命令行
命令行:一行可有一个或多个命令,每次一行,包
含一个或多个命令。
shell给出提示符时可输入,以回车键提交。如: “ls -al”列出当前目录文件列表; "gunzip mp1.tar.gz; tar -xvf mp1.tar; \rm -r -f mp1.tar"为解压缩后再展开。
11
4. 输入输出重定向
基于内核的缓冲区
"<"为标准输入重定向;
">"和">>"为标准输出重定向;
行输入重定向:
用定界符间的内容作为标准输入。 如:下面命令的标准输入为cat命令的输入。
cat << WARNING ... WARNING
12
5. 管道
•管道可以把一系列命令连接起来。
• 第一个命令的输出会通过管道传给第二个命令而作为第二个命令的 输入 • 第二个命令的输出又会作为第三个命令的输入,以此类推。 • 管道行中最后一个命令的输出才会显示在屏幕上(如果命令行里使 用了输出重定向的话,将会放进一个文件里)。 • 通过管道,可以将多个简单程序组合完成复杂的功能。
C shell(/bin/csh)
C shell 由 Bill Joy 所写,它更多的考虑了用户界面的友好性。它 支持象命令补齐(command-line completion)等一些 Bourne shell 所不支持的特性。 普遍认为C shell 的编程接口做的不如 Bourne shell, 但 C shell 被很多 C 程序员使用因为 C shell的语法和 C语言的很相似,这也 是C shell名称的由来。
21
7.3.2系统调用的处理过程(续2)
必须为实现系统调用功能的子程序编造入口地址表 每个入口地址与相应的系统程序名对应 陷入处理程序把陷入指令包含功能号与入口地址表有关项对
应, 系统调用功能号驱动有关子程序执行 在系统调用处理结束之后,用户程序需利用系统调用返回结 果继续执行 保护现场: 在进入系统调用处理之前,陷入处理机构还需保存处理机现 场 在系统调用处理结束之后,要恢复处理机现场,现场被保护 在特定的内存区或寄存器中
10
3. 基本特征
内部命令:如cd, exec――区分大小写,exec
的功能是执行一个命令; 外部命令:如ls, mkdir 命令行选项通常是:-option 如:"ls -a -l"中的-a表示列出所有文件,-l表示
列出所有信息。
通配符:由shell处理后再传递给外部命令。 如:cat *.c 则argv[1]=“a.c”, argv[2]=“b.c”, 而 cat “*.c” 则argv[1]=“*.c”(cat的功能是读入 所有文件,并显示)
19
7.3.2 系统调用的处理过程
系统调用的例子
汇编程序例子:打印5个字符 方法1:调用DOS功能 MOVE A, PARA1 MOVE B, PARA2 INT 21H
20
7.3.2 系统调用的处理过程(续1)
在系统中为控制系统调用服务的机构称为陷入 (TRAP)或异常处理机构 相对应,把由于系统调用引起处理机中断的指令称为 陷入或异常指令(或称访管指令) 在操作系统中,每个系统调用都对应一个事先给定的 功能号,例如0、1、2、3等 在陷入指令中必须包括对应系统调用的功能号 而且,在有些陷入指令中,还带有传给陷入处理机构 和内部处理程序的有关参数
15
8. 常用的外部命令
man查看手册 echo, wc, grep, sed, awk(用于文本扫描和处
理), sort, cut(对每行进行特定删除处理)字符 串操作; pwd, ls, mkdir, rmdir, cp, rm, mv, ln文件和目 录操作; chmod, chown, chgrp(修改文件所在的用户组) 文件权限和属主; cat, more, tail(显示文件的最后部分)查看文件; test, expr检测和数值计算; vi全屏幕编辑;
Bourne shell(/bin/sh)
Bourne shell 的作者是 Steven Bourne。它是 UNIX 最初使用的 shell 并且在每种 UNIX 上都可以使用。Bourne shell 在 shell 编 程方面相当优秀,但在处理与用户的交互方面作得不如其他几种 shell。 Bourne shell 最大的缺点在于它处理用户的输入方面。在 Bourne shell 里键入命令会很麻烦,尤其当你键入很多相似的命令时。
命令格式:一个命令可Leabharlann Baidu命令参数,格式包括选项/
开关 (option/switch)或参数(argument)。
如UNIX系统: cp -r doc /tmp--argv[0], argv[1], ...(含子目录的文件复制:/tmp为目标地址)
3
命令分类:内部命令和外部命令 内部命令:直接由shell本身完成,功能简单、使用频繁;如: DOS的copy命令。 外部命令:运行相应的可执行文件,在使用时加载。如: DOS的xcopy命令。 命令简化:利用参数替换可简化命令输入,通配符(?, *)用于 匹配一组文件名 如:UNIX的cp命令:当前目录上有两个"1.tar"和"2.tar"时, "cp *.tar /tmp"等同于"cp 1.tar /tmp; cp 2.tar /tmp"
如:"ls -l | wc -l"可给出文件数目。 如:“cat sample.text | grep "High" | wc -l” 这个管道将把 cat 命令(列出一个文件的内容)的输出 送给grep命令。 grep 命令在输入里查找单词 High,grep命令的输出则 是所有包含单词 High的行,这个输出又被送给 wc命令。 带 -l选项的 wc命令将统计输入里的行数。
转表,跳转到相应功能的过程。
保护CPU现场(将PC与PSW入栈),改变CPU执行状态 (处理机状态字PSW切换,地址空间表切换) 将参数取到核心空间
执行操作系统内部代码;
执行iret指令:将执行结果装入适当位置(类似于
参数带入),恢复CPU现场(以栈顶内容置PSW和 PC)。
24
7.3.3 系统调用的分类
8
Korn shell (ksh) Korn shell (ksh) 由 Dave Korn 所写。它集合了C shell 和 Bourne shell 的优点并且和 Bourne shell 完全兼容。 Bourne Again shell (bash) Bourne Again shell (bash)是 Bourne shell 的扩展。 bash 与 Bourne shell 完全向后兼容,并且在 Bourne shell 的基础上增加和增强了很多特性。bash 也包含了很 多 C 和 Korn shell 里的优点。bash 有很灵活和强大的 编程接口,同时又有很友好的用户界面。 bash 有几种特 性使命令的输入变得更容易。 其他shell 除了这些 shell 以外,许多其他的 shell 程序吸收了这些 原来的 shell 程序的优点而成为新的 shell 。如: tcsh (csh 的扩展) Public Domain Korn shell (pdksh, ksh 的扩展)
将系统的功能分为两部分: 系统自身所需要的 作为服务提供给用户的
OS的系统调用: 进程控制类系统调用 文件操作类系统调用 进程通信类系统调用 设备管理类系统调用 信息维护类系统调用
25
进程管理
26
文件管理
27
目录管理
28
其他
29
7.4 图形用户接口 (GUI, GRAPHIC USER INTERFACE)
4
2. 环境变量
环境变量(environment variable)--应用进程地址空间中的特 殊变量区。
环境变量也可以作为shell参数,如命令提示符的式
样,外部命令的查找目录路径等。
如:PATH=/bin:/usr/bin:/usr/sbin:. HOME=/home/thisuser
环境变量是传递命令参数的另一种途径。如: cd $HOME;
16
7.2.2. 批处理
批处理命令: 针对脱机用户操作和大量顺序操作功能而设计 批处理命令可以是专门的命令,也可是系统的 基本命令;还有有关的语法结构,循环、分支、 转移、判别等,构成一套特殊的命令语言
17
7.3 系统调用(SYSTEM CALL)
系统调用是操作系统提供给软件开发人员的唯 一接口,开发人员可利用它使用系统功能。OS核心 中都有一组实现系统功能的过程(子程序),系统调 用就是对上述过程的调用。
22
用户程序
陷入处理机构 入口地址表 (1)保护处理 现场 A0
系统子程序 A0 A1
Sub1 Sub0
system call
(2)取系统调 用功能号并 寻找子程序 入口 (3)返回
A1 Ai
Ai
Subi
An
An
Subn
系统调用的处理过程
23
设置系统调用号和参数。 调用号作为指令的一部分(如早期UNIX),或装入到特 定寄存器里(如:DOS int 21h,AH=调用号。) 参数装入到特定寄存器里,或以寄存器指针指向参数表 (内存区域)。 执行trap(int)指令:入口的一般性处理,查入口跳
第七章 操作系统用户接口
在这一章中,我们讨论OS向上提供的用 户接口,即系统命令接口和系统调用接 口。系统命令接口可完成用户作业的组 织和控制。系统调用接口向编程人员提 供API
1
7.1 联机用户接口
• 接口分为脱机接口和联机接口 •脱机接口:用户输入作业说明书,整个作业的运行由系统 控制。 • 联机接口: •通过人-机会话方式控制作业运行。用户登录(控制台登录 或远程登录),由系统自动执行一些命令脚本后,并进入 shell(字符或GUI界面),接受用户的命令和操作,最后退 出系统。 • 命令 :分为命令行方式和批命令方式
环境变量可按名字访问,可以新建、赋值或撤销。
5
7.2 UNIX的作业管理
shell命令处理程序 shell批处理
6
7.2.1 shell命令处理程序
1. shell的类型 2. 初始化文件 3. 基本特征 4. 输入输出重定向 5. 管道 6. 后台执行 7. 别名 8. 常用的外部命令
7
1. shell的类型
13
6. 后台执行
后台执行:cmd &;
如:"xterm -display 202.205.84.56:0.0 &"
为在后台启动一个xterm窗口,并显示到主 机202.205.84.56上。
14
7. 别名
给复杂命令定义别名:alias/unalias alias 的格式: alias aliasname=string …. 把 aliasname 直接用来取代后面的 string ,如 有任何跟在后面的 argument 将会出现的其 后。利用该功能,使用者可以将常用却冗长 的指令以其他的名字存起。 如:"alias dir='ls -a -l'"为"ls -a -l"定义了一个 别名"dir";
7.3.1 系统调用及其功能 7.3.2 系统调用的实现过程 7.3.3系统调用的分类
18
7.3.1 系统调用及其功能
每个操作系统都提供几百种系统调用,包括:外存文件与目录 的读写,各种I/O设备的使用,在程序中启动另一个程序,查 询和统计系统资源使用情况等等。
实际上系统调用语句本身是硬件提供的(机器指令),但其所 调用的功能是操作系统提供的。每种机器的机器指令集中都有 一条系统调用指令。
9
2. 初始化文件
B Shell执行.profile C Shell执行.cshrc和.login两个文件 K Shell执行.profile和$ENV两个文件 (sh) .profile与(csh) .login对应,进行
注册时的初始化;而在csh在非注册启动 时都读入.cshrc;
在命令行方式下,用户与操作系统的交互要求用户记 忆命令格式。在图形用户接口方式下,用户可利用鼠 标对屏幕上的图标进行操作,完成与操作系统的交互, 从而减少记忆内容,方便用户使用。它的技术基础是 高分辩显示器和鼠标。 (1)窗口系统(window system)的特点 (2)窗口系统的图形元素及其状态 (3)窗口管理器(window manager) (4)例子
2
1. 命令行
命令行:一行可有一个或多个命令,每次一行,包
含一个或多个命令。
shell给出提示符时可输入,以回车键提交。如: “ls -al”列出当前目录文件列表; "gunzip mp1.tar.gz; tar -xvf mp1.tar; \rm -r -f mp1.tar"为解压缩后再展开。
11
4. 输入输出重定向
基于内核的缓冲区
"<"为标准输入重定向;
">"和">>"为标准输出重定向;
行输入重定向:
用定界符间的内容作为标准输入。 如:下面命令的标准输入为cat命令的输入。
cat << WARNING ... WARNING
12
5. 管道
•管道可以把一系列命令连接起来。
• 第一个命令的输出会通过管道传给第二个命令而作为第二个命令的 输入 • 第二个命令的输出又会作为第三个命令的输入,以此类推。 • 管道行中最后一个命令的输出才会显示在屏幕上(如果命令行里使 用了输出重定向的话,将会放进一个文件里)。 • 通过管道,可以将多个简单程序组合完成复杂的功能。
C shell(/bin/csh)
C shell 由 Bill Joy 所写,它更多的考虑了用户界面的友好性。它 支持象命令补齐(command-line completion)等一些 Bourne shell 所不支持的特性。 普遍认为C shell 的编程接口做的不如 Bourne shell, 但 C shell 被很多 C 程序员使用因为 C shell的语法和 C语言的很相似,这也 是C shell名称的由来。
21
7.3.2系统调用的处理过程(续2)
必须为实现系统调用功能的子程序编造入口地址表 每个入口地址与相应的系统程序名对应 陷入处理程序把陷入指令包含功能号与入口地址表有关项对
应, 系统调用功能号驱动有关子程序执行 在系统调用处理结束之后,用户程序需利用系统调用返回结 果继续执行 保护现场: 在进入系统调用处理之前,陷入处理机构还需保存处理机现 场 在系统调用处理结束之后,要恢复处理机现场,现场被保护 在特定的内存区或寄存器中
10
3. 基本特征
内部命令:如cd, exec――区分大小写,exec
的功能是执行一个命令; 外部命令:如ls, mkdir 命令行选项通常是:-option 如:"ls -a -l"中的-a表示列出所有文件,-l表示
列出所有信息。
通配符:由shell处理后再传递给外部命令。 如:cat *.c 则argv[1]=“a.c”, argv[2]=“b.c”, 而 cat “*.c” 则argv[1]=“*.c”(cat的功能是读入 所有文件,并显示)
19
7.3.2 系统调用的处理过程
系统调用的例子
汇编程序例子:打印5个字符 方法1:调用DOS功能 MOVE A, PARA1 MOVE B, PARA2 INT 21H
20
7.3.2 系统调用的处理过程(续1)
在系统中为控制系统调用服务的机构称为陷入 (TRAP)或异常处理机构 相对应,把由于系统调用引起处理机中断的指令称为 陷入或异常指令(或称访管指令) 在操作系统中,每个系统调用都对应一个事先给定的 功能号,例如0、1、2、3等 在陷入指令中必须包括对应系统调用的功能号 而且,在有些陷入指令中,还带有传给陷入处理机构 和内部处理程序的有关参数
15
8. 常用的外部命令
man查看手册 echo, wc, grep, sed, awk(用于文本扫描和处
理), sort, cut(对每行进行特定删除处理)字符 串操作; pwd, ls, mkdir, rmdir, cp, rm, mv, ln文件和目 录操作; chmod, chown, chgrp(修改文件所在的用户组) 文件权限和属主; cat, more, tail(显示文件的最后部分)查看文件; test, expr检测和数值计算; vi全屏幕编辑;