1、内核在执行系统调用时,处于进程上下文状态,current指针指向调用 系统调用的进程。
2、在进程上下文中
(1)内核可休眠(比如在系统调用阻塞或显式调用 schedule()时)。
休眠说明系统调用可使用内核提供的绝大部分功能。
(2)内核可被抢占
就像用户空间内的进程一样,当前进程同样可被其它进程抢占。因为新的进程要使用相同的系统调用,所以必须小心,保证该系统是可重入。
当系统调用 返回时,控制权仍然在system_call()中,它最终会切换到用户空间,让用户进程继续执行
3、系统调用的绑定:
系统调用必须编译进内核,不能编译成模块
以sys_mytest 为例
(1)在系统调用表中最后加入一项,观察其最后一项调用号多少,一般加1即可,从0开始编号
在entry.s中

ENTRY(sys_call_table)
.long sys_restart_syscall/*0*/
...
.long sys_recvmsg/*337*/
.long sys_mytest

(2)将系统调用号加入<asm/unistd.h>
#define __NR_mytest 338
(3)实现mytest()调用
kernel/sys.c 文件中(也可根据其功能放入联系最紧密的代码中)

#include <asm/page.h>
asmlinkage long  sys_mytest(void){........return ......
}

linux内核杂记(15)-系统调用(2)相关推荐

  1. linux内核杂记(16)-系统调用(3)

    1.系统调用的2种使用方式: (1)靠C库支持,用户程序通过包含标准头文件并和C库链接,可使用系统调用 (2)调用库函数,再由库函数实际调用. 提示:如果你只写出系统调用,glibc库恐怕不提供支持. ...

  2. linux内核杂记(13)-系统调用(1)

    1.系统调用 在用户空间进程和硬件 设备之间增加了一具中间层.其作用如下: (1)为用户空间提供了一种硬件 的抽象接口. (2)保证了系统的稳定 和安全 (3)每个进程 运行在虚拟系统中,而在用户空间 ...

  3. Linux内核深入理解系统调用(3):open 系统调用实现以及资源限制(setrlimit/getrlimit/prlimit)

    Linux内核深入理解系统调用(3) open 系统调用实现以及资源限制(setrlimit/getrlimit/prlimit) rtoax 2021年3月 对原文进行了5.10.13的代码分析. ...

  4. Linux内核深入理解系统调用(2):vsyscall 和 vDSO 以及程序是如何运行的(execve)

    Linux内核深入理解系统调用(2) vsyscall 和 vDSO 以及程序是如何运行的(execve) rtoax 2021年3月 1. vsyscalls 和 vDSO 这是讲解 Linux 内 ...

  5. 跟踪分析Linux内核5.0系统调用处理过程

    跟踪分析Linux内核5.0系统调用处理过程 学号384 原创作业转载请注明出处+中国科学技术大学孟宁老师的Linux操作系统分析 https://github.com/mengning/linuxk ...

  6. linux内核打开prntk,操作系统实验一向Linux内核增加一个系统调用.docx

    操作系统实验一: 向Linux内核增加一个系统调用 xx 711103xx 2012年3月18日 一.实验目的 通过实验,熟悉Linux操作系统的使用,掌握构建与启动Linux内核的方法:掌握用 户程 ...

  7. Linux内核深入理解系统调用(1):初始化-入口-处理-退出

    Linux内核深入理解系统调用(1):初始化-入口-处理-退出 rtoax 2021年3月 1. Linux 内核系统调用简介 这次提交为 linux内核解密 添加一个新的章节,从标题就可以知道, 这 ...

  8. linux的第一个内核,Linus Torvalds启动了第一个RC版本的Linux内核4.15

    Linus Torvalds发布了Linux 4.15内核系列的第一个RC(Release Candidate)里程碑,该版本从Linux内核4.14 LTS开始,在标准的两周合并窗口后开始了开发周期 ...

  9. AlmaLinux、CentOS、Rocky Linux 8 如何更新到 Linux 内核 5.15

    请访问原文链接:https://sysin.org/blog/centos-8-upgrade-kernel/,查看最新版.原创作品,转载请保留出处. 作者:gc(at)sysin.org,主页:ww ...

最新文章

  1. 北大博士“最高荣誉”,出炉!
  2. 20道常见初级Java面试题
  3. 社区v2022.3版上线:发帖、看直播、评论体验升级,并支持机构号申请
  4. TOJ_1003题解
  5. 于ubuntu配置hadoop当问题
  6. 中国金融数字科创大赛丨神策数据客户——深圳农商银行、昆山农商银行斩获「双奖」
  7. JsTree实现简单的CRUD
  8. WebbUpload上传组件(cnblog 一位网友写的)
  9. JavaScript类型转换的有趣应用
  10. 从零开始的Python学习Episode 20——面向对象(3)
  11. 张国荣的25年演艺生涯
  12. Win10磁盘管理教程:新建、合并分区,添加和修改盘符
  13. 什么是一套完全私有的即时通讯系统
  14. Modra Pharmaceuticals于2021 ASCO GU年会公布其转移性前列腺癌IIb期临床试验初步数据
  15. 数值计算笔记-部分主元消去cholesky分解
  16. HIS 与医保系统的接入方案及实现
  17. 事实胜于雄辩,激素性皮炎的治疗激素皮炎的治疗面部激素性皮炎在康本
  18. 微信小程序 之 云开发
  19. 优于FCOS:在One-Stage和Anchor-Free目标检测中以最小的成本实现最小的错位(代码待开源)...
  20. 中国债券信息网——债券募集说明书

热门文章

  1. 关于zookeeper中session timeout
  2. Jmeter 断言使用
  3. tomcat启动时错误:Cannot rename original file to *.tomcat-users.xml.old
  4. JavaScript教程--从入门到精通
  5. Node,Document,HTMLDocument,HTMLCollection解析
  6. OC中runtime的使用
  7. setTimeout
  8. Unobtrusive Ajax
  9. 博客页面运行代码demo测试
  10. 70条WB, IHC常见实验问题解决方案汇总