[ 영어 | 한국어 ]

libgcc2.ccrtstuff.c에 대한 사용권 허가

IMPORTANT NOTICE

This is an unofficial translation of GNU GPL with a special exception into Korean. It was not published by FSF and does not legally state the distribution terms for software that uses the GNU GPL with a special exception -- only the original English text does that. However, I hope that this translation will help Korean speakers understand the GNU GPL with a special exception better.

이 문서는 특별한 예외가 설정된 GNU 일반 공중 사용 허가서를 한국어로 번역한 것입니다. 이 문서는 원문이 내포하고 있는 호혜적인 자유와 공유의 정신을 보다 많은 사람들에게 알리기 위한 희망에서 작성되었지만, 자유 소프트웨어 재단의 공식 문서로 취급될 수는 없습니다. 이는 원래의 문서가 의도하고 있는 내용이 왜곡되지 않고 법률적으로 유효하기 위해서 선행되어야 할 양국의 현행 법률과 언어의 적합성 여부에 대한 전문가들의 검토 작업에 많은 비용이 필요하기 때문입니다. 또한 공식 번역문으로 인정된 문서라 하더라도 다른 언어로의 번역에 따른 위험 부담은 여전히 남아 있게 됩니다. 따라서 자유 소프트웨어 재단은 오역이나 해석상의 난점으로 인해서 발생될 지도 모를 혼란과 분쟁의 가능성을 미연에 방지하고, 문서가 담고 있는 내용과 취지를 보다 많은 사람들에게 알리려는 상반된 목적을, 한국어 번역문을 공식적으로 승인하지 않는 방법으로 양립시키고 있습니다.

자유 소프트웨어 재단은 어떠한 언어에 대한 번역문도 공식적으로 인정하지 않고 있으며, 그러한 계획 또한 갖고 있지 않습니다. 자유 소프트웨어 재단은 이 사용권 허가서를 실무에 적용할 경우, 오직 영문판에 의해서만 그 법률적 효력이 올바르게 발생될 수 있음을 권고하고 있습니다. 이 번역문은 법률적 검토와 문서간의 동일성 여부에 대한 검증을 거치지 않은 것이며, 이로 인해서 야기될 수 있을 지도 모를 법률적인 문제에 대해서 어떠한 형태의 보증도 제공하지 않습니다. 이 사용권 허가를 상업적인 목적으로 사용하려고 할 경우에는 변호사나 변리사에게 직접 자문을 구하기 바랍니다. 그러나 대부분의 일반 사용자들에게는 이 번역문이 전달하려고 하는 내용과 취지를 이해하는 것만으로 충분할 것입니다.

한국어 번역 및 설명: 2002년 5월 18일 송창훈 <chsong@gnu.org>


