为什么2个相同文件的linux进程不能共享文本段?

我正在通过Linux进程,我有以下疑问。

如果我从不同shell执行两次相同的程序,将会创build2个进程。 我总是觉得文本段将被这两个进程共享。 但是一些网页build议文本段不会在进程间共享。 任何人都可以让我知道为什么不能在不同的stream程之间共享?

Solutions Collecting From Web of "为什么2个相同文件的linux进程不能共享文本段?"

在像Linux和Windows这样的现代操作系统中,按照定义,进程都被封闭到自己的沙箱中。 共享库(so / dll)由操作系统进行重复数据删除,但只共享代码,没有任何存储内存。 当进程试图访问自己的进程空间以外的内存时,CPU的MMU(内存管理单元)部分将产生一个硬信号,如果没有被捕获或明确处理,将会终止该进程。 在Linux中,这被称为“段错误”或段错误,在Windows中是“访问违规”。

为了建立进程间通信(IPC),一个程序必须通过同步对象和方法(如匿名/命名管道,内存映射文件,信号,信号量等等)来积极地启动这个进程。