Linux 与 Unix 安全特性总结
1. 进程相关
在 Linux 中,若要确切了解每个进程的属性,最权威的来源是 Linux 源代码,特别是 /usr/include/linux/sched.h 中 task_struct 的定义。
创建新进程的通用方法是使用 fork(2) 调用。BSD 引入了一种变体 vfork(2) 作为优化技术,但建议尽量避免使用它。Linux 支持独特的 clone(2) 调用,它的工作方式与 fork(2) 类似,但允许指定要共享的资源,如内存、文件描述符等。不同的 BSD 系统实现了 rfork() 系统调用,虽然语义不同,但基本思想相同,都是创建对共享资源有更严格控制的进程。不过,可移植程序应尽量避免直接使用这些调用,而是依赖使用这些调用实现线程的线程库。
以下是创建进程相关系统调用的对比:
| 系统调用 | 说明 | 建议 |
| ---- | ---- | ---- |
| fork(2) | 通用的创建新进程方法,复制现有进程 | 推荐使用 |
| vfork(2) | BSD 引入的优化变体 | 尽量避免使用 |
| clone(2) | Linux 独特的调用,可指定共享资源 | 按需使用 |
| rfork() | 部分 BSD 系统实现,对共享
超级会员免费看
订阅专栏 解锁全文
1104

被折叠的 条评论
为什么被折叠?



