기본 콘텐츠로 건너뛰기

주요 오픈 소스 라이센스(GPL, LGPL, BSD, MPL, QPL)에 대한 설명

게시글 주소 : http://www.igotit.co.kr/zbxe/386

주요 오픈 소스 라이센스 최종 비교

 

GPL

LGPL

BSD

MPL

QPL/상용QT

코드의 무료 이용

O

O

O

O

O/X

코드의 자유 배포

O

O

O

O

O/X

소스 코드의 공개

O

O

O

O

O/X

소스 코드의 수정

O

O

O

O

O/O

수정 코드의 소스 공개

O

O

X

O

O/X

상용 소프트웨어와의 링크

X

O

O

O

X/O



GPL :
GNU General Public License

 

1. GPL을 따르는 소프트웨어 소스 코드 일부를 사용해 만든 소프트웨어는 GPL을 따라야 한다.

2. GPL을 따르는 소프트웨어 소스 코드를 개인적으로 사용할 수 없다. 반드시 소프트웨어를

    개발한 원작자나 공동체에 환원해야 한다.

 

배경

→ 1980년대 초 PC의 보급 등으로 소프트웨어의 상업성 강조

      - 소프트웨어의 자유로운 사용 통제

      - AT&T의 UNIX의 대한 권리 주장

→ Richard Stallman이 GNU 프로젝트 시작, FSF(Free Software Foundation) 설립

      - 소프트웨어의 자유로운 사용, 공유, 수정을 강조

      - 이를 담보하기 위한 장치로 GPL 고안

      - GCC등 주요 개발 툴을 GPL로 배포

→ 전세계 자유 소프트웨어 개발자들의 GPL 채택

      - 1990년대 초 Linux Kernel이 GPL로 배포

 

의무사항

 

 소스코드 배포 시

실행파일 배포 시 

수정코드 배포 시 

   - 저작권 표시

   - No Warranty

   - GPL로 배포

   - 저작권 표시

   - No Warranty

   - GPL로 배포

   - 소스코드 제공 

   - 저작권 표시

   - No Warranty

   - GPL로 배포

   - 소스코드 제공

   - 수정 사실 및 일자

 

 

공개

→ Original GPL Program

→ "Work based on the Program"

      - 수정된 프로그램 (수정된 Linux Kernel 자체)

      - (Static or Dynamic) Linking

 

비공개

→ "Independent and Separate Works"

→ "Mere Aggregation"

      - 동일한 매체(CD-ROM 등)에 저장되어 배포되는 독립된 프로그램

저작권자의 예외규정

      - User Programs that use (Linux) Kernel services by Normal System Calls

      - Classpath exception (JavaSE, javaEE 사용 Applications)

Loadable Kernel Module (?)

      - Device Driver etc

 

소스 코드 공개 방식

→ Object 또는 Executable Form 배포시 소스 코드를 함께 제공

→ 최소 3년 동안, 이용자가 요청할 경우 최소의 비용을 받고 소스코드를 제공하겠다는 문서

    (Written offer)를 제공

→ 기타 웹상에서 다운 받을 수 있도록 하는 것도 인정

 

1.jpg

 

 

LGPL : Lesser GPL

 

1. GPL의 1번 조항을 완화한 라이센스 모델

2. LGPL 대상 라이브러리와 링크만 해서 사용한 경우 실행 프로그램에 대한 공개 의무가 없다.

 

배경

→ GNU 'Lesser' General Public License

→ GPL보다 다소 완화된 라이센스 정책 적용하여 상용 라이브러리와 비슷한 기능을 가진

    GNU 라이브러리의 사용을 장려하고, 사실상의 표준으로 유도하기 위함.

 

의무사항

 

 소스코드 배포 시

실행파일 배포 시 

수정코드 배포 시 

   - 저작권 표시

   - No Warranty

   - LGPL로 배포

   - 저작권 표시

   - No Warranty

   - LGPL로 배포

   - 소스코드 제공 

   - 저작권 표시

   - No Warranty

   - LGPL로 배포

   - 소스코드 제공

   - 수정 사실 및 일자

 

공개

→ Original LGPL Library

→ "Work based on the Library"

→ 수정된 library 전체를 LGPL로 공개 파일을 수정했다는 사실과 수정일자 명시

 

