Linux 进程管理:执行域、个性设置与进程追踪
1. 执行域使用计数的管理
在 Linux 系统中,执行域的使用计数管理是一个重要的机制,它确保了模块资源的合理使用。当一个进程进入或离开执行域时,会分别对相应模块的使用计数进行操作。
1.1 进程进入执行域
当进程进入执行域时,会调用一个宏来增加使用计数。该宏的参数是一个指向struct exec_domain的指针。如果执行域存在,并且已经加载了实现该域的模块,就会增加该模块中的使用计数字段。
1.2 进程离开执行域
当进程离开执行域时,同样会调用一个宏来减少使用计数。条件与进入时类似,若执行域存在且对应模块已加载,则减少该模块的使用计数字段。
2. 设置新的个性(Personality)
个性的改变通常发生在运行新的可执行文件时,因此这被认为是文件管理器的职责范围。以下是设置新个性的详细过程:
2.1 搜索二进制处理程序
search_binary_handler()函数会遍历已安装的二进制处理程序列表,直到找到能够识别新可执行文件格式的处理程序。然后,它会调用与该二进制格式关联的load_binary()方法。在这个过程中,会调用set_personality()函数,并传递与新可执行文件对应的个性编号。
2.2 检查个性是否需要改变
通过linux/personality.h中的