我在程序集中看到过Hello程序的例子,一个在MacOS中,另一个在Linux中。但是它们之间的区别是,MacOS使用绝对内存位置进行系统调用,而Linux不使用。为什么MacOS不能只使用1或内核用于系统调用write的任何数字mov rax, 0x02000004 ; system call for writemov rax, 1 ; system call
我正在研究系统调用是如何工作的,并学习了一个术语system call service routine。我搞不懂system call和system call service routine有什么区别?例如,在Linux中,man syscalls列出了所有系统调用,其中有一个系统调用execve()来执行路径名指定的新程序。后来,我发现它实际上调用了系统调用服务例程sys_execve (execve()有系统调用