Linux进程间能力传递原理和应用分析
2021-10-26杨明赵
山西电子技术 2021年5期
杨 倩,杨明赵
(1.重庆理工大学,重庆 400054;2.云从科技集团股份有限公司,重庆 401120)
0 引言
Linux遵循传统UNIX系统“一切皆文件”的理念,进程已打开的文件,称为“文件描述符(File Descriptor,简称:FD)”,将文件描述符从一个进程传递到另外一个进程,对应的使用文件描述符所关联资源的能力也就被传递到了新的进程。在软件设计中,这种方式可以实现在一组进程中的不同进程对同一资源不同阶段共享访问,可以利用进程的相互隔离,带来安全性、 稳定性和健壮性等方面的好处, 文件描述符的进程间传递是Linux操作系统的一种重要的进程间能力传递手段,本文将对其底层原理和典型应用场景进行分析。
1 文件描述符进程间传递原理
现代操作系统的进程一般工作在虚拟内存地址空间通过MMU地址转换映射到物理内存,进程无法访问其他进程的虚拟内存,这样就达到了相互隔离的安全目的。 进程之间的交互操作只能通过比如将不同进程的某一部分虚拟地址区间映射到相同的物理内存块,达到共享内存的目的;也可以通过进程处于内核特权模式上下文中,将数据从一个进程的内存拷贝到另外一个进程的内存,达到内存间消息交互的目的。文件描述符通常通过整数表示,该整数代表在文件描述符表(File Descriptor Table)中的索引,进程每次打开文件,会从该表空闲项中分配一项。 文件描述符是进程操作该进程描述符所关联资源的句柄,有了进程描述符也就具备了操作这些资源的能力(Capability)。……
登录APP查看全文
