Closed draveness closed 2 years ago
感谢博主
感谢博主,受益匪浅。
感谢博主分享,还有想请教一下博主,您制图使用的是什么工具呢?看起来效果挺好的
@chenwaichung 感谢博主分享,还有想请教一下博主,您制图使用的是什么工具呢?看起来效果挺好的
你可以在 技术文章配图指南 中找到画图的方法和素材。
rt_sigreturn 应该是用于信号处理函数结束后的返回. (但是我在ubuntu 20.04下调试发现从信号处理函数返回的时候用的还是 syscall
指令 而不是通过 vdso
段)
我猜测从信号处理函数返回的时候通常是从用户态返回到用户态的. 所以通过 vdso
段实现这个功能的话相比通过 syscall
的实现方法可以避免一个 用户态->内核态->用户态 的开销. 关于安全风险我认为 sigreturn
这个系统调用只是通过从用户态的栈上读取的数据修改寄存器, 并没有涉及到内核中数据的修改. 所以移到 vdso
段应该也没有什么安全风险.
以上只是我关于两个问题的一下看法. 欢迎讨论.
@draveness
@chenwaichung 感谢博主分享,还有想请教一下博主,您制图使用的是什么工具呢?看起来效果挺好的
你可以在 技术文章配图指南 中找到画图的方法和素材。
哈哈哈 我都替博主感到冤……输出这么好的东西咋就没人多看看呢 几乎每篇文章都有人问图咋画的~
首页[为什么 Linux 默认页大小是 4KB]和本文的链接都指向了本文,应该是bug
首页[为什么 Linux 默认页大小是 4KB]和本文的链接都指向了本文,应该是bug
多谢,修好了
感谢博主分享
感谢博主
非常感谢博主这么好的文章,受益匪浅。
有个问题想确认一下。 对于以下描述:
执行 SAVE_ALL 将寄存器的值存储到内核栈上并调用 do_int80_syscall_32;
我的理解是,这个过程中把寄存器的值存储到内核栈上,是因为要把CPU当前执行的上下文数据暂存到内核栈上,之后等系统调用完成后,再通过内核栈中暂存的数据,恢复到寄存器中,同时把系统调用的返回值写入内核栈中。
不知道我这样理解对吗?
非常感谢博主这么好的文章,受益匪浅。 有个问题想确认一下。 对于以下描述:
执行 SAVE_ALL 将寄存器的值存储到内核栈上并调用 do_int80_syscall_32;
我的理解是,这个过程中把寄存器的值存储到内核栈上,是因为要把CPU当前执行的上下文数据暂存到内核栈上,之后等系统调用完成后,再通过内核栈中暂存的数据,恢复到寄存器中,同时把系统调用的返回值写入内核栈中。 不知道我这样理解对吗?
可以这么理解,主要是怕系统调用的过程中把寄存器里的值覆盖了,这样回到用户态数据就丢失了。
博主可以增加一个双击图片放大的功能吗,文章的图2字挺小的,想放大看。
@zhang0peter 博主可以增加一个双击图片放大的功能吗,文章的图2字挺小的,想放大看。
不能用触控板双指放大么...
@zhang0peter 博主可以增加一个双击图片放大的功能吗,文章的图2字挺小的,想放大看。
不能用触控板双指放大么...
台式机没有触控板。。。
@zhang0peter
@zhang0peter 博主可以增加一个双击图片放大的功能吗,文章的图2字挺小的,想放大看。
不能用触控板双指放大么...
台式机没有触控板。。。
浏览器可以缩放吧,ctrl加+/-
https://draveness.me/whys-the-design-syscall-overhead/