《操作系统课件第七章OS接口.ppt》由会员分享,可在线阅读,更多相关《操作系统课件第七章OS接口.ppt(53页珍藏版)》请在三一办公上搜索。
1、第七章 OS接口,操作系统是,计算机系统资源的管理者(CHAP26)用户和计算机硬件系统之间的接口用户通过该接口和OS之间进行交互。用户请求OS提供服务,OS给用户返回服务结果例:C:DIR,用户接口的种类联机命令接口字符图形系统调用(编程时使用),LINUX命令接口示例,LINUX图形用户界面,联机命令接口,联机命令的处理过程用户从键盘输入命令接收命令于键盘缓冲区命令解释程序分析命令执行命令处理程序,DOS联机命令接口,联机命令(外部命令和内部命令)种类磁盘操作类FORMAT,FDISK,DISKCOPY,DISKCMP,BACKUP等文件操作类TYPE,COPY,REN,DEL等目录操作类
2、MD,RD,CD,DIR,TREE,DELTREE,其它DATE,TIME,CLS,PATH,PROMPT,SYSI/O重定向DIRDIRLIST.TXT SORTDIRLIST1.TXT管道操作TYPE DIRLIST|MORE批处理.BAT文件C:COPY CON A.BATDATETIMEPROMPT$P$Gz,命令解释程序COMMAND.COM功能:在屏幕上给用户提示符;读入用户键入的命令;识别命令;转到命令处理程序入口地址,把控制权交给命令处理程序,如果是外部命令,还要从外存上调入外部命令处理程序;处理结果显示于屏幕;,UNIX/LINUX联机命令接口,LINUX Linus Tor
3、valds,University of Helsinki,Finland,1991多用户,多任务OS符合POSIX标准支持多种文件系统免费开源软件OS,学习操作系统的理想平台外表性能同UNIX相象,所有核心代码都重新写过了。LINUX为用户提供了命令接口Shell,三种类型文件:一般文件,目录文件,特殊文件(设备文件)只有一个根目录文件系统通过mount命令与一个目录相系,才能访问MOUNT T VFAT/DEV/HDA0/MNT/C目录层次用“/”表示/home/0231031/asm可用通配符“*”或“?”表示文件严格区分大小写,LINUX 目录结构,LINUX 目录树,bin dev e
4、tc home lib sbin mnt tmp usr var,bin etc games include lib local sbin src X11,cdrom fd xp ws,Peng 024100321,/,/bin二进制可执行命令/dev设备文件/etc系统管理和配置文件/home用户根目录/lib系统库文件/sbin系统管理命令/tmp公用临时文件目录/usr/x11X-Windows系统文件/usr/include系统包含文件/usr/local/bin本地命令/usr/local/src本地命令源文件/usr/man系统联机手册/usr/src/linuxLinux内核源程
5、序,文件列表:-rwxr-xr-x 2 wang users 1348 文件权限 链接数 所有者 用户组 字节数 Aug 18 14:23 junk最后修改时间 文件名文件使用权限:-rwx r-x r-x文件类型 文件所有者 同组用户 其他用户(-一般,d目录),LINUX 文件,Shell的作用Shell是一个具有交互性的命令行解释器,接受命令,分析创建子进程,由子进程实现命令所规定的功能,在发出提示符Shell还是一种高级程序设计语言,具有关键字,控制结构,有自己的语法结构,LINUX实验环境的进入和退出(1)、登录在DOS环境下用MS提供的telnet程序(也可使用WINDOWS 自带
6、的telnet图形界面程序或多功能的S-Term终端程序),可使PC作为终端(terminal)登录(login)LINUX服务器。(1)执行格式:telnet hostname(主机名)/telnet 主机的IP地址 例:(2)步骤 login:(输入username)学号 password:(输入密码)学号(2)、退出 在UNIX系统提示符$下,输入logout、exit或shutdown。例:$logout,1、目录操作用户login后,工作目录的位置称为 home directory,由系统管理员设定。符号代表自己的home directory,例如/myfile 是指自己home目录
7、下myfile这个文件。UNIX的通配符有三种:*和?用法与DOS相同,-代表区间内的任一字符,如test0-5即代表test0,test1,test5的集合。,(1)显示目录文件 ls执行格式:ls-atFlgR name(name可为文件或目录名称)例:ls 显示出当前目录下的文件ls-a 显示出包含隐藏文件的所有文件ls-t 按照文件最后修改时间显示文件 ls-F 显示出当前目录下的文件及其类型ls-l 显示目录下所有文件的许可权、拥有者、文件大小、修改时间及名称ls-lg 同上ls-R 显示出该目录及其子目录下的文件,注:ls与其它命令搭配使用可以生出很多技巧(最简单的如ls-l|mo
8、re),更多用法请输入ls-help查看,其它命令的更多用法请输入命令名-help 查看.例ls al ls a l显示目录文件也可以使用dirDir l,(2)建新目录 mkdir执行格式:mkdir directory-name例:mkdir dir1(新建一名为dir1的目录)(3)删除目录rmdir执行格式:rmdir directory-name 或 rm directory-name例:rmdir dir1 删除目录dir1,但它必须是空目录,否则无法删除 rm-r dir1 删除目录dir1及其下所有文件及子目录 rm-rf dir1 不管是否空目录,统统删除,而且不给出提示,使
9、用时要小心,(4)改变工作目录位置 cd执行格式:cd name 例:cd 改变目录位置至用户login时的home directory cd dir1 改变目录位置,至dir1目录 cd 改变目录位置,至用户的home directory cd.改变目录位置,至当前目录的上层目录 cd./user 改变目录位置,至上一级目录下的user目录 cd/dir-name1/dir-name2 改变目录位置,至绝对路径(Full path)cd-回到进入当前目录前的上一个目录,(5)显示当前所在目录pwd执行格式:pwd(6)查看目录大小du执行格式:du-s directory例:du dir1
10、显示目录dir1及其子目录容量(以kb为单位)du-s dir1 显示目录dir1的总容量,(7)显示环境变量 echo$HOME 显示家目录 echo$PATH 显示可执行文件搜索路径 env 显示所有环境变量(可能很多,最好用env|more,env|grep PATH等)(8)修改环境变量,在bash下用export,如:export PATH=$PATH:/usr/local/bin 想知道export的具体用法,可以用shell的help命令:help export,2、文件操作(1)查看文件(可以是二进制的)内容 cat执行格式:cat filename或more filename
11、 或cat filename|more例:cat file1 以连续显示方式,查看文件file1的内容more file1 或 cat file1|more 以分页方式查看文件的内容,(2)删除文件 rm执行格式:rm filename 例:rm file?rm f*,(3)复制文件 cp 执行格式:cp-r source destination 例:cp file1 file2 将file1复制成file2 cp file1 dir1 将file1复制到目录dir1 cp/tmp/file1 将file1复制到当前目录 cp/tmp/file1 file2 将file1 复制到当前目录名为f
12、ile2cp r dir1 dir2 复制整个目录。,(4)移动或更改文件、目录名称mv执行格式:mv source destination例:mv file1 file2 将文件file1,更名为file2 mv file1 dir1 将文件file1,移到目录dir1下 mv dir1 dir2 把目录dir1更名为dir2(5)比较文件(可以是二进制的)或目录的内容 diff 执行格式:diff-r name1 name2(name1、name2同为文件或目录)例:diff file1 file2 比较file1与file2的不同处 diff-r dir1 dir2 比较dir1与dir
13、2的不同处,(6)文件中字符串的查找 grep执行格式:grep string file例:grep abc file1 查找并列出串abc所在的整行文字 Grep printf shm,(7)文件或命令的路径寻找执行格式一:whereis command 显示命令的路径执行格式二:which command 显示路径及使用者所定义的别名执行格式三:whatis command 显示命令的功能摘要执行格式四:find search-path-name filename-print搜寻指定路径下某文件的路径 执行格式五:locate filename LOCATE a列出系统中所有名字中包含字符
14、串a的文件和目录,(8)建立文件或目录的链接 ln例:ln source target1 建立source文件(已存在)的硬链接,命名为target1ln-s source target2 建立source文件的符号链接,命名为target2Ln a.txt/alink,3、系统询问与权限口令(1)查看系统中的使用者执行格式:who(2)查看username执行格式:who am I 查看自己的username(3)改变自己的username的帐号与口令 su 执行格式:su username 例:su username 输入帐号 password 输入密码,(4)文件属性的设置 chmod
15、改变文件或目录的读、写、执行的允许权执行格式:chmod-R mode name其中:-R为递归处理,将指定目录下所有文件及子目录一并处理 mode为3-8位数字,是文件/目录读、写、执行允许权的缩写(r:read,数字代号为4 w:write,数字代号为2 x:execute,数字代号为1)mode:rwx rwx rwx user group other缩写:(u)(g)(o)例:chmod 755 dir1 将目录dir1设定成任何人皆有读取及执行的权利,但只有拥有者可作写修改。其中7=4+2+1,5=4+1 chmod 700 file1 将file1设为拥有者可以读、写和执行 chm
16、od u+x file2 将file2,增加拥有者可执行的权利 chmod g+x file3 将file3,增加组使用者可执行的权利 chmod o-r file4 将file4,除去其它使用者可读取的权利,(5)改变文件或目录所有权 chown 执行格式:chown-R username name 例:chown user file1 将文件file1改为user所有 chown.fox file1 将文件file1改为fox组所有 chown user.fox file1 将文件file1改为fox组的user所有 chown-R user dir1 将目录dir1及其下所有文件和子目录
17、,改为user 所有(6)检查用户所在组名称 groups执行格式:groups,(7)改变文件或目录的组拥有权 chgrp执行格式:chgrp-R groupname name 例:chgrp vlsi file1 将文件file1改为vlsi组所有 chgrp-R image dir1 将目录dir1及其下所有文件和子目录,改为image群组(8)改变文件或目录的最后修改时间 touch执行格式:touch name,4、进程操作(1)查看系统目前的进程 ps 执行格式:ps-aux 例:ps 或ps-x 查看系统中属于自己的process ps-au 查看系统中所有使用者的process
18、 ps-aux 查看系统中包含系统内部及所有使用者的process ps-aux|grep apache 找出系统中运行的所有名称中带有apache串的process PS l,(2)查看正在background中执行的process 执行格式:jobs(3)结束或终止进程 kill执行格式:kill-9 PID(PID为利用ps命令所查出的process ID)例:kill 456或 kill-9 456 终止process ID 为456的process(4)后台(background)执行process command的命令执行格式:command&(在命令后加上&)例:gcc file
19、1&在后台编译file1.c,(5)结束或终止在background中的进程 kill执行格式:kill%n例:kill%1 终止在background中的第一个job kill%2 终止在background中的第二个job(6)显示系统中程序的执行状态例:top-q 不断地更新、显示系统程序的执行状态,(7)以树状图显示执行的程序 pstree例:pstree-h 列出进程树并高亮标出当前执行的程序(8)监视虚拟内存 vmstat vmstat对系统的虚拟内存、进程、CPU活动进行监视,同时它也对磁盘和forks和vforks操作的个数进行汇总。不足是:vmstat不能对某个进程进行深入分
20、析,它仅是一对系统的整体情况进行分析。例如:angelhome/angel#vmstat procs memory swap io system cpu r b w swpd free buff cache si so bi bo in cs us sy id 0 0 0 7180 1852 56092 48400 0 0 6 5 24 8 0 0 18,(9)分析共享内存、信号量和消息队列 ipcs(10)监视用户空间程序发出的全部系统调用 strace,(1)命令在线帮助 man执行格式:man command例:man ls 查询ls这个指令的用法(2)设定命令记录表长度 history
21、执行格式一:set history=n例:set history=40 功能:设定命令记录表长度为40(可记载执行过的前面40个命令)执行格式二:history 查看命令记录表的内容(3)显示说明 info执行格式:info command-name例:info gcc功能:查看gcc的说明,按上下箭头选定菜单,回车进入,u键返回上级菜单.info不加参数则进入最上一级菜单.,本学期编程相关命令编缉程序vi两种工作模式:命令模式(简单命令,行命令):任何输入的字符都为命令插入模式,对文件的编辑操作,都应当在该模式下进行启动时,进入命令模式,进入插入模式的方法:a在光标后开始插入文本A在当前行末
22、尾处插入文本i在光标位置开始插入文本I在当前行开始处插入文本o在当前行后插入新一行 O在当前行前插入新一行退出插入模式:按esc键,x删除光标所在字符X删除光标后字符dw删除光标所在单词D删除光标至行尾所有字符dd删除当前行r替换光标所在字符R替换字符序列cw替换一个单词C替换自光标至行尾所有字符,cc替换当前行J合并二行U回退:q退出:q!不保存退出:w保存:wq 保存退出:help进入求助,系统调用,系统时用户程序取得OS服务的唯一途径MOV DL,AMOV AH,2INT 21H,系统调用,系统调用,是用户在程序中调用操作系统所提供的一些子功能这是特殊的过程调用,由特殊的机器指令实现这个
23、指令还将系统转入管态系统调用是操作系统提供给编程人员的唯一接口,每个操作系统都提供几百种系统调用,包括:外存文件与目录的读写,各种I/O设备的使用,在程序中启动另一个程序,查询和统计系统资源使用情况等等 实际上系统调用语句本身是硬件提供的(机器指令),但其所调用的功能是操作系统提供的 每种机器的机器指令集中都有一条系统调用指令(访管指令),汇编程序例子1:MOV DL,AMOV AH,2INT 21H,系统调用的例子-1,汇编程序例子2:读写硬盘文件内容 MOV DX,OFFSET BUFF MOV CX,BYTE MOV BX,HANDLE MOV AH,3FH INT 21H,系统调用的例子-2,高级语言例子:打印5个字符 char buff4=“abcde”;for(i=4;i=0;i-)print(buffi);高级语言例子:读硬盘文件f1的第10到20个字节 seek(fd,10,0);read(fd,buff,11);,系统调用的例子-3,