2009-07-17 2 views
4

GWT (APL), MySQL (GPL), Protege (MPL)와 같은 다른 라이선스로 배포되는 라이브러리를 활용하는 애플리케이션을 보유하고 있으며 섬기는 사람. 그들은 같은 "공유 주소 공간"을 사용하고 있는지 알고 싶습니다. 나는이 용어에 대해 매우 혼란 스럽다. "공유 주소 공간". 또한 누군가가 그 의미를 설명 할 수 있다면 좋을 것입니다.라이선스 문제 ... 공유 주소 공간은 무엇입니까

감사합니다.

+4

** 프로그래밍이나 소프트웨어 개발이 아닌 라이센스 또는 법적 문제 **에 관한 내용이므로 주제를 벗어난 것으로 닫으려고합니다. 자세한 내용은 [여기를 참고하십시오] (http://meta.stackoverflow.com/a/274964/1402846) 및 [help/on-topic]을 참조하십시오. –

답변

2

GPL의 맥락에서 "공유 주소 공간"은 "프로세스"에 대한 일반화를 의미합니다. 예를 들어, gpl 프로그램이나 gpl 라이브러리를 기반으로하는 프로그램을 pluging하는 것은 동일한 라이센스를 가져야 함을 의미합니다.

강력하게 논쟁의 여지가있었습니다. Lunux Torvalds, 예를 들어, never liked은 리눅스 커널이 커널이 GPL이기 때문에 바이너리 전용 모듈을 지원할 수 없다는 개념입니다. 이것은 seemingly changed in 2008이지만 실제로 많은 Linux 커널 모듈은 커널 주소 공간을 공유해야한다는 사실에도 불구하고 부분적으로 독점적입니다. 그것은 very fluid situation입니다.

2

그러나 가장 광범위한 용어는 프로세서 클러스터간에 공유되는 메모리 (최소 클러스터 크기가 1 인 단일 서버)입니다. 이러한 것들을 참조하는 라이센스는 대개 클러스터 또는 단일 CPU에서 제품의 복사본 하나를 실행할 수있게하고이를 나타 내기 위해 공유 주소 공간이라는 용어를 사용합니다.

라이센스에서 더 긴 추출물을 보지 않고도 더 말할 수있는 것은 아닙니다.

2

아니요. 머신의 각 프로세스는 고유 한 "가상 주소 공간"으로 실행됩니다. 머신의 메모리 양에 관계없이 각 프로세스는 32 비트 (또는 64 비트 또는 그 이상) 가상 메모리를 처리 할 수 ​​있습니다. 이 주소 공간에는 프로세스 자체와 모든 공유 라이브러리에 대한 코드가 매핑됩니다. 단일 공유 라이브러리는 프로세스의 가상 주소 공간에 매핑됩니다 (따라서 공유 됨).

기본적으로 라이브러리에 링크하면 동일한 주소 공간에있게됩니다. 다른 프로세스를 호출하거나 단순히 동일한 서버에서 실행되도록하는 경우, 그렇지 않습니다.

+0

아이디어에 감사드립니다. – prashanta