44、Socket通信:遇上特大项目,要学会和其他公司合作上一篇预习文章说了这么多,现在我们终于可以来看一下,在应用层,我们应该如何使用socket的接口来进行通信。 如果你对socket相关的网络协议原理不是非常了解,建议你先去看一看上一篇的预习文章,再来看这一篇的内容,就会比较轻松。 按照前一篇文章说的...2025-10-31趣谈Linux操作系统
43、预习:Socket通信之网络协议基本原理上一节我们讲的进程间通信,其实是通过内核的数据结构完成的,主要用于在一台Linux上两个进程之间的通信。但是,一旦超出一台机器的范畴,我们就需要一种跨机器的通信机制。 一台机器将自己想要表达的内容,按照某种约定好的格式发送出去,当另外一台机器收到这些...2025-10-31趣谈Linux操作系统
42、IPC(下):不同项目组之间抢资源,如何协调?IPC这块的内容比较多,为了让你能够更好地理解,我分成了三节来讲。前面我们解析完了共享内存的内核机制后,今天我们来看最后一部分,信号量的内核机制。 首先,我们需要创建一个信号量,调用的是系统调用semget。代码如下: 123456789101112...2025-10-31趣谈Linux操作系统
41、IPC(中):不同项目组之间抢资源,如何协调?了解了如何使用共享内存和信号量集合之后,今天我们来解析一下,内核里面都做了什么。 不知道你有没有注意到,咱们讲消息队列、共享内存、信号量的机制的时候,我们其实能够从中看到一些统一的规律:它们在使用之前都要生成key,然后通过key得到唯一的id,并且...2025-10-31趣谈Linux操作系统
40、IPC(上):不同项目组之间抢资源,如何协调?我们前面讲了,如果项目组之间需要紧密合作,那就需要共享内存,这样就像把两个项目组放在一个会议室一起沟通,会非常高效。这一节,我们就来详细讲讲这个进程之间共享内存的机制。 有了这个机制,两个进程可以像访问自己内存中的变量一样,访问共享内存的变量。但是同...2025-10-31趣谈Linux操作系统
39、管道:项目组A完成了,如何交接给项目组B?在这一章的第一节里,我们大致讲了管道的使用方式以及相应的命令行。这一节,我们就具体来看一下管道是如何实现的。 我们先来看,我们常用的匿名管道(Anonymous Pipes),也即将多个命令串起来的竖线,背后的原理到底是什么。 上次我们说,它是基于管...2025-10-31趣谈Linux操作系统