月度归档: 2021 年 12 月

9 篇文章

进程间通信-unix套接字
概括 UNIX域套接字用于在同一台机器上运行的进程之间的通信。虽然因特网域套接字可用于同一目的,但UNIX域套接字的效率更高。UNIX域套接字仅仅复制数据;它们并不执行协议处理,不需要添加或删除网络报头,无需计算检验和,不要产生顺序号,无需发送确认报文。 套接字的属性 套接字的特性由3个属性确定,它…
进程间通信-共享内存
概括 共享内存,顾名思义就是允许两个不相关的进程访问同一个逻辑内存,共享内存是两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常为同一段物理内存。进程可以将同一段物理内存连接到他们自己的地址空间中,所有的进程都可以访问共享内存中的地址。如果某个进程向共享内存写入数据…
进程间通信-信号量
概括 信号量本质上是一个计数器,用于多进程对共享数据对象的读取,它和管道有所不同,它不以传送数据为主要目的,它主要是用来保护共享资源(信号量也属于临界资源),使得资源在一个时刻只有一个进程独享。 信号量是一个特殊的变量,值可以改变,但只能取正整数值,并且对它的加1和减1操作是原子操作。如果信号量值为…
进程间通信-消息队列
概括 linux既支持POSIX标准的消息队列,也支持System V的消息队列。 先看几个基本的概念,这些概念在Syste V通信方式中的信号量和共享内存当中同样也是适用的。 标识符(id) 每个System V的进程通信机制中的对象都和唯一的一个引用标识符相联系,如果进程要访问此IPC对象,则需…
进程间通信-管道
概括 管道是Linux支持的最初Unix IPC形式之一,管道的实质是一个内核缓冲区,管道的作用正如其名,需要通信的两个进程在管道的两端,进程利用管道传递信息。管道对于管道两端的进程而言,就是一个文件,但是这个文件比较特殊,它不属于文件系统并且只存在于内存中。 [root@VM-0-13-cento…
Semaphore&Shared Memory函数
Semaphore 函数 ftok 将路径名和项目标识符转换为System V IPC KEY。 ftok(string $filename, string $project_id): int #project_id 项目标识符。这必须是一个字符串。 消息队列 常量 #MSG_IPC_NOWAIT …
PHP实现守护进程
什么是守护进程? 守护进程(Daemon Process),也就是通常说的 Daemon 进程(精灵进程),是 Linux 中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。 守护进程是个特殊的孤儿进程,这种进程脱离终端,为什么要脱离终端…
SSHD终端服务
SSHD含义 SSH:安全外壳协议。为 Secure Shell 的缩写。SSH 为建立在应用层和传输层基础上的安全协议。 D:代表守护进程。 终端(Terminal) 只要能提供给计算机输入和输出功能,它就是终端,而与其所在的位置无关。我可以用ls命令列举五千公里以外的一台计算机上某个目录下的文件…
TUN/TAP虚拟网卡
TUN设备 TUN 设备是一种虚拟网络设备,通过此设备,程序可以方便地模拟网络行为。TUN 模拟的是一个三层设备,也就是说,通过它可以处理来自网络层的数据,更通俗一点的说,通过它,我们可以处理 IP 数据包。 先来看看物理设备是如何工作的: 上图中的 eth0 表示我们主机已有的真实的网卡接口 (i…