use*_*283 1 c linux osdev linux-kernel
我在Linux工作,我有点困惑,我是否可以访问过程的PCB?如果是,那么我们可以访问它的哪些内容并将其打印到终端上,如果没有,那么为什么不呢?
谢谢回答 .....
如果是PCB,则表示过程控制块,是和否......
不,因为它位于内核地址空间中,无法由用户进程直接访问.内核从PCB上提供了一些信息/proc- proc(5)有关详细信息,请参阅联机帮助页.此信息通常以纯文本形式提供,并且可以轻松显示 - 例如,尝试:
cat /proc/self/status
Run Code Online (Sandbox Code Playgroud)
是的,因为使用内核调试工具struct task_struct可以访问进程(和其他相关结构).这不是一件容易的事; 你需要很好地理解内核源代码.基本的想法是尝试在/proc/kcore或中找到结构/proc/kmem.您将需要管理(root)权限并非常了解内核内存布局.这应该仅用于内核调试或探索 - 请不要在生产代码中执行此操作,特别是内核内容结构的布局在内核版本之间没有警告的情况下更改!