소스 공유 라이선스
게시 날짜: 2005년 10월 18일
이 페이지에서
개요
지난 5년 간 Microsoft는 150여개 이상의 소스 코드를 SSI(Shared Source Initiative)를 통해
배포했습니다. 소스 코드 라이선스를 취급하는 대부분의 조직과 마찬가지로 Microsoft는 이러한 릴리스에 다양한 라이선스를
사용했습니다.
Microsoft는 SSI를 통해 얻은 경험을 바탕으로 다음과 같은 특성이 있는 세 가지 단순화된 라이선스 초안을 마련했습니다.
• |
짧고 이해하기 쉬움 - 일반적으로 새 라이선스는 이전 라이선스보다 짧으며 읽고 이해하기 쉽습니다. |
• |
효과적이며 현대적 - Microsoft는 간단하면서도 소스 코드 라이선스싱에 있어서 현대적인 최상의 방법을 반영하는 효과적인 라이선스를 고안했습니다. |
• |
능률적 - 단순화된 세 가지 라이선스를 사용함으로써 Microsoft는 고유한 내부 소스 코드 릴리스 프로세스를 원활하게 처리하게 되어 소스 코드를 더욱 신속하게 릴리스할 수 있게 되었습니다. |
• |
생태계 친화적 - 단순하지만 정확하게 이해할 수 있는 세 가지 라이선스를 사용함으로써 Microsoft는 다양한
Microsoft 소프트웨어 생태계에서 소스 코드 공유를 단순화할 수 있었으며 과도한 라이선스 확산을 방지할 수 있었습니다. |
이러한 라이선스는 Microsoft와 개발자에게 전에 없이 다양한 소스 코드 배포를 가능하게 하는 광범위한 라이선싱 방식을
제공합니다. Microsoft는 Microsoft 이외의 개발자에게 이러한 라이선스를 범용 형태로 제공하며 이들 Microsoft
이외의 개발자는 Microsoft Shared Source 라이선스를 사용하여 700여개 이상의 자체 소스 코드 배포에 대한
사용을 허가하고 있습니다.
세 가지 라이선스는 다음과 같습니다.
• |
Ms-PL(Microsoft Permissive License) - Ms-PL은 Microsoft 소스 코드
라이선스 중에서 가장 제한이 적습니다. 이 라이선스는 정식 사용자가 상업적 또는 비상업적인 용도로 소스 코드를 보고 수정하고
재배포할 수 있도록 허용합니다. Ms-PL 하에서 정식 사용자는 소스 코드를 변경하고 해당 소스 코드를 다른 사용자와 공유할 수
있습니다. 또한 정식 사용자가 원하는 경우 수정한 소스 코드에 라이선스 비용을 부가할 수 있습니다. Microsoft는 개발자
도구, 응용 프로그램 및 구성 요소에 일반적으로 이 라이선스를 사용합니다. |
• |
Ms-CL(Microsoft Community License) - Ms-CL은 공동 개발 프로젝트에 가장 적합한
라이선스입니다. 일반적으로 이 유형의 라이선스는 상호 소스 코드 라이선스라고 하며 정식 사용자가 자신의 코드와 Ms-CL 코드를
조합하려는 경우 특정 요구 사항을 따라야 합니다. Ms-CL에서는 라이선스가 부여된 소프트웨어의 상업적 또는 비상업적인 수정과
재배포를 허용하며 파일별로 상호 조항을 따라야 합니다. |
• |
Ms-RL(Microsoft Reference License) - Ms-RL은 정식 사용자가 특정 기술의 내부
작동 방식을 쉽게 이해할 수 있도록 소스 코드를 볼 수 있게 허용하는 참조 전용 라이선스입니다. 이 라이선스는 수정 또는 재배포를
허용하지 않습니다. Microsoft는 기본적으로 이 라이선스를 개발 라이브러리와 같은 기술에 사용합니다. |
소스 코드 라이선싱은 근본적으로 복잡한 주제입니다. 특정 라이선스에 대해 가능한 변형 또는 해석이 다양할 수 있습니다. 모든
소스 코드 라이선스를 다시 정의하는 것이 목적이 아니라 Microsoft의 접근 방식을 단순화하는 것이 목적입니다.
Microsoft가 제공하는 기존 소스 공유는 기존 라이선스의 사용 약관대로 유지됩니다.
소스 공유 라이선스 템플릿은 ESLP(Enterprise Source Licensing Program),
SISLP(Systems Integrator Source Licensing Program), OEMSLP(OEM Source
Licensing Program), MVPSLP(MVP Source Licensing Program),
WCEPSLP(Windows CE Premium Source Licensing Program) 또는 GSP(Government
Security Program)에 적용되지 않습니다.
Microsoft는 자신의 코드에 원하는 라이선스를 사용하는 개발자의 권리를 존중하며 개발자가 소스 코드 라이선스를 선택할 때 적절한 법률적 조언을 받을 것을 권장합니다.
Ms-PL(Microsoft Permissive License)
Ms-PL(Microsoft Permissive License) (영문)은
Microsoft 소스 코드 라이선스 중에서 가장 제한이 적습니다. 이 라이선스는 정식 사용자가 상업적 또는 비상업적인 용도로
소스 코드를 보고 수정하고 재배포할 수 있도록 허용합니다. Ms-PL 하에서 정식 사용자는 소스 코드를 변경하고 해당 소스 코드를
다른 사용자와 공유할 수 있습니다. 정식 사용자가 수정한 소스 코드에 라이선스 비용을 부가할 수도 있습니다.
이 라이선스에서 부여하는 저작권과 특허는 모두 사용료가 없습니다. 즉, 정식 사용자가 소스 코드를 사용하기 위해 저작권자에게
어떤 비용도 지불할 필요가 없습니다. 또한 정식 사용자가 자신이 수정한 내용을 바이너리 형태나 소스 코드 형태로 공개해야 할
의무도 없습니다. 이 라이선스에서 요구하는 것은 저작권, 특허, 상표권 등과 같은 권한을 코드에 공지하라는 것입니다.
Microsoft는 Windows 플랫폼으로만 사용을 제한하기 위해 이 라이선스의 제한적 버전인 Ms-LPL(Microsoft Limited Permissive License) (영문)을 만들었습니다. 이러한 플랫폼 제한은 Windows 기반 개발자의 긍정적인 상호 작용을 얻기 위해 특정 소스 코드 릴리스에 선택되는 방법입니다.
Microsoft는 이 라이선스의 용도나 의미에 대한 법률적 조언을 제공할 수 없습니다. 개발자는 소스 코드의 사용을 허가하는 방법을 결정하기 전에 적절한 법률적 조언을 받는 것이 좋습니다.
Ms-CL(Microsoft Community License)
Ms-CL(Microsoft Community License) (영문)은
공동 개발 프로젝트에 가장 적합한 라이선스입니다. 일반적으로 이 유형의 라이선스는 상호 소스 코드 라이선스라고 하며 사용자가
자신의 코드와 Ms-CL 코드를 조합하려는 경우 특정 요구 사항을 따라야 합니다. 현재의 거의 모든 상호 라이선스는 라이선스
조항의 적용이 시작되는 배포 행위에 기반합니다. Ms-CL은 상업성을 고려하여 상호 조항을 적용하고 있으며 Ms-CL의 상호
조항이 실제 적용되는 시점에 관하여 개발자에게 명확한 지침을 제공하기 위해 노력하고 있습니다.
개발자가 특정 제품이나 솔루션을 만들 때는 다양한 아키텍처 옵션을 사용할 수 있습니다. 개발자는 최종 사용자의 컴퓨터에서
런타임으로 서로 통신하는 일련의 개별 파일이나 구성 요소로 큰 프로그램을 설계할지, 최종 사용자에게 배포되는 단일 코드 조각으로
설계할지 선택할 수 있습니다. 이러한 아키텍처의 차이가 최종 사용자에게는 명확하지 않지만 개발자에게는 라이선스의 의미에 상당한
차이가 있을 수 있습니다. 특히 개발자가 Ms-CL 코드를 사용하여 더 큰 프로그램을 작성할 경우에는 이 문제가 심각해집니다.
Ms-CL(Mozilla Public License와 유사)은 “개별 파일” 단위로 적용됩니다. 즉, 개발자가 특정 파일에
Ms-CL 코드를 사용하면 Ms-CL의 조항에 따라 해당 Ms-CL 소스 코드가 들어 있는 전체 파일(작성자에 관계없이 해당
파일에 있는 다른 코드 포함)을 소스 코드 형태로 재배포해야 합니다. 반대로 더 큰 프로그램에서 Ms-CL 코드를 포함하지 않는
모든 파일의 경우 개발자가 원하는 조건으로 자유롭게 파일에 대한 사용을 허가할 수 있습니다. 이것은 이러한 “비 Ms-CL”
파일이 런타임에 Ms-CL 파일과 상호 작용하거나 통신하는 방식과는 관계가 없습니다. 즉, 개발자가 코드를 Ms-CL로 릴리스하고
다른 개발자가 해당 코드를 자신의 프로젝트에 있는 파일에 포함시킨 경우(계속해서 프로젝트를 다른 사용자에게 재배포하는 경우)
원래 개발자의 소스 코드가 들어 있는 모든 파일을 Ms-CL 하에서 배포해야 합니다. 처음에는 이 파일 단위 제한이 모호하게
보일지 모르지만 실제로는 해석하기 쉬운 이점이 있는 명확한 규칙입니다.
따라서 상호 라이선스의 목적은 특정 커뮤니티 기반 코드와 상호 작용하는 기업의 “부가 가치” 코드를 원하는 라이선스로 상업화하도록 허용하면서 커뮤니티 기반 코드를 “커뮤니티 내부에 유지”하는 메커니즘을 제공하는 것입니다.
이 라이선스에서 부여하는 저작권과 특허는 모두 사용료가 없습니다. 즉, 정식 사용자가 소스 코드를 사용하기 위해 저작권자에게
어떤 비용도 지불할 필요가 없습니다. 이 라이선스에서 요구하는 것은 저작권, 특허, 상표권 등과 같은 권한을 코드에 공지하라는
것입니다.
Microsoft는 Windows 플랫폼으로만 사용을 제한하기 위해 이 라이선스의 제한적 버전인 Ms-LCL(Microsoft Limited Community License) (영문)을 만들었습니다. 이러한 플랫폼 제한은 Windows 기반 개발자의 긍정적인 상호 작용을 얻기 위해 특정 소스 코드 릴리스에 선택되는 방법입니다.
Microsoft는 이 라이선스의 용도나 의미에 대한 법률적 조언을 제공할 수 없습니다. 개발자는 소스 코드의 사용을 허가하는 방법을 결정하기 전에 적절한 법률적 조언을 받는 것이 좋습니다.
Ms-RL(Microsoft Reference License)
Ms-RL(Microsoft Reference License) (영문)은
가장 제한적인 Microsoft 소스 코드 라이선스 중 하나입니다. 이 라이선스는 참조 용도로 코드를 보는 것 이외의 모든 소스
코드 사용을 금지합니다. 이 라이선스를 사용하면 저작권자가 민감한 지적 재산을 검토용으로만 사용하도록 배포할 수 있습니다.
일반적으로 Microsoft는 소스 코드를 사용하기 위해 수정할 필요가 없는 개발자 라이브러리에 이 라이선스를 사용합니다. 이
경우 개발자가 소스 코드의 내부 작동 방식을 깊이 있게 이해할 수 있게 됩니다. 이를 통해 정식 사용자는 라이선스가 부여된 소스
코드를 사용하는 소프트웨어를 더욱 효율적으로 만들 수 있습니다.
이 라이선스에서 부여하는 저작권과 특허는 모두 사용료가 없습니다. 즉, 정식 사용자가 소스 코드를 사용하기 위해 저작권자에게
어떤 비용도 지불할 필요가 없습니다. 이 라이선스는 소스 코드 릴리스를 Windows 플랫폼에서만 사용하도록 제한합니다.
Microsoft는 이 라이선스의 용도나 의미에 대한 법률적 조언을 제공할 수 없습니다. 개발자는 소스 코드의 사용을 허가하는 방법을 결정하기 전에 적절한 법률적 조언을 받는 것이 좋습니다.