Linux
发布时间:2022-03-31 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux-kernel – 用户定义的页面错误和异常处理程序,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
概述
我试图了解我们是否可以在内核/用户模式下添加页面错误处理程序/异常处理程序,并在将控件返回给内核之前处理我们引发的错误. 这里的任务不是修改现有的内核代码(do_page_fault fn),而是添加一个用户定义的处理程序,当页面错误或异常被触发时将被查找 人们可以找到像“kprobe”这样的工具,它们可以在指令中提供钩子,但看起来这样做不符合我的目的. 如果有人可以帮助我理解这一点或指向好的参
考
我试图了解我们是否可以在内核/
用户模式下
添加页面错误处理程序/异常处理程序,并在将控件返回给内核之前处理我们引发的
错误.
这里的任务不是
修改现有的内核
代码(do_page_fault fn),而是
添加一个用户定义的处理程序,当
页面错误或异常被触发时将被查找
人们可以找到像“kprobe”这样的工具,它们可以在指令中提供钩子,但看起来这样做不符合我的目的.
如果有人可以帮助我理解这一点或指向好的参考,那将会很棒.
从
用户空间,您可以为SIGSEGV定义信号处理程序,因此无论何时进行无效的内存访问,都将
调用您自己的
函数.当与mprotect()结合使用时,程序可以管理自己的虚拟内存,
所有这些都来自
用户空间.
但是,我得到的印象是,您正在寻找一种方法来拦截所有页面错误(主要,次要和无效)并在响应中调用任意内核函数.我不知道干净的方法.当我在自己的研究项目中需要这个功能时,我最终将代码添加到do_page_fault().它对我来说很好,但它是一个黑客.如果有人知道一个干净的方法来做这件事我会很感兴趣(即,可以由香草内核上的模块使用).
大佬总结
以上是大佬教程为你收集整理的linux-kernel – 用户定义的页面错误和异常处理程序全部内容,希望文章能够帮你解决linux-kernel – 用户定义的页面错误和异常处理程序所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。