概述
prctl系统调用提供了一系列操作进程的方法。
这里主要说明一下PR_SET_SECCOMP参数是如何触发IPI的。
seccomp 是 secure computing 的缩写,是 Linux kernel 从2.6.23版本引入的一种简洁的沙盒 sandboxing 机制。
在 Linux 系统里,大量的系统调用(system call)直接暴露给用户态程序。但是,通常的程序并不需要所有的系统调用,滥用系统调用会对系统造成安全威胁。
seccomp安全机制能使指定的进程进入到一种“安全”运行模式,该模式下的进程要么只能调用4种系统调用(system call),即 read(), write(), exit() 和 sigreturn(),要么只能运行用户指定的系统调用,这些可以运行的系统调用放到白名单中,如果调用其他系统调会发送错误信号给进程。
进程调用系统调用prctl,如果参数为PR_SET_SECCOMP,那么后面会为安全考虑,会将一些页面的权限设置为只读,这是通过调用set_memory_ro函数实现。
更新了页面的权限后,需要刷新TLB,因此会调用flush_tlb_all,这样就会向所有线上cpu发送IPI来刷新TLB。
因此,在实时系统中使用prctl系统调用必须小心,因为有可能因为刷新TLB触发IPI,影响系统的确定性。
最后
以上就是过时小土豆为你收集整理的linux prctl系统调用触发IPI的全部内容,希望文章能够帮你解决linux prctl系统调用触发IPI所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复