好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

高级操作系统2ppt课件.ppt

40页
  • 卖家[上传人]:桔****
  • 文档编号:587511358
  • 上传时间:2024-09-06
  • 文档格式:PPT
  • 文档大小:225.50KB
  • / 40 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 高级操作系统高级操作系统 Advanced Operating System北方工业大学计算机系北方工业大学计算机系North China University of  TechnologyDepartment of Computer 授课教师:宋丽华授课教师:宋丽华::slh2g@126     : 88803939  五教五教1102 第二章第二章 UNIX根底知识根底知识•系统的启动过程系统的启动过程•UNIX文件构造简介文件构造简介•C言语编程言语编程•Makefile的编写的编写•UNIX shell 编程编程 2.1 系统的启动过程系统的启动过程•操作系统的启动阅历三个过程操作系统的启动阅历三个过程•系统引导系统引导•中心初始化中心初始化•系统的初始化系统的初始化 1 〕系统引导〕系统引导•把把UNIX系系统中中心心装装入入内内存存并并且且让它它开开场执行行的的任任务叫做系叫做系统引引导•上上电•BIOS(保管在主板上的保管在主板上的闪存中存中)检查系系统硬件•加加载主主引引导程程序序,,即即〔〔从从硬硬盘0头,,0道道,,0扇扇区区〕〕寻觅/unix文件,并将文件,并将该文件装入内存。

      文件装入内存•内内核核装装入入程程序序将将控控制制权交交给新新装装入入的的内内核核从从而而使使之得以运之得以运转 2〕内核初始化〕内核初始化〔〔1 1〕初始化少量的硬件接口、初始化系〕初始化少量的硬件接口、初始化系统时钟、、初始化存初始化存储管理还要初始化少量的数据构造要初始化少量的数据构造〔〔2 2〕初始化〕初始化进程程0 0 注:注:进程程0 0没有代没有代码段,它就段,它就是一个是一个进程数据构造程数据构造 〔〔3 3〕〕进程程0 0创建建进程程1 1 3〕系统初始化〕系统初始化 〔〔1〕〕进程程1执行系行系统调用用exec,系,系统程序程序/sbin/init 读取配置取配置文件文件/etc/inittab,按照其中的配置,按照其中的配置对系系统进展初始化激活展初始化激活交交换分区,分区,检查磁磁盘,加,加载硬件模硬件模块,启,启动对应运运转级别的的守守护进程〔〔2〕〕init为每一条通每一条通讯线路路创建一个建一个getty进程来程来实现多用多用户方式 〔〔3〕等待用〕等待用户注册,注册,检查用用户的登的登录口令建立口令建立shell进程〔〔4〕当〕当shell程序退出程序退出时,,init程序就醒来,程序就醒来,调用系用系统调用用fork/exec产生一个新的生一个新的getty程序来程序来监视通通讯线路并等待下路并等待下一个注册。

      一个注册  第二章第二章 UNIX根底知识根底知识•系统的启动过程系统的启动过程•UNIX文件构造简介文件构造简介•C言语编程言语编程•Makefile的编写的编写•UNIX shell 编程编程 UNIX文件构造简介文件构造简介•层次次构构造造::UNIX文文件件系系统被被组织成成树型型构构造造在在UNIX系系统的的常常见的的目目录有有::bin、、etc、、usr、、unix、、dev等等一一个个途途径径名名不不一一定定非非要要从从根根目目录开开场,假,假设省略途径名那么省略途径名那么阐明明为当前目当前目录•对文文件件数数据据一一致致对待待::在在UNIX系系统中中,,程程序序并并不不知知道道文文件件存存储的的内内部部格格式式,,程程序序把把一一切切的的文文件件内内容容都都当当作作无无格格式式的的字字节流流对待待程程序序是是按按照照本本人人的运用需求来解的运用需求来解释文件的内容文件的内容 文件系统的树状构造文件系统的树状构造 •/目录:目录树的根,用于保管系统的内核文件和系统目录:目录树的根,用于保管系统的内核文件和系统启动文件启动文件•/dev目录:用于保管系统的设备文件目录:用于保管系统的设备文件。

      •/usr目录:用于保管系统正常运转时运用的系统运用目录:用于保管系统正常运转时运用的系统运用程序,其中程序,其中/usr/bin放置系统执行文件,放置系统执行文件,/usr/src中中放置系统的源代码放置系统的源代码•/etc目录:用于保管系统的配置文件,包括目录:用于保管系统的配置文件,包括passwd, rc等非常重要的文件,也被放置到根文件系统中等非常重要的文件,也被放置到根文件系统中•/bin目录:保管了用于系统维护目的的执行文件目录:保管了用于系统维护目的的执行文件•/tmp目录:用于存放程序运转产生的暂时文件,这个目录:用于存放程序运转产生的暂时文件,这个目录也是每个用户都可写的,在系统启动时将自动清目录也是每个用户都可写的,在系统启动时将自动清空这个空这个 目录•/home目录:它用于维护用户的个人目录目录:它用于维护用户的个人目录 第二章第二章 UNIX根底知识根底知识•系统的启动过程系统的启动过程•UNIX文件构造简介文件构造简介•C言语编程言语编程•Makefile的编写的编写•UNIX shell 编程编程 C言语编程言语编程•1〕源程序的〕源程序的编译•假假设要要编译一个一个C言言语源程序源程序,我我们要运用要运用GCC编译器,器, 为ANSI C编写的写的编译程序。

      程序•假假设我我们有下面一个非常有下面一个非常简单的源程序的源程序(hello.c):•     int main(int argc,char **argv)   { printf("Hello Linux!\n");   } •  hi.baidu/%C7%E5%D3%C6%CE%D2%D0%C4/blog/item/be537f8a09d82ac8fc1f10e9.html C言语编程言语编程 •GCC命令的根本用法如下:命令的根本用法如下:•                   gcc [options] [filenames]•当不用任何当不用任何选项编译选项编译一个程序一个程序时时,,GCC将建立将建立〔 〔假假定定编译胜编译胜利利〕 〕一个名一个名为为a.out的可的可执执行文件•例如:例如:                   gcc  hello.c•    编译胜编译胜利后,当前目利后,当前目录录下就下就产产生了一个生了一个a.out文文件C言语编程言语编程 •命令行命令行选项指定的指定的编译过程中的程中的详细操作,操作, GCC有超越有超越100个的个的编译选项可用,可用,这些些选项中的中的许多多能能够大家永大家永远都不会用到,常用的有:都不会用到,常用的有:•-o 选项  表示表示创建可建可执行代行代码保管在保管在‘文件文件’中,而不中,而不是默是默许文件文件a.out  •例如:例如:              gcc  –o  hello  hello.c•  此此时得到的可得到的可执行文件就不再是行文件就不再是a.out,而是,而是hello。

      C言语编程言语编程 -c选项选项 表示只需求表示只需求编译编译器器输输出目的代出目的代码码,而不而不输输出可出可执执行文件行文件. 例如例如: gcc –c hello.c gcc hello.o –o hello第一步将第一步将产产生生hello.o目的文件,当有多个源文件目的文件,当有多个源文件时时,假,假设设只需一个或几个源文件只需一个或几个源文件发发生改生改动动可以采可以采用用这这种方式来种方式来编译编译,,节节省省编译时间编译时间gcc –c hello.c driver.c stack.cgcc hello.o driver.o stack.o –o hello 2〕〕执行文件行文件 格式:格式: ./可可执行文件名行文件名例:例: ./a.out ./helloC言语编程言语编程 •3〕灾〕灾难性性编译程序命令程序命令• gcc hello.c –o hello.c•执行行结果?果?• 源文件被可源文件被可执行代行代码覆盖,覆盖,意味着永意味着永远丧失了源文件!失了源文件!C言语编程言语编程 4〕程序的调试〕程序的调试LINUX包含了一个叫包含了一个叫gdb的调试程序的调试程序, 是一个用来调试是一个用来调试C和和C++程序的强有力调试器。

      它使他能在程序运程序的强有力调试器它使他能在程序运转时察看程序的内部构造和内存的运用情况它具转时察看程序的内部构造和内存的运用情况它具有以下一些功能:有以下一些功能:• 监视程序中程序中变量的量的值;;• 设置断点以使程序在指定的代置断点以使程序在指定的代码行上停行上停顿执行;行;• 单步步执行代行代码C言语编程言语编程 运用运用举例例(1)设有一源程序有一源程序 greet.c(2)编译,,gcc -g –o greet greet.c,出,出错(3)gdb greet ,出,出现提示符提示符 (gdb) 此此时可在提示符下可在提示符下输入入gdb的命令了,如:的命令了,如: (gdb) run (gdb) list(4)退出退出调试形状,前往系形状,前往系统提示符下,提示符下, (gdb)quit gdb根本命令根本命令命命 令令 描描 述述file装入欲装入欲调试的可的可执行文件行文件kill终止正在止正在调试的程序的程序list列出列出产生生执行文件的源代行文件的源代码部分部分next执行一行源代行一行源代码但不但不进入函数内部入函数内部step执行一行源代行一行源代码并并进入函数内部入函数内部run执行当前被行当前被调试的程序的程序quit终止止gdbwatch监视一个一个变量的量的值而不管它何而不管它何时被改被改变break在代在代码里里设置断点,使程序置断点,使程序执行到行到这里里时被挂起被挂起make不退出不退出gdb就可以重新就可以重新产生可生可执行文件行文件shell不离开不离开gdb就就执行行UNIX shell 命令命令 第二章第二章 UNIX根底知识根底知识•系统的启动过程系统的启动过程•UNIX文件构造简介文件构造简介•C言语编程言语编程•Makefile的编写的编写•UNIX shell 编程编程 第二章第二章 UNIX根底知识根底知识•系统的启动过程系统的启动过程•UNIX文件构造简介文件构造简介•C言语编程言语编程•Makefile的编写的编写•UNIX shell 编程编程 1. Shell概述概述 一、什么是一、什么是Shell ? shell是一个命令解是一个命令解释释器,它可器,它可实现实现启启动动、挂起、停、挂起、停顿顿,甚至,甚至编编写程序;写程序; shell是是用是是用户户与操作系与操作系统统中心之中心之间间的接口;的接口; Shell是包是包围围操作系操作系统统内核的外壳的内核的外壳的软软件。

      件 二、两大二、两大类类Shell 1、、“Bourne shell〞,如〞,如sh、、bsh、、bash等;等; 2、、“C shell〞,如〞,如csh、、tcsh 三、三、为为什么要运用什么要运用shell 在在shell提示下的命令操作要比在提示下的命令操作要比在GUI下更有效、更下更有效、更快,但需熟快,但需熟记记命令 2. shell命令运用常命令运用常识识 一、一、进进入入shell的命令等待形状的命令等待形状 1、从、从GUI进进入字符方式入字符方式 按按Ctrl+Alt+F1~F6进进入字符界面虚入字符界面虚拟终拟终端 按按Alt+F7前往前往GUI虚虚拟终拟终端Alt+F1~Alt+F6从字从字符界面虚符界面虚拟终拟终端端间间的切的切换换 2、从、从GUI进进入入终终端方式端方式 点点击击“主菜主菜单单|系系统统工具工具|终终端端〔 〔Terminal〕 〕〞〞 4、字符方式下、字符方式下进进入入GUI 输输入命令:入命令:# startx 3、、Shell环环境中的命令提示符号境中的命令提示符号 [ root@smth root ] # 用用户户名名 主机名主机名 目目录录名名 提示符提示符 〔 〔1〕 〕shell的提示符有二种:的提示符有二种: “#〞:表示当前用〞:表示当前用户户是超是超级级用用户户。

      “$〞:表示当前用〞:表示当前用户户是普通用是普通用户户 〔 〔2〕 〕目目录录名:当前所在的子目名:当前所在的子目录录 〔 〔3〕 〕主机名:他的主机名:他的Linux系系统统的主机名的主机名 〔 〔4〕 〕用用户户名:当前登名:当前登录录的用的用户户名 4、、 Shell命令格式命令格式Shell语语法构造法构造             构造:构造: 命令命令   [选项选项]   [参数参数]  eg1: 关机关机      # shutdown  –h  now  ←┘       #  shutdown  -h  9:00    ←┘          9点点钟钟关机关机    1)   单条命令单条命令:     $ cat   file1      最常用命令方式最常用命令方式2)   多条命令多条命令:     $ pwd; who; date    提高键盘命令输入效率提高键盘命令输入效率3)  复合命令复合命令:   $ (ls ; cat file3 ; pwd)  >  run_log  方便灵敏方便灵敏, 运转效率高运转效率高 建立一个脚本建立一个脚本 •运用任何一种编辑工具来编辑器来编写运用任何一种编辑工具来编辑器来编写shell程序程序 •程序必需以下面的行开场〔必需方在文件的第一行〕:程序必需以下面的行开场〔必需方在文件的第一行〕:     #!/bin/bash•   该行阐明该文件是一个该行阐明该文件是一个 BASH 程序,需求由程序,需求由 /bin 目目录下的录下的 bash 程序来解释执行程序来解释执行•Example• #!/bin/bash# This is a very simple exampleecho Hello World UNIX shell 编程编程•如何执行该程序如何执行该程序 • chmod +x filename • 输入输入 ./filename 来执行脚本来执行脚本      UNIX shell 编程编程•变量变量 在 在shell编程中,一切的变量都由字符串组成,并且不编程中,一切的变量都由字符串组成,并且不需求对变量进展声明。

      要赋值给一个变量可以这样写:需求对变量进展声明要赋值给一个变量可以这样写: 变量名变量名=值值 〔等号两边不能有空格〔等号两边不能有空格 〕〕 取出变量值可以加一个美圆符号〔 取出变量值可以加一个美圆符号〔$〕在变量前面〕在变量前面 常用系常用系统变量量:$0 当前当前shell程序的名字程序的名字$1 ~ $9 命令行上的第一到第九个参数命令行上的第一到第九个参数$# 命令行上的参数个数命令行上的参数个数$* 命令行上的一切参数命令行上的一切参数$@ 分分别用双引号援用命令行上的一切参数用双引号援用命令行上的一切参数$$ 当前当前进程的程的进程程标识号号(PID)$? 上一条命令的退出形状上一条命令的退出形状$! 最后一个后台最后一个后台进程的程的进程程标识号号系系统变量只能援用不能修正量只能援用不能修正! 例如:例如:$ echo aa $$aa 2391$ cat file1 file2 > file3 > errlog$ echo $?1 (非非0表示命令运表示命令运转失失败, 错误信息在信息在errlog 文件中文件中)$ echo This is a test. (单词间多个空格多个空格)This is a test.$ echo “This is a test.〞〞 (用引号包括用引号包括时结果如何果如何?) 部分部分变量量(用用户变量量) 部分部分变量是由用量是由用户根据需求恣意根据需求恣意创建的建的. 变量量名通常由一个字母后跟零个到多个字母、数字或名通常由一个字母后跟零个到多个字母、数字或下划下划线组成。

      援用成援用变量的量的值时,在,在变量名前面加量名前面加上上$符号符号. 例如例如:$ AA=123 $ echo $AA 123 (变量量AA的的值)$ B=“this is a string〞〞 (字符串中有空格字符串中有空格时用引用引号号)$ echo $B this is a string (变量量B的的值) 单引号、双引号、反撇号和花括号引号、双引号、反撇号和花括号$ a=“he is a student〞〞$ echo “She said: $a〞〞She said: he is a student$ b=‘The value of a is $a’$ echo $bThe value of a is $a shell规定定单引号制止引号制止变量交量交换, 元字符元字符$和和*等等坚持其符号本身持其符号本身; 而双引号允而双引号允许元字符元字符变量交量交换.$ c=“The value of a is $a〞〞$ echo $cThe value of a is he is a student $ a=date$ echo $adate (变量变量a的值是字符串的值是字符串date)$ b=`date`$ echo $bSat Feb 1 16:28:19 2021 (变变量量b的的值值是反撇号中命令的是反撇号中命令的执执行行结结果果)$ c=‘There is a teach’$ echo “$cer reading room〞〞reading room (无无变变量量cer, 用空串替代用空串替代)$ echo “${c}er reading room〞〞There is a teacher reading room (花括号将花括号将变变量名和后面的字符串区分开量名和后面的字符串区分开) if...then...else •if [ expression ]then    statmentselse    statmentsfi #!/bin/bashif test $1 -ge 90 then echo "A: Good,$1" else if test $1 -ge 70 then echo "B:OK,$1" else if test $1 -ge 60 then echo "C: PASS" else echo "D: FAILD,$1" fi fi fiexit 0 附:文本附:文本编辑器器vi    vi是是UNIX系系统提供的提供的规范的屏幕范的屏幕编辑程序,程序小程序,程序小而功能很而功能很强。

          1、、vi的启的启动           # vi  test     2、、vi的三个方式的三个方式    ①①命令方式命令方式---按按键“ESC〞,〞,②②输入方式入方式---按按键i  ③③最后行方式最后行方式—按按键“:〞:〞        3、存、存盘与退出:与退出:        *在命令方式下,在命令方式下, 键入入 ZZ〔留意大写,已有文件〔留意大写,已有文件名〕名〕        * 在最后行方式:在最后行方式: ①① ::wq 〔已有文件名〕〔已有文件名〕   ②② ::w  文件名文件名                                      ③③ ::q!〔不保管退出〕!〔不保管退出〕   ④④ ::q   〔无〔无变动退出〕退出〕    4、文本、文本编辑     命令方式文本编辑方式最后行方式 :自动前往Esca、i等 作业作业•上机练习课堂内容•五人一组 ,选一个组长• 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.