在Linux中,进程间通信有多种方式,例如共享内存、(命名)管道、套接字、消息队列。
Linux内核和进程通信的等效或类似方式是什么?下面是一些方法吗?
进程间通信可以在进程之间传输任意数据,而可以在内核和进程之间传输的数据形式更有限(根据我列出的方式),这是否正确?
谢谢。
发布于 2019-03-26 12:45:50
进程间通信在某种程度上是用户空间和内核之间通信的特殊情况,因为进程间通信总是由内核(至少是用于安装和拆卸)进行的。
注意,当进程调用内核时,进程仍在运行,但处于内核模式。因此,区分进程和内核,虽然方便,但有些不准确,可能导致误解。列出的事件确实会导致数据从用户空间传递到内核,并在内核模式下执行处理;其他示例包括
ioctl
(它实际上是一个系统调用,但非常通用,因此单独考虑它是有用的);可以在用户空间和内核之间传输的数据的性质本质上没有任何限制;例如,write
允许您将任何东西写入文件,而send
允许您将任何东西写入套接字。数据是否有意义取决于您正在做什么;请参见您自己的必须存在应用层协议,以便在使用套接字的任何两个程序之间进行通信?问题(它适用于任何形式的通信)。
https://unix.stackexchange.com/questions/508704
复制相似问题