os2-2操作系统经典课件.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
四. LINUX操作系统 概述 Linux系统发展 Linux的硬件要求 Linux的安装 操作系统的安装概念 Linux的深入使用 系统调用 Shell命令 1. 概述 Linux系统发布方式 2.操作系统的安装 因为硬盘是PC机的固定外部存储设备,从硬盘上加载程序到内存很方便。 另外,操作系统中的文件系统主要是靠硬盘提供物理支持,安装操作系统到硬盘,实际上有两方面的作用:一是在硬盘上建立文件系统,二是把操作系统的全部内容事先存放在硬盘上以便往内存中加载操作系统核心程序时使用。 建立硬盘分区 每个操作系统占用一分区 分区的各种情况 硬盘还有未分区空间 硬盘还有未使用分区 所用分区上还有未使用空间 重 新 分 区 3.Linux的深入使用 系统调用 Shell pipe int pipe(fildes); int fildes[2] 建立进程间的通道,返回两个描述: fildes[0] 用于读管道。 fildes[1]用于写管道。 close close(fildes); int fildes; 关闭文件描述符 dup int dup(fildes);  复制文件描述符,成功则返回新的文件描述符,是最低有效文件描述符,失败则返回-1。 int fildes; 从某个creat,open,dup,fcntl,或者pipe得到的文件描述符。 exit void exit(status) int status; 在调用进程中的所有打开的文件描述符统统被关闭。 如果调用进程的父进程正在执行一个wait,那么通告它调用进程的结束并使得status的低八位有效,即0377 如果调用进程的父进程不是正在执行wait,那么调用进程被变换成“已经僵死”的进程,即仅占用进程表一个槽的进程,用户空间和核内空间都为分给该进程。 execl execl(path,arg0,arg1,…,argn,(char *)0); char *path, *arg0,*arg1,…,*argn; 执行一个文件,成功则用path文件覆盖当前调用者文件,失败则有返回。 fork( ) int fork( ); 建立子进程 返回值: 0 子进程返回 〉0 父进程返回的子进程标识符pid -1 进程创建失败 open #include fcntl.h int open(path,oflag[,mode]) char *path; //文件路径 int oflag,mode;//状态标志 read int read(fildes,buf,nbyte) int fildes; char *buf; unsigned nbyte; fildes是从某个creat, dup, open, fcntl, pipe调用中返回的文件描述符。 write int write(fildes,buf,nbyte) int fildes; char *buf; unsigned nbyte; 系统调用:预处理宏指令 实现系统调用的汇编指令 int $ ox80 C语言中有相应的子程序对应机器指令 将参数送入到CPU的一个寄存器中 预处理宏指令:方便实用系统调用,需要一定的参数的扩充 格式:_syscallN(parameters) N:系统调用需要的参数个数 parameters:一组参数 实例: _syscall1(int, setuid, uid_t, uid) 系统调用:增加新的系统调用 增加源代码 连接新的系统调用 重建Linux内核 用新内核启动系统 使用新的系统调用 (1)增加源代码 新的系统调用名称前面加上sys_标志。 在sys.c文件中添加新代码。 asmlinkage int sys_mycall(int number) { return number; } (2)连接新的系统调用 修改unistd.h 分配系统调用号 #define _NR_name NNN 修改entry.s 加入新的系统调用函数的入口地址 对sys_call_table[]初始化 .long SYMBOL_NAME(sys_系统调用名称) (3)重建Linux内核 只能在/usr/src/linux 目录下运行 #make menuconfig (选择exit并保存配置) #make dep # make bzImage # make modules # make modules_install # make install 在/boot目录下可找到新生成的执行程序 (4)用新内核启动系统 选择增加了新的系统功能的操作系统 (5)使用新的系统调用 系统调用?程序级接口 P57实例 Shell 操作系统内核的外壳。 是命令语言、命令解释程序及(解释型)程

文档评论(0)

cai + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档