草庐IT

syswow64

全部标签

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

运行 64 位操作系统的 64 位操作系统上的 android studio 给出错误 : 32-bit Linux Android emulator binaries are DEPRECATED

我遇到了类似这个问题:AndroidStudio64-bitERROR:32-bitLinuxAndroidemulatorbinariesareDEPRECATED我在GentooLinux/amd64上运行androidstudio2.1.1,当我尝试运行androidandroidstudio的模拟器时,出现错误:/home/user/Android/Sdk/tools/emulator-netdelaynone-netspeedfull-avdNexus_5X_API_23ERROR:32-bitLinuxAndroidemulatorbinariesareDEPRECATED

运行 64 位操作系统的 64 位操作系统上的 android studio 给出错误 : 32-bit Linux Android emulator binaries are DEPRECATED

我遇到了类似这个问题:AndroidStudio64-bitERROR:32-bitLinuxAndroidemulatorbinariesareDEPRECATED我在GentooLinux/amd64上运行androidstudio2.1.1,当我尝试运行androidandroidstudio的模拟器时,出现错误:/home/user/Android/Sdk/tools/emulator-netdelaynone-netspeedfull-avdNexus_5X_API_23ERROR:32-bitLinuxAndroidemulatorbinariesareDEPRECATED

linux - 无法找到软件包 linux-headers-4.15.0-kali2-amd64

我尝试运行apt-getinstalllinux-headers-$(uname-r)但是我得到一个错误。E:Unabletolocatepackagelinux-headers-4.15.0-kali2-amd64E:Couldntfindanypackagebyglob'linux-headers-4.15.0-kali2-amd64E:Couldntfindanypackagebyregex'linux-headers-4.15.0-kali2-amd64事情是这样的,我将source.list更改为(https://docs.kali.org/general-use/kali-

linux - 无法找到软件包 linux-headers-4.15.0-kali2-amd64

我尝试运行apt-getinstalllinux-headers-$(uname-r)但是我得到一个错误。E:Unabletolocatepackagelinux-headers-4.15.0-kali2-amd64E:Couldntfindanypackagebyglob'linux-headers-4.15.0-kali2-amd64E:Couldntfindanypackagebyregex'linux-headers-4.15.0-kali2-amd64事情是这样的,我将source.list更改为(https://docs.kali.org/general-use/kali-

Linux:从 32 位用户模式程序检测 64 位内核(长模式)

检测32位用户模式程序是否在64位内核上运行(即系统是否处于“长模式”)的最好和最可靠的方法是什么?如果可能,我宁愿不调用外部程序(或者必须加载任何内核模块)。注意:我想检测是否正在使用64位内核(或者实际上,CPU是否处于长模式),而不仅仅是是否存在支持64位的处理器(/proc/cpuinfo告诉我这一点,但没有告诉我是否正在使用64位功能。如果uname被编译为32位或如果使用setarchi686,内核将伪造一个32位处理器。 最佳答案 调用uname()函数并检查返回的machine字符串,对于64位Intel平台,它将是

Linux:从 32 位用户模式程序检测 64 位内核(长模式)

检测32位用户模式程序是否在64位内核上运行(即系统是否处于“长模式”)的最好和最可靠的方法是什么?如果可能,我宁愿不调用外部程序(或者必须加载任何内核模块)。注意:我想检测是否正在使用64位内核(或者实际上,CPU是否处于长模式),而不仅仅是是否存在支持64位的处理器(/proc/cpuinfo告诉我这一点,但没有告诉我是否正在使用64位功能。如果uname被编译为32位或如果使用setarchi686,内核将伪造一个32位处理器。 最佳答案 调用uname()函数并检查返回的machine字符串,对于64位Intel平台,它将是