linux采用系统调用子进程,LINUX下系统调用的研究.ppt

LINUX下系统调用的研究 07通信张捷 目录 系统调用的含义系统调用的功能系统调用的分类Shell的设计小结致谢 系统调用含义 系统调用是Unix Linux操作系统向用户程序提供支持的接口 通过这些接口应用程序向操作系统请求服务 控制转向操作系统 而操作系统在完成服务后 将控制和结果返回给用户程序 系统调用的功能 系统调用可以看作是一个所有Unix Linux进程共享的子程序库 但是它是在特权方式下运行 可以存取核心数据结构和它所支持的用户级数据 系统调用的主要功能是使用户可以使用操作系统提供的有关设备管理 文件系统 进程控制进程通讯以及存储管理方面的功能 而不必要了解操作系统的内部结构和有关硬件的细节问题 从而减轻用户负担和保护系统以及提高资源利用率 系统调用的分类 与文件子系统交互的和进程子系统交互的两个部分 其中和文件子系统交互的部分进一步由可以包括与设备文件的交互和与普通文件的交互的系统调用 与进程相关的系统调用又包括进程控制系统调用 进程间通讯 存储管理 进程调度等方面的系统调用 Shell的简介 Shell是一个命令解释器 它解释由用户输入的命令并且把它们送到内核 不仅如此 Shell有自己的编程语言用于对命令的编辑 它允许用户编写由shell命令组成的程序 Shell编程语言具有普通编程语言的很多特点 比如它也有循环结构和分支控制结构等 用这种编程语言编写的Shell程序与其他应用程序具有同样的效果 shell设计原理 1 程序的主框架为 for 1 显示提示符 2 读入一行命令 3 判断此命令是否为 exit 若是则退出 4 分析并执行这条命令 2 命令行上的每一行输入都被视为一个简单命令 它由多个以空白字符 空格或制表符 分隔的词组成 第一个词是命令名 后面各词为命令的参数 词定义为不含空白字符和换行符的字符窜 并采用专业的语法分析工具flex 对语法进行扩展和修改 3 利用系统调用函数fork 创建子进程 当子进程创建成功后会执行函数调用execvp 此调用将会执行用户输入的命令并传递参数 shell设计器材与软件环境 本实验是在Liunx环境下设计完成的 考虑到系统硬件环境的限制 Linux安装在虚拟机上 可以实现Linux与初始操作系统之间的交互 所用windosXP系统 联想ideapad笔记本电脑 shell操作方法与设计步骤 设计的代码主要有三个部分主程序输入文件Makefile文件 小结 按照书上的代码 利用系统调用和子进程的创建 调试成功一个简单的命令解释器 它能够执行简单命令并传递参数 并以此为起点 加入其它自己感兴趣的东西 如管道 命令列表 任务控制和重定向等 最终成功的设计出一个shell命令解释器 致谢 首先感谢我的导师肖伟老师在学习中的悉心指导和热心帮助 无论在本设计的课题选择 资料搜集还是在撰写过程乃至最后的定稿中 肖老师都给予了精心指导 为作者的学习和科研工作付出了大量的心血 尤其是导师渊博的知识 严谨的治学态度 敏锐的观察和洞察能力和科学的思维方式更使作者受益匪浅 在这里 对导师表示最衷心的感谢和最诚挚的敬意 感谢诸位老师的悉心指导和宝贵建议 感谢在参考文献中列出的所有作者 衷心感谢各位专家 教授 学者对本论文的评审 并欢迎提出宝贵意见

展开阅读全文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值