/* More subroutines needed by GCC output code on some machines. */ /* Compile this one with gcc. */ /* Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.

이 파일은 GNU CC의 일부입니다.

GNU CC는 자유 소프트웨어입니다. 이 소프트웨어를 무료로 구했거나 유료로 구입한 피양도자는 자유 소프트웨어 재단이 공표한 GNU 일반 공중 사용 허가서 2판 또는 그 이후 판을 임의로 선택해서, 그 규정에 따라 프로그램을 개작(modify) 하거나 재배포할 수 있습니다.

GNU 일반 공중 사용 허가서에 의한 사용권 허가 이외에, 자유 소프트웨어 재단은 이 파일을 컴파일해서 생성한 (목적 코드나 실행 파일 등의) 목적물을 다른 프로그램과 결합하는 것을 제한 없이 허용합니다. 또한 이러한 결합물을 배포하는 데에는 GNU GPL이 적용되지 않습니다. 다시 말해서, 이 파일을 컴파일해서 생성한 파일과 독점 프로그램을 링크하는 것과 링크를 통해 만들어진 결합물의 배포에는 개작자의 선택에 따라 GNU GPL을 적용하거나 적용하지 않는 선택을 할 수 있습니다. 그러나 이 파일의 원시 코드를 개작하거나 결합 저작물을 형성하지 않은 상태에서의 배포에는 GNU GPL이 적용되어야 합니다.

GNU CC는 유용하게 사용될 수 있으리라는 희망에서 배포되고 있지만, 프로그램의 주기능인 컴파일에 대한 적합성 여부와 이 프로그램을 판매용을 사용할 수 있으리라는 묵시적인 보증을 포함한 어떠한 형태의 보증도 제공되지 않습니다. 보다 자세한 사항에 대해서는 GNU 일반 공중 사용 허가서를 참고하시기 바랍니다.

GNU 일반 공중 허가서는 GNU CC와 함께 제공됩니다. 보다 자세한 사항에 대해서는 COPYING 파일을 참고하시기 바랍니다. 만약 이 문서가 누락되어 있다면 자유 소프트웨어 재단으로 문의하시기 바랍니다. (자유 소프트웨어 재단: Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.)


추가 설명

자유 소프트웨어 재단은 소프트웨어의 사용과 배포에 대해 GPL, LGPL, GFDL의 3가지 사용권 허가 방식을 채택하고 있습니다. 그러나 gcc/libgcc2.cgcc/crtstuff.c와 같은 GCC를 구성하는 몇몇 파일에는 독점 소프트웨어와의 링크나 배포를 제한없이 허용하는(unlimited permission) 예외 조항을 설정하고 있는데, 이는 자유 소프트웨어의 발전을 위해서 필요하다고 판단되는 전략적 상황에 대처하기 위한 것입니다.

GCC와 같은 컴파일러의 역할은 사용자가 작성한 프로그램을 로더(loader)가 메모리에 올릴 수 있는 포맷의 실행 파일로 만들어 주는 것입니다. 프로그램을 실행한다는 것은 로더로 하여금 실행 파일을 메모리로 적재하고 이를 CPU로 가져가 차례대로 연산을 수행하게 한다는 뜻입니다. 따라서 이러한 과정이 정상적으로 수행되기 위해서는 사용자가 작성한 프로그램의 코드에 시스템의 내부적인 실행 절차를 위한 부가적인 코드가 더 필요하게 됩니다. 흔히 이러한 부분을 초기화 루틴이라고 하는데 libgcc2.c와 crtstuff.c 파일은 libgnu.a와 crtbegin.o, crtend.o라는 이름의 모듈로 GCC와 함께 제공되어 이러한 역할을 수행하게 됩니다.

기본적으로 어떤 프로그램이 GPL 소프트웨어라고 해도 그 프로그램을 이용해서 만든 결과물은 GPL에 귀속될 필요가 없습니다. 예를 들면, Emacs 에디터는 GPL 소프트웨어이지만 Emacs를 이용해서 만든 텍스트 문서는 GPL이 될 수 없는 것과 같은 이치입니다. 그러나 만약 GPL 소프트웨어로 만든 결과물에 GPL 소프트웨어의 원시 코드 중 일부가 복사되는 형태를 갖게 된다면, 그 결과물은 GPL 소프트웨어에 대한 2차적 저작물을 생성한 것이 되므로 GPL이 적용됩니다.

libgcc2.c와 crtstuff.c의 경우가 이러한 예입니다. 이 파일들을 컴파일해서 만들어진 libgnu.a나 crtbegin.o와 같은 초기화 함수의 일부가 사용자가 GCC를 이용해서 만든 실행 파일에 직접 포함되거나 실행 시간에 이들을 링크해서 사용하는 경우, 이들은 GPL 소프트웨어에 기반한 2차적 저작물을 형성하게 되기 때문에 기본적으로 GCC를 이용해서 만들어진 프로그램들은 모두 GPL 소프트웨어가 되어야 하는 상황에 처하게 됩니다. (GCC로 컴파일한 프로그램들은 이 루틴들을 사용하도록 설계되어 있습니다.) 따라서 이러한 경우에 있어서 libgcc2.c와 crtstuff.c를 순수한 GPL로 배포하게 되면 리눅스용 독점 소프트웨어는 만들어 질 수 없습니다.

그러나 GCC를 이용해서 만들어진 모든 프로그램이 (실제 코드에 GPL 코드를 사용했든 아니든 간에 무조건) GPL 소프트웨어가 되어야 한다는 것은 일반적인 상황에서 이치에 맞지 않는 것이며, GCC를 이용해서 독점 소프트웨어를 만들 수 있도록 허용하는 것은 GCC와 경합할 수 있는 다른 독점 컴파일러들과의 경쟁에 있어 우위를 점할 수 요인이 될 수 있습니다. 따라서 자유 소프트웨어 재단은 이들의 사용권 허가를 GCC와 같은 GPL로 설정하면서 독점 소프트웨어와의 링크와 배포를 제한없이 허용하는 전략적 예외 기준을 설정하는 방법을 통해서 자유 소프트웨어의 발전에 유리하게 작용할 수 있도록 하고 있습니다.

그러나 libgcc2.c와 crtstuff.c의 원시 코드를 직접 개작했거나 개작된 버전을 배포하는데 있어서는 GPL이 그대로 적용되어야 한다는 점에 유의해야 합니다. 정리하면, 예외 기준이 적용된 GPL에 의해서 GCC로 컴파일 해서 만든 프로그램에는 반드시 GPL을 적용할 필요가 없습니다. (물론, 프로그램의 실제 원시 코드에 GPL 코드를 사용했다면 이 프로그램은 GPL의 적용을 받습니다.) crtbegin.o와 libgnu.a는 GPL 소프트웨어입니다. 그러나 이 모듈을 독점 프로그램과 링크하는 것과 링크된 결합물을 독점 소프트웨어로 배포하는 것은 특별한 예외로 허용됩니다.

crtstuff.c와 libgcc2.c가 수행하는 프로그램의 초기화 루틴과 종료 루틴에 대한 보다 자세한 사항에 대해서는 다음 문서들을 참고하시기 바랍니다.