第四章 Linux系统调用.ppt_第1页
第四章 Linux系统调用.ppt_第2页
第四章 Linux系统调用.ppt_第3页
第四章 Linux系统调用.ppt_第4页
第四章 Linux系统调用.ppt_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章 Linux系统调用 目标 本章旨在向学员介绍系统调用的基本原理及如何在Linux中添加系统调用 时间 3小时教学方法 讲述 4 1Linux内核开发的特点 内核编程不能访问C库内核编程是必须使用GNUC内核编程缺乏像用户空间编程的内存保护机制内核只有很小的定长栈由于内核支持异步中断 smp和抢占 因此必须时刻注意同步和并发可移植性不要轻易在内核中使用浮点数 4 2系统调用的概念 操作系统做为计算机的资源管理者 需要一种手段为用户进程提供一种手段用来访问计算机资源 这一手段就是系统调用 通过系统调用 应用程序可以安全 有效的访问和使用计算机的资源 4 2系统服务接口的种类 系统调用接口系统调用是内核向用户进程提供服务的唯一手段 用户进程只能直接或间接的通过系统调用访问系统资源系统调用涉及系统状态的改变 在用户进程通过系统调用访问系统资源时 系统会从用户态切换到内核态 执行相应的内核态函数 完成相应的任务后放回内核态 应用编程接口API接口 LinuxAPI遵循POSIX标准C库函数 系统调用的高级封装 4 3系统调用访问方法 使用C库函数使用通用接口使用内嵌汇编 4 3 1使用C库函数getpid include includeintmain intargc char argv printf uselibc pidis d n getpid c库封装函数return0 4 3 2使用通用接口接口syscall 通过Glibc库中提供的通用接口函数syscall 访问系统调用该函数位于 usr include unistd h文件中 include includeintmain printf usesyscall pidis d n syscall NR getpid return0 4 3 3使用内嵌汇编 内核在头文件 src include asm unistd h中提供7个宏 syscall0 syscall1 syscall6 分别用来调用不同参数的系统调用 define syscall0 type name typename void long res asm volatile int 0 x80 a res 0 NR name syscall return type res 4 4系统调用的工作机制 4 4 1系统调用的基本要素 系统调用门Linux系统调用是通过软中断实现的 在内核的初始化阶段就为系统调用设置0 x80中断门 系统调用必须通过系统调用门的检测 然后切换到进程的内核态 内核态栈为了保证系统数据不被非法访问 必须保证不同运行级别的数据相互隔离 即用户进程的每种运行态都有独立的栈空间 系统调用号系统调用表 4 5系统调用的处理过程 请求系统调用 include definegetpid syscall num20intmain intpid asm int 0 x80 a pid 0 getpid syscall num printf pidis d n pid printf pidis d n getpid return0 处理系统调用硬件处理阶段 权限检查 现场保存 调用syscall 汇编函数软件处理阶段 根据系统调用号调用相应的内核处理函数sys getpid 4 6添加系统调用 系统调用名字为Mysyscall 新的系统调用返回系统滴答值jiffies系统调用添加步骤修改系统调用表arch i386 kernel syscall talbe s添加系统调用号src include asm u

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论