CPU的寄存器如何被用来传递参数给系统调用?
一开始,参数在CPU’s 寄存器里面,然后当系统调用的时候,CPU会将寄存器里面的参数复制到内核空间kernel space
,或者说堆栈stack
中。
如果系统调用有很多参数,这可能会导致什么问题?
因为CPU里面只有8个通用32位寄存器:eax,ebx,ecx,edx,esi,edi,ebp,esp,除了eax和esp两个特殊的,只有剩下的6个general-purpose register
通用寄存器可以存东西。
最多存32位的东西,最多存6个东西,所以多了会出错。
提出一种传递参数的替代方法,以避免这个问题
6个寄存器,随便挑几个寄存器,用这些寄存器存指针,指针指向内存,内存存数据。
Debian 7 的 apt-get update返回404 Not Found
简介 Debian 7 (Wheezy)版本 外网环境使用apt-get update返回`12Err http://archive.debian.org wheezy-up...
AssertionError Cannot find installation of real FFmpeg (which comes with ffprobe)
简介Tensorflow视频解码错误,错误提示如下: 1AssertionError: Cannot find installation of real FFmpeg (which comes ...