IPC——概述

Posted kelamoyujuzhen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IPC——概述相关的知识,希望对你有一定的参考价值。

  现在的OS都引入了虚拟内存机制。我们说的内存空间,实际上虚拟内存空间,CPU执行PC指向的命令,PC指向的就是虚拟内存空间地址。虚拟内存机制只不过是OS为我们做了一层虚拟内存地址到物理内存地址的映射,我们不需要管具体是怎么映射的,直接用就完了。每个进程的虚拟地址空间都是一样的,所以A进程的0x300不会和B进程的0x300冲突,就好比1楼A002号房,和2楼A002号房,虽然都是A002号房,但是他们是不一样的,不会地址冲突。

  引入虚拟内存最大的好处就是使应用进程变得安全了,对于OS上的应用进程,他的空间都是OS划分的,只能在自己的小天地里面折腾。他不能去别人的空间搞破坏,别人也不可能过来骚扰自己。如果木马以应用进程身份运行的话,他就不能做破坏,除非是OS级木马,直接黑掉OS,否则根本不可能进入到别人的虚拟内存空间搞破坏。但是事务太绝对就会引入另一个问题——进程间通信

进程间通信的本质——数据共享

  在OS虚拟内存机制作用下,每个进程拥有独立的进程空间。尽管进程空间是各自独立的,相互之间没有任何可以共享的空间,但是至少还有一样东西是所有进程所共享的,那就是OS,因为甭管运行有多少个进程,但是它们共用OS只有一个。既然大家共用的是同一个OS,那么显然,所有的进程可以通过大家都共享第三方OS来实现数据共享。因此进程间通信的原理就是,OS作为所有进程共享的第三方,会提供相关的机制,以实现进程间数据的转发,达到数据共享的目的。

Linux OS所提供的c接口的进程间通信机制:

1)信号
2)管道(有名、无名)
3)消息队列
4)共享内存
5)信号量

以上是关于IPC——概述的主要内容,如果未能解决你的问题,请参考以下文章

IPC——概述

Unix/Linux进程间通信(IPC) -- 概述

Posix信号量

❤️ Android IPC 之 Messenger使用 ❤️

❤️ Android IPC 之 Messenger使用 ❤️

Linux进程IPC浅析[进程间通信SystemV共享内存]