第十课 操作系统接口
教学目的,
OS向用户提供, 用户与操作系统的接口,,该接口支持用户
与 OS之间进行交互,该接口分为命令接口和程序接口两类。
掌握用户与 OS接口可使用户更全面掌握 OS使用。
教学要求:
?熟悉 用户与操作系统的两类接口:命令接口和程序接口。了
解 MS-DOS,WINDOWS98和 UNIX的接口。
?了解中文 操作系统的原理和接口。
(一) 用户与操作系统的接口
( 1) 用户接口
用户接口是计算机系统与用户之间进行交互作用和通信
的通路。对绝大多数用户而言,一个计算机系统的可接受性
在很大程度上取决于这个用户接口。用户接口分为命令接口
和程序接口两类。
1。命令接口
命令接口是籍助于在用户和操作系统之间提供高级通信来
控制一组程序的处理。这个接口之所以称命令接口,是因为
用户可以通过打入或在作业中发出一系列命令,告诉 OS执行
那些功能。这一类接口是用于作业控制的,其中又分联机用
户接口和脱机用户接口。
?联机用户接口,联机用户接口也叫交互式用户接口,它用于
联机作业控制,它是由一组键盘操作命令组成。交互式用户
接口交互方式又分成二类,一类是字符方式,终端命令,
用户接口 -1
提供面向流的通信,如 MS-DOS。 另一类是图形方式,提供
,对话框,,, 图标,,, 菜单, 等图形用户接口( GUI) 如
Windows。
?脱机用户接口 也称批处理用户接口,它用于脱机作业控制。
脱机作业控制又分为作业控制卡和作业说明书两种方式。
?作业控制卡 方式是指用户将其操作意图,用控制语言提供的
有关作业控制命令穿孔在若干卡片上,以控制作业的运行的
一种形式。用户按照要求将作业控制卡插入到作业卡片叠的
适当位置上。系统分批读入这些卡片后开始运行,并按照这
些控制卡的信息,指挥和控制作业的运行,这些作业控制卡
是早期的一种作业控制方式。
?作业说明书 也是用作业控制语言来表达用户对作业控制意识
的,在形式上同用高级编程语言编制的程序相似。相对于作
业控制卡分散的缺点它具有集中、便于修改、灵活等优点。
美国 1905机 GEOGE语言是典型的高级算法的作业控制语言。
用户接口 -2
2。程序接口
?程序接口是 OS为正要运行的程序提供服务并与之通信的一个
设施,它供所有的用户程序使用,也供 OS的其它组成部分,
特别是命令处理程序使用。当一个程序正在执行时,程序接
口接受对系统服务及资源申请,并与 OS的资源管理程序进行
通信。这个程序接口主要由系统调用组成。
?系统调用是用户在程序中调用 OS所提供的一些子功能模块,
它是一种特殊的过程调用。 用户程序运行在用户态下,它通
过软件中断进入核心,调用系统过程(子模块),运行在核
心态,返回后仍在用户态下运行。用户程序系统调用从功能
上分可包括进程管理、文件管理、信息维护、设备 I/ O管理
等几方面。
?系统调用过程大体上分成以下三步:设置系统调用号和参数;
系统调用命令的一般处理;系统调用命令处理程序做具体处
理。
( 2) MS-DOS的接口
1,MS-DOS层次模块结构
MS-DOS采用层次模块结构,它有三个层次模块和一个引导程
序组成。这三个模块是命令处理程序( COMMAND.COM),文件
系统 (MS-DOS.SYS)和输入输出系统。其中基本输入输出系统
又由驻在 ROM中的基本输入输出系统 BIOS和系统盘上的 BIOS接
口模块( IO.SYS) 两部分组成。引导程序在盘引导区中。三
个模块的层次关系如图所示。( 返 1)
用户程序 键盘命令
命令处理程序
文件系统
输入输出系统
INT10-INT1A INT21
MS-DOS的接口 -1
2。 MS-DOS的命令接口 —-键盘命令
?选盘命令,<盘符> < CR> 例如,A:
?控制键和编辑键,例如,Ctrl+Alt+Del系统复位键; <F1>
复制字符键等。
?内部命令,它是 OS内部提供的 OS功能子模块的命令,例如
Dir显示目录命令等。
?外部命令,它是存在磁盘上完成某功能可执行文件、需要时
调入内存执行的命令,它有以下几种类型。
?扩展名为,com文件是可执行的二进制代码文件。
?扩展名,exe文件是可执行浮动二进制代码文件。
?扩展名为,bat文件是批处理文件,批处理文件中可包含内部
命令、外部命令以及一些特殊的批处理文件命令。
MS-DOS的接口 -2
3。 MS-DOS程序接口
程序员通过软件中断和系统调用使用 MS-DOS提供的功能。
?用文件系统模块提供的功能- INT21H
MS-DOS文件系统子功能模块的功能是系统调 INT21,它是字符
I/O高级方式,它独立于硬件且与其它操作系统兼容。它包括
设备管理、文件管理、目录管理等功能。
?用输入输出系统模块提供的功能-- INT10H-INT1AH
MS-DOS的输入输出系统模块提供的功能调用是 INT10H-INT1AH。
其中 INT10H 调用显示驱动程序,INT16H调用键盘驱动程序,
INT17H调用打印机驱动程序,INT13H调用磁盘 I/O驱动程序。
MS-DOS的接口 -3
下面以 5.6.1节说明 INT13系统调用的过程。
l 调用号送寄存器 AH mov AH,02
l 置入口参数 al mov AL,01
? Bx mov Bx,200
? Cx mov Cx,0001
? Dx mov dx,0080
l 调用 INT 13
? INT 3
l 执行 -g=100
l 分析出口参数 -d 3be 3fe 观察分区表
( 3) WINDOWS 98的接口
1。 Windows98用户界面结构
Windows98使用新的 32位的用户界面,提供统一的工具来浏
览网络,局域网及 Internet信息。这些包含了一些桌面工具,
包括网络邻居,可选择的活动桌面接口,可选择的频道接口。
Windows98基本组件结构中用户界面的细框图如下图所示。
这些工具同其它的基于 Win32的、基于 Win16的、以及基于
MS-DOS的应用程序在同一结构层次上运行。所有的应用程序
及工具可以从壳层提供的公用控制中得到好处,例如公用对
话框、目录树形显示和列表显示等。
用户接口工具 ( 网络邻居等 )
进程指示, 工具, 使用对话框, 列
表显示, 树形显示等
WINDOWS 98的接口 -1
2。 Windows 98命令接口 ―― 图形用户接口( GUI)
GUI的基本元素有:
?窗口,是指屏幕上的一块矩形区域,应用程序(包括文挡)
可通过窗口向用户展示系统所能提供的各种服务及其需要用
户输入的信息,用户可通过窗口去查看和操纵应用程序和文
挡。窗口由标题拦、垂直、水平滚动条、控制按钮、最大化、
最小化按钮、还原按钮、关闭按钮等组成。
?图标,它是代表一个应用程序或文件的一个小图象,它也是
最小化窗口,通过对图标的操作可激活相应的程序(选择它
在前台运行)和启动应用程序。
?菜单,用户在窗口中对应用程序所能执行的各种操作是以菜
单的形式提供的。菜单一般是由菜单名和若干菜单项所组成。
每一菜单项通常都对应于相关的命令或功能。用户可用鼠标
或键盘在菜单中选择一菜单项,来向系统提出相应的服务请
求,当用户选择某菜单项时,有时便出现弹出菜单和下拉式
菜单。
WINDOWS 98的接口 -2
l 对话框:它是在桌面上的带有标题条和控制菜单的一个临时
窗口,又称为对话窗口。其主要用途是系统可通过对话框提
示用户输入与任务有关的信息,或向用户提供可能需要的信
息。对话框由文本框、列表框、命令按钮、单选按钮和复选
按钮组成。
3。 Windows98应用程序接口 ―― API
编写 Windows应用程序,除了用到常规编程语言的库函数和
数据结构外,还需使用由 Windows SDK提供的适用于 Windows
应用程序的特殊库函数及和各种数据结构、语句、文件结构,
所有这些内容构成了 Windows应用程序设计接口( API)。 可
以把 API视作一个有各类工具的集合,如果使用得当,这些工
具开发出来的 Windows应用程序,可适当用各种类型的计算机
( PC机)。
WINDOWS 98的接口 -3
Windows应用程序可以充分利用 API提供的各种特征。这些特
征是:几个应用程序共享显示器、内存、键盘、鼠标和系统
计时器,应用程序之间的数据变换与设备无关的图形功能;
多任务;动态链接。
Windows API函数可分为窗口管理接口函数、图形设备接口
( GDI) 函数和系统服务接口函数等三类函数。
? 窗口接口函数 包括创建、移动和修改窗口函数;建立、修
改菜单,获得菜单项状态等功能的函数;建立系统输出的函
数;消息管理和处理的函数等。
? 图形设备接口函数 包括了 Windows应用程序中执行与设备
无关的图形操作所需的各类函数,这些操作包括在几种输出
设备上画各种类型的线条、文字和位映射图象的函数。
? 系统服务接口函数 包括 GDI支持多任务而提供的函数,涉及
多任务和内存管理函数。
( 4) UNIX( LINUX) 系统调用
1。 进程控制
?fork系统调用 创建新的子进程
格式,int fork()
fork调用返回时,系统中已有两个用户级环境完全相同的进程
存在,这两个进程从 fork调用中得到的返回值不同,其中子进
程得到的返回值为零,父进程得到的返回值是新创建子进程
的进程标识号。
?exec系统调用
格式,(六种)
int execl(path,arg0,arg1,…,argn,(char *)0)
char *path,*arg0,*arg1,…,*argn ;
exec调用进程的正文段被指定的目标文件的正文段所覆盖,其
属性的变化方式与 fork成功后从父进程那里继承属性的方式几
乎是一样的。系统中绝大多数命令都是通过 exec来执行的,
不但 shell进程所创建的子进程使用它来执行用户命令,shell进
程本身和它的祖先进程也是用 exec来启动执行的。
UNIX( LINUX) 系统调用 -1
?exit系统调用 终止进程执行
格式,void exit(status)
int status ;
参数 status是调用进程终止时传递给其父进程的值。如调用进
程还有子进程,则将其所有子进程的父进程改为 1号进程。
?wait系统调用 等待子进程暂仃或终止
格式,int wait(stat_loc) int wait((int *)0)
int stat_loc ;
wait调用将调用进程挂起,直到该进程收到一个被其捕获的信
号或者它的任何一个子进程暂仃或终止为止。如果 wait调用之
前已有子进程暂仃或终止,则该调用立即返回。
UNIX( LINUX) 系统调用 -2
2.文件基本操作
?creat系统调用创建普通 文件
格式,#include <sys/types.h>
#include <sys/stat.h>
int creat(path,mode)
char *path ; /* 文件路径名 */
int mode ; /* 文件存取权 */
返回一个当前进程可 用的最小 文件描述符 fd 。
?unlink系统调用删除 文件 连结
格式,int unlink(path)
char path ; /* 文件路径名 */
UNIX( LINUX) 系统调用 -3
?open系统调用
格式,#include <fcntr.h>
int open(path,oflag[,mode])
char *path ; /* 文件路径名 */
int oflag,mode ; /* 打开方式和存取权标志 */
oflag取值,O_RDONLY,O_WRONLY,O_RDWR之一,按需
要 用 ‘ |’符与 O_NDELAY,O_CREAT,O_TRUNC,O_EXCL、
O_APPEND,O_SYNC 标志组合。
返回已打开文件的文件描述符 fd。
?close系统调用
格式,int close(fd)
int fd ; /* 文件描述符 */
UNIX( LINUX) 系统调用 -4
?read系统调用
格式,int read(fd,buf,nbytes )
int fd ; /* 文件描述符 */
char *buf ; /* 缓冲区地址 */
unsigned nbytes ; /* 要读的字节数 */
?write系统调用
格式,int write(fd,buf,nbytes )
int fd ; /* 文件描述符 */
char *buf ; /* 缓冲区地址 */
unsigned nbytes ; /* 要写的字节数 */
UNIX( LINUX) 系统调用 -5
?lseek系统调用
格式,#include <unistd.h>
long lseek(fd,offset,inter )
int fd ; /* 文件描述符 */
long offset ; /* 文件偏移量 */
int inter ; /* 对偏移量的解释 */
inter取值,SEEK_SET,SEEK_CUR,SEEK_END分别表示把文
件读 /写指针置为 offset给定值、当前指针 + offset值、文件大
小 + offset值。
(二) 用户与 中文 操作系统的接口
( 1)字符集
长期以来,计算机的代码体系是以 ASCII码为基础的,若要处
理非英语的语言(如中文、阿拉伯文等)并不是一件简单的
事,各国都需要作出适合本国情况的本地化工作,在我国为
处理中文,这就要作 汉化 。
我国 1981年公布的,通讯用汉字字符集(基本集)及其交换
码标准, GB2312-80方案,把高频字、常用字归结为汉字基
本字符集(共 6763个字),再按出现的频度为一级汉字 3755
个(按拼音排序)和二级汉字 3008个(按部首排序),加上
西文字母、数字、图形符号等 700多个,如果再加上用户自行
定义的专用汉字和符号等,那末一个适用的汉字系统应具有
能处理多达 8000余个汉字字符的能力。
字符集 -1
? 国字标准( GB2312-80) 汉字字符集代码表中含为 94个区,
每个区 94位,每个汉字由 2个字节表示,第一个字节为区编号,
第二个字节为位编号。所以汉字是属于双字节符集。 1995年
底,我国又公布了 GB2312的扩充版本大字符集国家标准 GBK,
它能容纳包括简繁体多达 21000个汉字。 GBK定义的首字节范
围为 0× 81-0× FE,尾字节定义的范围为 0× 40- 0× 7E,
0× 80- 0× FE。 GBK与 GB2312内码标准完全兼容,支持
GB13000.1定义的汉字,并扩充了一些新的符号。
? 为了保证中西文兼容,系统中必须保留西文内码,即 ASCII
码,同时又要允许汉字内码使用,并且不能产生二义性。若
采用 GB2312-80规定的国标码为汉字内码,则必然与同采用七
位二进制位的 ASCII码冲突。所以必须要对汉字国标码进行适
当变换。目前我国通行的方案是采用变形国标码,作为内码,
它是国标码的每个字节高位置 1。这样汉字编码为中西文兼容,
它也是占用扩展 ASCII码,拼装而成。
字符集 -2
?汉化只是一种针对汉字的改造,对于整个世界的不同方种的
信息处理,它依然是不完备的。随着世界范围内信息交换的
日益普遍、频繁,OS的国际化/本地化也在加快,编码方面,
全球统一的大字符集 ―― ISO/ IEC10646也已经诞生。自从
ISO10646通过以后,汉字也作为一个独立字符出现,这就和
以前的 ASCII码形成了重大的区别。
?ISO/ IEC10646字符集( UCS) 的特点是世界上各种流行文字
占有不同的码位,互不冲突,从根本上支持多文种的同时处
理,码长统一,转换规则简明,但是由于与原 ASCII码制冲
突,所以若以 UCS为处理码则较难利用原系统的处理能力。
?16位的 Unicode是一种国际字符集标准,该标准定义了大多
数世界上已知字符集的唯一的 16位值。它由 Unicode研讨会
维护和改进,它符合 ISO10646 国际标准。
?Windows NT最内部的文本字符串以 16位 Unicode字符串存储
和处理的。
(2)汉字信息的显示和打印
?汉字字形远比西文字母字形复杂,笔画也繁简不一,为此用
计算机显示和打印汉字时常用点阵和轮廓式字模表示。
?把单个汉字离散成网点,每点以一个二进制位表示,这样就
组成了汉字的 点阵字模 。在中文 MS-DOS环境屏幕显示采用
16× 16点阵字模,而打印则采用 24× 24,32× 32,48× 48点
阵字模等。为了使字形漂亮同时汉字字模占用字节数少,就
采用轮廓矢量汉字,矢量汉字用汉字轮廓的特征点坐标来表
示,然后用特征点直线表示汉字轮廓。 UCDOS的字库 hzkslstj
等是矢量汉字库。在 Windows中,Microsoft采用 True Type
字形技术, True Type对字形的描述是轮廓描述。 True Type
的字形包括 True Type指令( 218条)、数据和 True Type字形
发生器。 Adobe 公司采用类同 True Type字形的 PostScript
字体, PostScript字体广泛应用于印刷出版行业。
(3)汉字的输入
汉字输入方式有键盘、手写、语音和扫描识别输入等几种。
键盘输入汉字是常用的基本方法。为了能直接使用西文键
盘进行输入,就必须为汉字设计相应的编码,即用字母数字
串来代替汉字。常用的汉字输入法有:
? 以 GB2312-80为基准的国标码和国标区位码,国标码是
GB2312-80所规定的机器内部编码,每个汉字 4个 16进制数字
来表示。而国标区位码是国标码的一种变形,每个汉字用二 -
十进制区码和位码来表示,它相对国标码便于查找,但两码
同样难以记忆。
? 以发音为基础的拼音码,如全拼拼音、简拼拼音、双拼拼
音、智能 ABC等。拼音码是以“汉字拼音方案”为基础定义
的简单易学的输入方案,它是用户使用较多的输入法,它有
简单易学、学后不易忘记等优点,但也存在重码率高,输入
速度慢等缺点。智能 ABC在音码的基础上,增加了一定的智
能性和较大的灵活性尤其适合非专业录入人员的汉字输入。
汉字的输入 -1
?拼形码,如五笔字型、郑码、太极码等。拼音码是按字的结
构给汉字编码,其基本原理是把汉字看成是由基本的构字单
元一字根和最小的构字单元, 笔划, 构成,字根和笔画又映
射有代码,因此也就有了相应的代码。拼形码方案较多,其
中五笔字型输入法普及率最高。
?音形码,如自然码、沈码、华夏码等。音形码是音码和形码
编码方案的结合,音形码往往取汉语拼音的第一个字母为声
码,再结合字根或部首的形码,这样学习难和重码率比较居
中。
(4)操作系统的实现
具有处理汉字功能的操作系统有二种实现方法。
?内核法,它从操作系统内核支持汉字处理。 Windows95/98中
文版是一个完全汉化的双字节版本,它在保持和原的通用的
GB2312-80汉字字符集完全兼容的基础上,推出了能容纳多达
21000多个汉字,简繁体都有的大字符集国家标准 GBK,并提
供相应的汉字字库和输入方法,支持基于 GBK的排序方法、时
间、日期、货币的中文表示等。
?外挂法,它采用在西文操作系统外挂模块,以增加操作系统
处理功能。中文之星 2.97/3.0 for NT,四通利方 RichWin
97/2000是这类产品代表。如单使用中文操作环境,则使用内
核法 Windows 98中文版操作系统方便。如使用环境需经常变
换中、西文操作系统环境,则采用固定安装西文 Windows 98
操作系统,需要使用中文环境时,再安装外挂式 OS如 RichWin
2000等,使用完成后再卸载,恢复西文环境。
习题
1.脱机用户接口是配置在﹎﹎ A﹎﹎ 操作系统中的,它是由一
组﹎﹎ B﹎﹎ 所组成,联机用户接口是由一组﹎﹎ C﹎﹎ 所组
成,而程序接口则是由一组﹎﹎ D﹎﹎ 所组成。
A,( 1) 微机; ( 2)批处理; ( 3)分时; ( 4)实时。
B,C,D,( 1) 系统调用; ( 2) 库函数; ( 3) 键盘命令;
( 4) 作业控制语言 。