草庐IT

restart_syscalls

全部标签

linux - 无法在 linux 中找到 syscall_table_32.S 文件

我在虚拟机上使用linux-headers-2.6.32-21包。我要写一个新的系统调用。我找到了其他文件来写系统调用的首字母,但我无法在arch/x86/kernel/目录中找到这个syscall_table_32.S。请帮助我如何以及在何处找到此文件。怀疑是不是权限问题或者其他原因被隐藏了。 最佳答案 以下提交将其删除:commit303395ac3bf3e2cb488435537d416bc840438fcbAuthor:H.PeterAnvinDate:FriNov1116:07:412011-0800x86:Generat

linux - 为什么 golang clone syscall abi 与 x86-64 上的 linux 内核克隆不同

在glibc/sysdeps/unix/sysv/linux/x86_64/clone.S的linux内核克隆abi定义:Thekernelexpects:rax:systemcallnumberrdi:flagsrsi:child_stackrdx:TIDfieldinparentr10:TIDfieldinchildr8:threadpointer在go1.11.5/src/runtime/sys_linux_amd64.s的golang克隆系统调用://int32clone(int32flags,void*stk,M*mp,G*gp,void(*fn)(void));TEXTru

linux - 为什么 golang clone syscall abi 与 x86-64 上的 linux 内核克隆不同

在glibc/sysdeps/unix/sysv/linux/x86_64/clone.S的linux内核克隆abi定义:Thekernelexpects:rax:systemcallnumberrdi:flagsrsi:child_stackrdx:TIDfieldinparentr10:TIDfieldinchildr8:threadpointer在go1.11.5/src/runtime/sys_linux_amd64.s的golang克隆系统调用://int32clone(int32flags,void*stk,M*mp,G*gp,void(*fn)(void));TEXTru

Linux x64 : why does r10 come before r8 and r9 in syscalls?

前几天我决定试一试汇编,我一直在玩弄非常基本的东西,比如从argv打印东西到stdout。我找到了thisgreatlistoflinuxsyscallnumbers带有参数和所有内容,我很好奇为什么r10用于r8和r9之前的参数。我发现了关于什么可以用于什么以及何时使用的各种奇怪约定,例如循环计数器如何进入rcx。r10上移是否有特殊原因?是不是更方便?我可能还应该提到我对此感兴趣是出于好奇,而不是因为它给我带来了问题。编辑:我找到了thisquestion接近,引用thex64ABIdocumentation在第124页上,它指出用户级应用程序使用rdi、rsi、rdx、rcx、r

Linux x64 : why does r10 come before r8 and r9 in syscalls?

前几天我决定试一试汇编,我一直在玩弄非常基本的东西,比如从argv打印东西到stdout。我找到了thisgreatlistoflinuxsyscallnumbers带有参数和所有内容,我很好奇为什么r10用于r8和r9之前的参数。我发现了关于什么可以用于什么以及何时使用的各种奇怪约定,例如循环计数器如何进入rcx。r10上移是否有特殊原因?是不是更方便?我可能还应该提到我对此感兴趣是出于好奇,而不是因为它给我带来了问题。编辑:我找到了thisquestion接近,引用thex64ABIdocumentation在第124页上,它指出用户级应用程序使用rdi、rsi、rdx、rcx、r

php - 为什么 php 命令 `exec("service apache2 restart") ;` does' t 在 ubuntu 上工作?

我需要在我的web服务器上使用配置了apache的php执行一些命令。exec("serviceapache2restart",$output);print_r($output);输出:Array([0]=>*Restartingwebserverapache2[1]=>Action'start'failed.[2]=>TheApacheerrorlogmayhavemoreinformation.[3]=>...fail!)我的猜测是因为我的ubuntu上的php权限!你有什么建议? 最佳答案 你需要运行:visudo检查你有这样

php - 为什么 php 命令 `exec("service apache2 restart") ;` does' t 在 ubuntu 上工作?

我需要在我的web服务器上使用配置了apache的php执行一些命令。exec("serviceapache2restart",$output);print_r($output);输出:Array([0]=>*Restartingwebserverapache2[1]=>Action'start'failed.[2]=>TheApacheerrorlogmayhavemoreinformation.[3]=>...fail!)我的猜测是因为我的ubuntu上的php权限!你有什么建议? 最佳答案 你需要运行:visudo检查你有这样

c - 使用 "syscall"而不是直接调用函数的原因是什么?

有syscall它允许在Linux中进行间接系统调用。使用它的原因是什么-为什么它比直接调用函数更好? 最佳答案 有时内核会添加系统调用,C库需要一段时间才能支持它们。或者您可能正在旧的Linux发行版上编译,但想在更新的发行版上运行。示例代码://syscall277issync_file_range()onx86_64Linux.Theheader//fileslackitonscc-suse10wherewecompile,butthe//performancebenefitsaresubstantial,sowejustca

c - 使用 "syscall"而不是直接调用函数的原因是什么?

有syscall它允许在Linux中进行间接系统调用。使用它的原因是什么-为什么它比直接调用函数更好? 最佳答案 有时内核会添加系统调用,C库需要一段时间才能支持它们。或者您可能正在旧的Linux发行版上编译,但想在更新的发行版上运行。示例代码://syscall277issync_file_range()onx86_64Linux.Theheader//fileslackitonscc-suse10wherewecompile,butthe//performancebenefitsaresubstantial,sowejustca

c - syscall 是 x86_64 上的指令吗?

我想检查在glibc中执行系统调用的代码。我发现了这样的东西:ENTRY(syscall)movq%rdi,%rax/*Syscallnumber->rax.*/movq%rsi,%rdi/*shiftarg1-arg5.*/movq%rdx,%rsimovq%rcx,%rdxmovq%r8,%r10movq%r9,%r8movq8(%rsp),%r9/*arg6isonthestack.*/syscall/*Dothesystemcall.*/cmpq$-4095,%rax/*Check%raxforerror.*/jaeSYSCALL_ERROR_LABEL/*Jumptoerro