不过,这一直是一个备受争议的观点。 例如,Lunux Torvalds 从来不喜欢 Linux 内核不能由于内核是 GPL,因此不支持纯二进制模块。 看似在 2008 年发生了变化,但事实上许多 Linux 内核模块都是尽管满足共享内核地址空间的要求,但部分专有。 这是一个非常不稳定的情况。
"Shared address space" in the context of the GPL was meant as a generalization for "process". It means that, for example, a pluging of a gpl'ed program, or a program based on a gpl library, should have the same license itself.
It has been a strongly debated point, though. Lunux Torvalds, for example, never liked the idea that Linux kernel couldn't support binary-only modules because of the kernel being GPL. This seemingly changed in 2008 but in fact many Linux kernel modules are partially proprietary despite the fact of meeting the requirement of sharing the kernel address space. It's a very fluid situation.
这取决于情况,但从最广泛的角度来看,它指的是处理器集群之间共享的内存(其中最小集群大小可能为 1,即单个服务器)。 涉及此类内容的许可证通常允许您在集群或单个 CPU 上运行产品的一个副本,并使用术语共享地址空间来表示这一点。
如果没有看到许可证中更长的摘录,你实际上不可能说更多。
It depends, but in it's broadest terms it is talking about the memory shared between a cluster of processors (where the minimum cluster size may be 1, i.e. a single server). Licenses that refer to such things usually allow you to run one copy of a product on a cluster or a single CPU, and use the term shared address space to indicate this.
It's not really possible tyo say more without sight of a lengthier extract from the license(s).
No. Each process on a machine runs with its own "virtual address space". Regardless of how much memory the machine has, each process can address 32bit (or 64bit or whatever) virtual memory. Mapped onto this address space is the code for the process itself, and also for any shared libraries. A single shared library will be mapped to any number of processes' virtual address space (hence the shared).
Basically if you link against a library, it will be in the same address space. If you call another process or simply have it running on the same server, it's not.
发布评论
评论(3)
GPL 上下文中的“共享地址空间”是“进程”的概括。 这意味着,例如,插入 gpl 程序或基于 gpl 库的程序本身应该具有相同的许可证。
不过,这一直是一个备受争议的观点。 例如,Lunux Torvalds 从来不喜欢 Linux 内核不能由于内核是 GPL,因此不支持纯二进制模块。 看似在 2008 年发生了变化,但事实上许多 Linux 内核模块都是尽管满足共享内核地址空间的要求,但部分专有。
这是一个非常不稳定的情况。
"Shared address space" in the context of the GPL was meant as a generalization for "process". It means that, for example, a pluging of a gpl'ed program, or a program based on a gpl library, should have the same license itself.
It has been a strongly debated point, though. Lunux Torvalds, for example, never liked the idea that Linux kernel couldn't support binary-only modules because of the kernel being GPL. This seemingly changed in 2008 but in fact many Linux kernel modules are partially proprietary despite the fact of meeting the requirement of sharing the kernel address space.
It's a very fluid situation.
这取决于情况,但从最广泛的角度来看,它指的是处理器集群之间共享的内存(其中最小集群大小可能为 1,即单个服务器)。 涉及此类内容的许可证通常允许您在集群或单个 CPU 上运行产品的一个副本,并使用术语共享地址空间来表示这一点。
如果没有看到许可证中更长的摘录,你实际上不可能说更多。
It depends, but in it's broadest terms it is talking about the memory shared between a cluster of processors (where the minimum cluster size may be 1, i.e. a single server). Licenses that refer to such things usually allow you to run one copy of a product on a cluster or a single CPU, and use the term shared address space to indicate this.
It's not really possible tyo say more without sight of a lengthier extract from the license(s).
不。机器上的每个进程都以自己的“虚拟地址空间”运行。 不管机器有多少内存,每个进程都可以寻址32位(或64位或其他)虚拟内存。 映射到该地址空间的是进程本身以及任何共享库的代码。 单个共享库将映射到任意数量的进程的虚拟地址空间(因此是共享的)。
基本上,如果您链接到一个库,它将位于相同的地址空间中。 如果您调用另一个进程或只是让它在同一台服务器上运行,则事实并非如此。
No. Each process on a machine runs with its own "virtual address space". Regardless of how much memory the machine has, each process can address 32bit (or 64bit or whatever) virtual memory. Mapped onto this address space is the code for the process itself, and also for any shared libraries. A single shared library will be mapped to any number of processes' virtual address space (hence the shared).
Basically if you link against a library, it will be in the same address space. If you call another process or simply have it running on the same server, it's not.