高级操作系统AdvancedOperatingSystem0000.ppt
《高级操作系统AdvancedOperatingSystem0000.ppt》由会员分享,可在线阅读,更多相关《高级操作系统AdvancedOperatingSystem0000.ppt(40页珍藏版)》请在三一文库上搜索。
1、高级操作系统 Advanced Operating System,北方工业大学计算机系 North China University of Technology Department of Computer 授课教师:宋丽华 Email: Tel: 88803939 五教1102,第二章 UNIX基础知识,系统的启动过程 UNIX文件结构简介 C语言编程 Makefile的编写 UNIX shell 编程,2.1 系统的启动过程,操作系统的启动经历三个过程 系统引导 核心初始化 系统的初始化,1 )系统引导,把UNIX系统核心装入内存并且让它开始执行的工作叫做系统引导。 上电。 BIOS(保存
2、在主板上的闪存中)检查系统硬件。 加载主引导程序,即(从硬盘0头,0道,0扇区)寻找/unix文件,并将该文件装入内存。 内核装入程序将控制权交给新装入的内核从而使之得以运行。,2)内核初始化,(1)初始化少量的硬件接口、初始化系统时钟、初始化存储管理。还要初始化少量的数据结构。 (2)初始化进程0 注:进程0没有代码段,它就是一个进程数据结构。 (3)进程0创建进程1,3)系统初始化,(1)进程1执行系统调用exec,系统程序/sbin/init 读取配置文件/etc/inittab,按照其中的配置对系统进行初始化。激活交换分区,检查磁盘,加载硬件模块,启动对应运行级别的守护进程。 (2)i
3、nit为每一条通信线路创建一个getty进程来实现多用户方式。 (3)等待用户注册,检查用户的登录口令建立shell进程。 (4)当shell程序退出时,init程序就醒来,调用系统调用fork/exec产生一个新的getty程序来监督通信线路并等待下一个注册。,第二章 UNIX基础知识,系统的启动过程 UNIX文件结构简介 C语言编程 Makefile的编写 UNIX shell 编程,UNIX文件结构简介,层次结构:UNIX文件系统被组织成树型结构。在UNIX系统的常见的目录有:bin、etc、usr、unix、dev等。一个路径名不一定非要从根目录开始,如果省略路径名则说明为当前目录。
4、对文件数据一致对待:在UNIX系统中,程序并不知道文件存储的内部格式,程序把所有的文件内容都当作无格式的字节流看待。程序是按照自己的应用需要来解释文件的内容。,文件系统的树状结构,/目录:目录树的根,用于保存系统的内核文件和系统启动文件。 /dev目录:用于保存系统的设备文件。 /usr目录:用于保存系统正常运行时使用的系统应用程序,其中/usr/bin放置系统执行文件,/usr/src中放置系统的源代码。 /etc目录:用于保存系统的配置文件,包括passwd, rc等非常重要的文件,也被放置到根文件系统中。 /bin目录:保存了用于系统维护目的的执行文件。 /tmp目录:用于存放程序运行产
5、生的临时文件,这个目录也是每个用户都可写的,在系统启动时将自动清空这个 目录。 /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“); http:/ gcc options filenames 当不用任何
6、选项编译一个程序时,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
7、hello.o o hello 第一步将产生hello.o目标文件,当有多个源文件时,如果只有一个或几个源文件发生改变可以采用这种方式来编译,节省编译时间。 gcc c hello.c driver.c stack.c gcc hello.o driver.o stack.o o hello,2)执行文件 格式: ./可执行文件名 例: ./a.out ./hello,C语言编程,3)灾难性编译程序命令 gcc hello.c o hello.c 执行结果?,源文件被可执行代码覆盖, 意味着永远丢失了源文件!,C语言编程,4)程序的调试 LINUX包含了一个叫gdb的调试程序, 是一个用来调试
8、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基本命令,第二章 UNIX基础知识,系统的启动过程 UNIX文件结构简介 C语言编程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 操作系统 AdvancedOperatingSystem0000
链接地址:https://www.31doc.com/p-2480247.html