【问题标题】:Why are several signal numbers architecture-dependent on Linux?为什么有几个信号数依赖于 Linux 架构?
【发布时间】: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 一样奇怪。

标签: linux signals


【解决方案1】:

除非您想与其他东西兼容,否则它们是任意数字。

即Tru64 Unix for Alpha。 Sparc 的 Solaris,他们可能直接从 AT&T Unix SRV4 获得这些数字....

而用于 MIPS 的 IRIX.... 就像 Linux 一样奇怪。

Linux 有自己的编号,用于向后兼容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-17
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多