최근 수정 시각 : 2024-08-02 21:27:13

Shared Source Initiative

1. 개요2. 라이선스 목록
2.1. 오픈 소스 라이선스
2.1.1. Microsoft Public License (MS-PL, 마이크로소프트 공중 라이선스)2.1.2. Microsoft Reciprocal License (MS-RL, 마이크로소프트 상호 라이선스)
2.2. 제한 라이선스
2.2.1. Microsoft Limited Public License (MS-LPL)2.2.2. Microsoft Limited Reciprocal License (MS-LRL)2.2.3. Microsoft Reference Source License (MS-RSL)
3. 라이선스가 사용된 프로젝트
3.1. MS-PL3.2. MS-RL

1. 개요

Shared Source Initiative (SSI, 공유 소스 이니셔티브)는 2001년에 게시한 마이크로소프트에서 소스 사용이 가능한 소프트웨어(Source Available Software) 사용 허가를 위한 양식을 의미한다. 이를 통하여 지적재산권을 보호하면서도 소스 코드를 안전하게 제공할 수 있는 방안을 제공한다. 간단히 이야기 하자면 마이크로소프트의 소스 코드 제공 정책이라고 보면 된다.

여기에 포함된 라이선스는 아래와 같이 총 5개이다. 이중 2개는 오픈 소스 이니셔티브로부터 오픈 소스 라이선스로 인정받았으며 자유 소프트웨어 재단에서도 자유 소프트웨어 라이선스로 취급된다.

명칭은 Open Source Initiative를 의식하고 만든 느낌이며 오픈 소스에 관련되었음에도 불구하고 라이선스 대부분 자유로운 상업적 활용을 추구한다는 점이 특징이다.

모든 라이선스는 GPL과 호환되지 않으며 이는 마이크로소프트에서 의도적으로 호환되지 않게 설계했다는 이야기가 있다. 오픈 소스와 친화적이된 지금은 MIT 허가서 아파치 라이선스를 주로 쓰지 아래 라이선스들은 잘 쓰지 않는다는 것도 재미있는 점.

2. 라이선스 목록

2.1. 오픈 소스 라이선스

2.1.1. Microsoft Public License (MS-PL, 마이크로소프트 공중 라이선스)

원문 (영어)

예전에는 Microsoft Permissive License였으나 현재와 같이 명칭이 변경되었다.

일단 아파치 라이선스에 가깝지만 좀 더 단순화된 형태이다. 전문 길이도 MIT 허가서와 유사하게 길지 않고 제약사항을 최소화 한 형태이다.

기여자(소스 코드, 소프트웨어를 사용하고 배포하는 사람)에게 주어지는 권리와 제약사항의 특징은 아래와 같다.
  • 기여자에게 특허의 무제한적 사용
  • 소프트웨어는 법으로 규정된 것 외에 책임 없음
  • 소스 코드 공개 필요 없음
  • 기여자의 이름, 로고, 트레이드 마크 등 사용 금지
  • 소프트웨어 일부를 포함할 경우 저작권과 특허, 상표 및 귀속 고지를 유지
  • 소프트웨어 일부를 포함하고 소스 코드 형태일 경우 라이선스 유지 및 전문 포함

일단 기여자의 권리 부분은 소스 코드나 소프트웨어 사용을 빌미로 다른 기여자에게 영향력을 행사하려는 것을 방지하고 기여자가 자유롭게 소스코드나 소프트웨어를 활용할 수 있게 하는데 초점이 맞춰져 있다. 소스 공개를 강제하는 조항도 없고 영리적인 행동을 제한하는 사항도 없어서 사용에 크게 고려할 요소는 없다.

단, GPL과 유사하게 전염성이 있다. MS-PL이 적용된 소스의 일부를 포함한 소스 코드 형태로 배포할 때는 반드시 MS-PL 라이선스로 배포해야한다. 즉, MS-PL은 카피레프트 라이선스의 일종이며, 그 제약이 GPL보다 많이 약할 뿐 사용에는 유의해야 한다.

