在arm64 linux中混合64/32位用户空间(使用CONFIG\u COMPAT)
我正在研究ARM64 linux内核中的32位用户空间支持,看起来启用CONFIG_COMPAT可以让我做到这一点 有人能插话说明启用CONFIG_COMPAT是否会禁用64位应用程序的运行吗?我提出这个问题的原因如下:在arm64 linux中混合64/32位用户空间(使用CONFIG\u COMPAT),c,linux,arm64,C,Linux,Arm64,我正在研究ARM64 linux内核中的32位用户空间支持,看起来启用CONFIG_COMPAT可以让我做到这一点 有人能插话说明启用CONFIG_COMPAT是否会禁用64位应用程序的运行吗?我提出这个问题的原因如下: 该文档没有说明两个64/32位应用程序都可以使用相同的内核运行 我查看了fs/compat_binfmt_elf.c #ifdef COMPAT_SET_PERSONALITY #undef SET_PERSONALITY #define SET_PERSONALIT
#ifdef COMPAT_SET_PERSONALITY
#undef SET_PERSONALITY
#define SET_PERSONALITY COMPAT_SET_PERSONALITY
#endif
这似乎迫使线程的个性
set_thread_flag(TIF_32BIT)
感谢请注意,compat_binfmt_elf.c在最末端包括binfmt_elf.c-它在对全局可见符号进行定义和设置一些重命名后,将binfmt_elf.c代码重新编译到一个附加的对象文件中
因此,它强制所有在兼容层下运行的应用程序都以32位的方式运行,所有在本机上运行的应用程序都以64位的方式运行。那么,您能将我的答案标记为已接受吗?