功能是每个进程的属性还是每个线程的属性?

功能是每个进程的属性还是每个线程的属性?

文档说能力是每个线程的属性。确实在任何

/proc/[PID]/task/[LWP]/status

我们可以找到与此线程相关的功能:

CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: 0000003fffffffff
CapAmb: 0000000000000000

但同时有关功能的类似信息位于

/proc/[PID]/status

那么流程,显然有它自己的能力。这让我很困惑 - 能力属性是进程还是线程?当执行某些需要功能的命令时,内核会检查什么集?

答案1

功能确实是针对每个线程的,并且线程可以使用以下命令更改其自己的功能(在当前功能允许的情况下)capset而不影响其他现有线程的功能。

/proc/[PID]/status显示匹配 pid 的线程的功能,或者更准确地说,匹配线程组 id(Linux 中的进程 id)。

内核总是检查相关线程的能力。

相关内容