그러나 완전한 소프트웨어 형태에서는 MS-PL 항목들을 유지하는 다른 라이선스로 변경할 수 있다. 그리고, 소프트웨어 형태에서는 "있는 그대로(As-is)" 라이선스를 적용한다. (As-is는 보통 보증을 부인하는데 사용된다)

컴파일된 부분만 MS-PL로 유지하고(MS-PL 라이선스 사본은 포함시켜야 한다.) 나머지 직접 작성한 소스코드나 소프트웨어에서 동적 연결하는 방법으로 라이선스를 분리할 수 있을 것으로 보인다. 단, 동적 링크가 LGPL처럼 명확하게 정의된 사항이 아니므로 약간의 분쟁 소지가 있다. 또한, 위의 모든 사항은 원 라이선스를 그대로 썼을 때 이야기이고, 기여자가 소프트웨어를 배포할 때, 이를 방지하는 조항을 추가할 수 있으므로 실제 라이선스 전문을 자세히 읽어보는 것이 좋다.

본 라이선스 중 가장 제약사항이 적은 라이선스이다.

이름에서 유추할 수 있듯 GPL과 유사하게 전염성을 가지고 있으면서도 위에서 언급한 바와 같이 GPL과는 어떤 방법을 써도 호환이 불가능하다. 소스 코드 부분에서는 무조건 MS-PL로 배포해야 된다는 항목에 의해 호환되지 않으며 컴파일된 소프트웨어의 경우 GPL의 링크된 프로그램의 강제 소스코드 공개라는 부분과 충돌한다. 따라서 이 두 라이선스는 절대로 서로 만날 일이 없다고 보면 된다.

2.1.2. Microsoft Reciprocal License (MS-RL, 마이크로소프트 상호 라이선스)


여기서는 MS-PL과 다르게 소스 코드 공개 조항이 포함되어 있다. 따라서 MS-PL보다 조금 더 GPL에 가까워 졌다고 보면 된다. 대신 적용범위가 파일 단위로 제한되기 때문에 완전히 독자적으로 개발한 다른 파일은 다른 라이선스를 적용할 수 있다.

MS-PL에서 소스 코드 공개 조항과 파일 단위로 적용된다는 항목만 추가되었기 때문에 해당 라이선스가 적용된 파일은 MS-PL의 특징을 대부분 공유한다.

2.2. 제한 라이선스

2.2.1. Microsoft Limited Public License (MS-LPL)

MS-PL과 유사하지만 주어지는 권리가 일반인이 아닌 마이크로소프트 윈도우 기반 소프트웨어 개발자들에게만 주어진다는 특징을 가지고 있다.

2.2.2. Microsoft Limited Reciprocal License (MS-LRL)

MS-LPL과 마찬가지로 마이크로소프트 윈도우 플랫폼 기반 소프트웨어 개발자들에게만 권리과 주어지는 MS-RL 라이선스이다.

2.2.3. Microsoft Reference Source License (MS-RSL)

본 라이선스 중 가장 제약이 많은 라이선스로 소스 코드는 참고용으로만 볼 수 있으며 배포하거나 수정하는 것은 영리적이든 비영리적이든 불가능하다. 주로 디버깅 단계에서만 사용하기 위한 목적을 가지고 있다.

3. 라이선스가 사용된 프로젝트

마이크로소프트의 오픈소스 투자가 활발해지면서, 기존 마이크로소프트 제품과 오픈소스 프로젝트와의 호환성 확보를 위해 본 라이선스들이 적용되는 경우가 존재한다. 아래는 라이선스 별 예시 프로젝트이다.

3.1. MS-PL

  • MonoGame[1]
  • Windows Driver Kit Sample
  • SVNBridge
  • NodeXL

3.2. MS-RL



[1] Mono 기반 게임 프레임워크. 이것의 전신이 XNA이다.