2013년 12월 2일 월요일

GNU GPL 란 ?



자료출처: 리눅스베이교육센터

`GNU 일반 공중 사용 허가서'1로 번역한 GNU General Public License는 일반적으로 GPL이라는 약어로 많이 알려져 있으며, GNU/FSF가 사용하고 있는 3가지 사용 허가서(license) 중에서 카피레프트의 핵심을 이루는 가장 전통적인 문서입니다. 오늘날 가장 널리 사용되고 있는 리눅스 커널 또한 GPL을 채용하고 있습니다.

리눅스 커널의 원시 코드 사용 허가와 관련해서 COPYING2이라는 이름의 GPL 사본 위에 첨언된 리누스 토발즈의 언급에 대해서 일반적인 오해의 소지가 가끔씩 발생합니다. 리눅스 커널 2.4.x대의 커널 원시 코드 패키지에 포함되어 있는 해당 문구를 살펴보면 다음과 같습니다.


NOTE! This copyright does *not* cover user programs that use kernel services by normal system calls - this is merely considered normal use of the kernel, and does *not* fall under the heading of "derived work". Also note that the GPL below is copyrighted by the Free Software Foundation, but the instance of code that it refers to (the Linux kernel) is copyrighted by me and others who actually wrote it. Also note that the only valid version of the GPL as far as the kernel is concerned is _this_ license (ie v2), unless explicitly otherwise stated.


주의! 평범한 시스템 콜을 통해서 커널 서비스를 이용하는 프로그램은 커널과 하나로 결합되어 단일한 프로그램을 생성하는 것이 아니라 커널을 평범하게 이용하는 것으로 간주되므로, 2차적 프로그램의 구성 범위에 해당되지 않습니다. 따라서 이러한 프로그램에는 본 사용권 사항이 적용되지 않습니다. 아래에 있는 GPL 문서 자체의 저작권은 자유 소프트웨어 재단에 있지만 GPL이 적용된 커널 원시 코드에 대한 저작권은 저와 코드를 직접 작성한 개발자들에게 있습니다. 또한 명시적으로 언급되지 않는 한 리눅스 커널 원시 코드에는 GPL 2판만이 유효하게 적용됩니다.


위의 사항은 2개 이상의 프로그램이 상호 호출되면서 실행될 때 이것을 하나로 통합된 2차적 프로그램으로 볼 것인가 아니면 독립적인 프로그램들로 볼 것인가에 따른 명시적인 상황 설명입니다.

판례에 따른 미국 저작권법하의 해석으로는 일반적으로 2개 이상의 프로그램이 같은 메모리 공간을 공유하면서 서로 밀도 있게 결합되어 실행되지 않고, 파이프나 소켓과 같은 네트워크 인터페이스를 통해 정보를 주고받으며 실행되는 형태였을 경우에는 이를 하나의 통합된 프로그램이 아닌 독립적인 프로그램으로 인정합니다. 이런 관점에서 볼 때 단순히 시스템 콜을 이용해서 서비스를 이용하는 프로그램은 리눅스 커널과 하나의 통합된 프로그램을 생성한다고 보기 힘들기 때문에 GPL이 적용되지 않아도 무방하다는 것입니다.

만약, 커널 원시 코드를 수정하여 새로운 시스템 콜을 만든 뒤에 이를 전술한 것과 같은 형식으로 이용하는 소프트웨어를 새로 개발했다면, 해당 소프트웨어는 GPL로 만들지 않아도 무방하지만, 새롭게 개발한 시스템 콜에 상응하는 원시 코드는 리눅스 커널에 기반 한 2차적 저작물이 되기 때문에 새롭게 창작된 소프트웨어를 배포할 때 함께 제공해야 합니다.

이제 본격적으로 GPL에 대한 설명을 시작해 보겠습니다. 다음은 GPL 번역문과 그에 대한 설명을 단락별로 구성해 놓은 것입니다.

설명과 주석이 포함되지 않은 GPL 한국어 번역문의 최근 수정판은
http://korea.gnu.org/people/chsong/copyleft/gpl.ko.html 사이트를 통해서 구할 수 있습니다.

[ 참조 ]
1. http://korea.gnu.org/gl/gb-2001-2-1.html

홈페이지 jQuery 라이브러리에서 CVE-2019-11358 취약점 패치 여부 확인 방법

현재 홈페이지에서 사용 중인 jQuery 라이브러리가 CVE-2019-11358 취약점 패치를 적용했는지 확인하는 방법은 다음과 같습니다. 1. jQuery 버전 확인 홈페이지 소스 코드를 확인하여 jQuery 라이브러리 버전을 직접 확인합니다. 웹 ...