비공개

→ "Independent and Separate Works"

→ "Mere Aggregation"

      - 동일한 매체(CD-ROM 등)에 저장되어 배포되는 독립된 프로그램

→ "Work that uses the Library"

      - LGPL Library를 이용한 응용프로그램

 

소스 코드 공개 방식

→ LGPL Library의 일부를 수정하는 경우 수정한 Library를 LGPL에 의해 소스 코드 공개

→ LGPL Library에 응용 프로그램을 링크시킬 경우 해당 응용 프로그램의 소스를 공개할 필요 없음

→ 다만 사용자가 Library 수정 후 동일한 실행 파일을 생성할 수 있도록 Static Linking 시에는

    응용 프로그램의 Object Code를 제공 해야 함

 

2.jpg

 

GPL & LGPL 요약

 

3.jpg

 

BSD

 

기본원칙

→ 프로그램의 자유로운 사용, 복제, 배포, 수정을 허용

→ 수정 프로그램에 대한 소스 ㅗ드 공개를 요구하지 않기 때문에 상용 소프트웨어에 무제한 사용가능

 

의무사항

 

 프로그램 배포 시

   - 저작권 표시

   - No Warranty

 

4.jpg

 

 

MPL

 

배경

→ Netscape의 소스공개 결정

      - MS explorer의 시장점유율 상승

      - 비지니스 전략의 수정

→ 라이센스 선택의 문제

      - GPL의 경우

            - Netscape Communicator 제품내 제3자 Component 공개문제

            - 암호코드 등은 관련 법률에 의해 규제를 받고 있음 (소스제공제한)

            - 코드 일부분은 다른 제품(서버)등에 사용되고 있음

      - BSD 라이센스의 경우

            - 경쟁기업이 코드를 약탈할 가능성

      - 새로운 라이센스의 개발

 

기본원칙

→ 프로그램의 자유로운 사용, 복제, 배포, 수정을 허용

 

의무사항

  

 프로그램 배포 시

   - 저작권 표시

   - No Warranty

   - Exhibit A의 공지사항 표시

         - Original Code

         - 최초 개발자

         - Contributors

   - 소스코드 제공

         - GPL과 BSD의 중간 범위

 

공개

→ "Covered Code"

      - Original code

      - Modifications

      - Combination of the Original Code and Modification

→ 수정일자, 수정사항, 최초개발자 등을 표시할 것

 

비공개

→ 추가된 새로운 file

→ "Larger Code"

      - MPL Code(Covered Code)와 기타 Code의 결합은 MPL외의 다른 라이센스로 배포 가능

      - LGPL과 유사하나 덜 제한적임

 

GPL과의 Compatibility

→ MPL 코드와 GPL 코드의 결합을 불가능하게 만듬

      - 예를 들어, MPL은 별도의 파일로 Function을 추가할 경우 기존 Code의 수정부분에만

         MPL이 적용되며, 추가된 Function에는 적용되지 않음

→ LGPL Code와는 API를 통해 결합 가능

→ Mozilla.org의 'triple license' 정책 (MPL/GPL/LGPL) 하는 것도 인정

  

5.jpg

 

QPL

 

배경

→ Troll Tech의 QT Library에 대한 라이센스

      - 자유로운 이용 및 배포 허용, 수정도 어느 정도 허용(->OSI 인증)

→ 2001년 QT에 대해 GPL 배포

      - QPL의 특정 내용이 제한적이기 때문에 GPL과 호환될 수 없다는 FSF의 비판을 수용

→ 현재 QT는 QPL, GPL, 상용 라이센스에 의해 배포(Triple License Policy)

      - 소스코드를 공개하지 않는 상용 응용프로그램을 만들기 위해서는 상용 라이센스를 취득해야 함

 

기본원칙

→ 프로그램의 자유로운 사용, 복제, 배포, 수정을 허용

 

의무사항

  

 프로그램 배포 시

   - 저작권 및 상표권 표시,  보증 책임이 없다는 표시

   - 프로그램을 수정한 경우

         - 패치와 같이 분리된 형태로 배포 가능

         - 최초 개발자에게 Royalty-free 라이센스 부여

   - 응용프로그램을 작성한 경우

         - 응용프로그램 배포 시 소스코드 제공

         - 프로그램의 자유로운 재배포를 허용할 것

  

