【发布时间】:2017-08-18 02:08:41
【问题描述】:
为什么有几个信号数依赖于 Linux 架构?
这是来自man 7 signal 的报价以及信号和信号编号列表:
Linux 支持下列标准信号。 几个信号编号取决于架构,如 “价值”栏。 [...] 在给出三个值的地方,第一个通常对 alpha 和 sparc 有效,中间一个对 x86 有效, arm 和大多数其他架构,最后一个用于 mips。
Signal Value
──────────────────
SIGHUP 1
SIGINT 2
SIGQUIT 3
SIGILL 4
SIGABRT 6
SIGFPE 8
SIGKILL 9
SIGSEGV 11
SIGPIPE 13
SIGALRM 14
SIGTERM 15
SIGUSR1 30,10,16
SIGUSR2 31,12,17
SIGCHLD 20,17,18
SIGCONT 19,18,25
SIGSTOP 17,19,23
SIGTSTP 18,20,24
SIGTTIN 21,21,26
SIGTTOU 22,22,27
【问题讨论】:
-
非常有趣的观察。我看到对于 Alpha,内核源代码有一条评论:“Linux/AXP 具有与 Linux/i386 不同的信号编号:我正在尝试使其与 OSF/1 二进制兼容,至少对于普通二进制文件而言”兼容性,我很想知道它是哪个操作系统以及在 Linux 上运行时二进制兼容性如何工作
-
@thatotherguy Tru64 Unix... 通常在 Alpha 上运行。在 Sparc 的情况下,它可能在 Solaris 上具有相同的值(它继承了 AT&T SRV4 Unix...Tru64 可能也共享),运行 IRIX 的 MIPS 可能只是像 Linux 一样奇怪。