6.jpg

 

댓글

익명님의 메시지…
This may be the ratio of keywords to the rest
in the words for the page. The page the spider sees is "cloaked" because it is
invisible to regular traffic, and deliberately set-as much as raise
the site's search results ranking. After all of the Page - Ranks are calculated they can be added in without affecting things significantly.
My web site > review of ultimate demon

이 블로그의 인기 게시물

Ubuntu (Kubuntu) 에 desktop 파일 만들기

Package 관리자등을 통해 직접 Repository 에 있는 Application 을 설치하는 경우에는 필요한 경로와 파일, Category 로 분류된 Icon 등록 등이 자동적으로 이루어지나 firefox, eclipse 등 새로운 버전을 새로 설치할 경우, 다음과 같은 절차를 통해 시작메뉴에 등록시킬 수 있다. 다음은 eclipse-SDK-3.6-linuxx-gtk.tar.gz 을 받아 설치 등록하는 것을 예로 든다. 1. 다운받은 파일을 /usr/lib에 압축해제한다. (물론, super user 계정으로 실행해야 한다.) 2. 보통의 경우, /usr/bin Directory 는 PATH 에 물려 있으므로 다음과 같은 실행 파일을 만들어 놓는다. # cd /usr/lib # chmod +x eclipse # cd /usr/bin # sudo nano eclipse eclipse 파일에는 아래의 내용을 입력하여 넣는다. export ECLIPSE_HOME="/usr/lib/eclipse" $ECLIPSE_HOME/eclipse $ * # sudo chmod 755 eclipse 3. Desktop Menu 에 추가하려면 # cd /usr/share/applications # sudo nano eclipse.desktop [Desktop Entry] Encoding=UTF-8 Name=Eclipse Comment=Eclipse IDE Exec=eclipse Icon=/usr/lib/eclipse/icon.xpm Terminal=false Type=Application Categories=GNOME;Application;Development' StartupNotify=true 이렇게 입력한 파일을 저장하면, 시작메뉴 > 개발 > Eclipse 아이콘이 생성되어 메뉴에서 직접 실행할 수 있게된다.

VIDEO_DXGKRNL_FATAL_ERROR on Windows 8.1

Windows 8.1 로 업데이트 이후, Booting 시 Blue Screen 이 뜨면서, VIDEO_DXGKRNL_FATAL_ERROR 또는 SYSTEM_SERVICE_EXCEPTION (atikmpag.sys)  가 발생하는 문제점이 있을 때, 아래와 같이 조치해 보십시오. 제어판 -> 전원 옵션 -> 설정 변경 덮개를 닫으면 수행되는 작업 선택 -> 현재 사용할 수 없는 설정 변경 -> 종료 설정 -> 빠른 시작 켜기(권장)의 Check Box 를 해제함.

네트워크 상의 IP 주소로 MAC 주소를 추출하는 방법

Subject :  How can I get a list of MAC to IP addresses on the network? An easy way to get a list of MAC to IP addresses on the local subnet is to ping every host on the subnet and then check you ARP cache, however pinging every individual node would take ages and the entries only stay in the ARP cache for 2 minutes. 로컬 서브넷 상의 IP 주소에 대한 MAC 주소 목록을 획득하는 쉬운 방법은 서브넷 상의 모든 호스트에게 Ping 을 하고 ARP(Address Resolution Protocol) 캐쉬를 확인하는 것이다.  그러나, 모든 개별 노드에 Ping 하는 것은 많은 시간이 걸릴 것이고 2분동안만 ARP 캐쉬에 체재하면서 들어갈 수 있다. (참고) ARP 캐쉬는 Linux 의 경우 20분, Windows Server 의 경우 2분이 기본적인 Life Time  이다. 그 이후에는 그 데이타가 지워진다. An alternative is to ping the broadcast mask of your subnet which will ping every host on the local subnet (you can't ping the entire network as you only communicate directly with nodes on the same subnet, all other requests are via the gateway so you would just get a ARP entry for the gateway). 로컬 서브넷상의 모든 호스트를 Ping 하게 될 사용자의 서브넷 브로드캐스트 마스크를 Ping 하는 것이 또 다른 방법이다.(동일 서브넷 상의 노드와 직접적으로