리처드 스톨먼이 정의한 기준이다. 번호가 0번부터 시작하는 것까지가 특징이다.
번호 자유 자유 0 목적을 묻지 않고 실행 할 자유 자유 1 동작을 연구하고 수정 할 자유 (소스 코드 접근이 전제) 자유 2 복제본을 재배포 할 자유 자유 3 개선한 것을 배포 할 자유
흔한 오해: "자유 소프트웨어 = 공짜"가 아니다.
영어 free 가 '무료'와 '자유'를 동시에 뜻해 생긴 혼동이라, FSF는 "free as in free speech, not as in free beer" 라고 설명한다.
돈을 받고 파는 것도 자유 소프트웨어에 어긋나지 않는다. 다만 산 사람에게 위 네 자유를 보장해야 한다.
구분 자유 소프트웨어 (FSF) 오픈소스 (OSI) 설립 1985년, 리처드 스톨먼 1998년 핵심 가치 사용자의 자유 (윤리·철학)개발 방식의 우수성 (실용)표현 Free Software Open Source 대표 라이선스 GPL 다양 (BSD, MIT, Apache 등 포함)
두 진영이 인정하는 라이선스 목록은 거의 겹친다. 강조점이 다를 뿐이다.
둘을 아울러 FOSS 또는 FLOSS (Free/Libre and Open Source Software)라고 부른다.
OSI는 1998년 에릭 레이먼드 와 브루스 페런스 가 중심이 되어 만들었다. "자유(free)"라는 말이 기업에 주는 거부감을 덜고자 오픈소스 라는 이름을 내세웠다.
OSI는 어떤 라이선스가 오픈소스인지 판정하는 기준 OSD(Open Source Definition) 를 두고 있다. 데비안 자유 소프트웨어 지침 을 바탕으로 한 10개 조항이다.
번호 조항 풀어 쓰면 1 자유로운 재배포 팔거나 나눠 주는 것을 막지 않는다 2 소스 코드 공개 소스를 함께 주거나 쉽게 구할 수 있어야 한다 3 파생 저작물 허용 고친 것을 같은 조건으로 배포할 수 있어야 한다 4 원저작자 소스 코드의 무결성 수정본에 다른 이름·버전을 쓰게 요구할 수는 있다 5 사람·집단 차별 금지 누구는 못 쓴다는 조건을 둘 수 없다 6 사용 분야 차별 금지 "상업용 금지", "연구용만" 같은 제한을 둘 수 없다 7 라이선스의 배포 받은 사람 모두에게 같은 권리가 따라간다 8 특정 제품에 한정 금지 어떤 배포판에 들어 있을 때만 유효해서는 안 된다 9 다른 소프트웨어 제한 금지 함께 배포되는 다른 프로그램에 조건을 강요하지 않는다 10 기술 중립성 특정 기술·인터페이스를 전제로 하지 않는다
⚠️ 함정 : 5·6번 때문에 "비영리 목적으로만 사용 가능"한 소프트웨어는 오픈소스가 아니다. 소스가 공개돼 있어도 마찬가지다. "소스 공개 = 오픈소스"라고 넘겨짚으면 틀린다.
'free'가 붙었다고 다 같은 것이 아니다. 소스가 공개되는가 와 돈을 내는가 는 별개의 축이다.
분류 소스 코드 가격 핵심 상용(사유) 소프트웨어 비공개 유료 사용권만 산다. 수정·재배포 불가 셰어웨어(shareware) 비공개 일정 기간·기능만 무료 써 보고 계속 쓰려면 돈을 낸다 프리웨어(freeware) 비공개 무료 공짜지만 고치거나 재배포할 권리는 없다 퍼블릭 도메인(public domain) 제한 없음 무료 저작권을 포기 했거나 소멸됐다. 아무 조건이 없다자유·오픈소스 소프트웨어 공개 무료·유료 모두 가능 저작권은 살아 있고, 라이선스 조건 을 지켜야 한다
프리웨어 ≠ 자유 소프트웨어. 프리웨어는 가격이 0원일 뿐 네 가지 자유가 없다.
퍼블릭 도메인 ≠ 오픈소스. 오픈소스는 저작권자가 권리를 쥔 채 조건을 걸어 허락한 것이고, 퍼블릭 도메인은 걸 조건 자체가 없다.
오픈소스 라이선스
│
┌─────────────────┴─────────────────┐
▼ ▼
카피레프트 퍼미시브
(copyleft, 전염성) (permissive, 관대)
│ │
┌──────┴──────┐ ┌───────┼───────┐
▼ ▼ ▼ ▼ ▼
GPL LGPL BSD MIT Apache
(강한 (약한
카피레프트) 카피레프트)
핵심 규칙 : GPL 코드를 가져다 쓴 결과물을 배포할 때 , 그 결과물도 GPL로 소스를 공개해야 한다.
이 성질을 전염성(viral) 이라 부른다. 저작권(copyright)을 뒤집었다는 뜻에서 카피레프트(copyleft) 다.
주의: 배포할 때만 의무가 생긴다. 회사 내부에서만 쓰고 배포하지 않으면 공개 의무가 없다.
라이선스 특징 GPL v2 리눅스 커널이 쓰는 라이선스 GPL v3 특허 조항과 하드웨어 잠금(티보이제이션) 방지 조항 추가 LGPL 라이브러리를 링크만 하면 자기 코드는 공개하지 않아도 됨 AGPL 네트워크로 서비스만 제공해도 소스 공개 의무 발생
거의 아무 조건이 없다. 저작권 표시만 남기면 상용 제품에 넣고 소스를 닫아도 된다.
라이선스 특징 BSD 저작권 고지만 유지하면 됨. 매우 단순 MIT BSD와 사실상 동일. 가장 짧고 널리 쓰임 Apache 2.0 저작권 고지 + 특허권 명시적 허용 조항 포함 MPL 파일 단위 카피레프트. 수정한 파일만 공개하면 됨
시험에서는 "GPL로 배포된 프로그램을 수정해 판매할 때의 의무"를 묻는 문항이 있다. 답은 판매 자체는 가능하지만 소스 코드를 함께 공개해야 한다 는 것이다.
라이선스 고친 것을 배포할 때 소스 공개 비공개 프로그램과 결합 특허 조항 쓰는 대표 소프트웨어 GPL v2 필수 결합물 전체가 GPL 명시 조항 없음 리눅스 커널 GPL v3 필수 결합물 전체가 GPL 있음 GCC, bash LGPL 라이브러리를 고친 부분만 링크는 가능 버전에 따라 다름 glibc(GNU C 라이브러리) AGPL 필수 + 네트워크 서비스도 결합물 전체가 AGPL 있음 — MPL 고친 파일만 가능 있음 파이어폭스 BSD 불필요 가능 없음 FreeBSD MIT 불필요 가능 없음 X 윈도 시스템 Apache 2.0 불필요 가능 있음 아파치 웹 서버, 안드로이드(대부분)
표를 위에서 아래로 읽으면 조건이 강한 것에서 약한 것 순 이다. GPL·AGPL이 가장 강하고 BSD·MIT가 가장 약하다.
Apache가 BSD·MIT와 갈리는 지점은 특허 다. 기여자가 자기 특허를 사용자에게 허락한다는 문장이 들어 있고, 고친 파일에는 수정했다는 사실 도 적어야 한다.
BSD는 원래 "이 소프트웨어를 쓴 제품 광고에 버클리 대학을 밝혀라"는 광고 조항 이 있었다(4조항 BSD). 이 조항을 뺀 것이 지금 흔히 쓰는 3조항·2조항 BSD 다.
GPL 프로그램(또는 그걸 고친 것)을 남에게 넘길 때 지켜야 할 일은 네 가지로 정리된다.
소스 코드를 함께 주거나 , 요청하면 주겠다는 약속을 문서로 붙인다.
GPL 전문(라이선스 사본) 을 함께 준다.
원래 있던 저작권 표시 를 지우지 않는다.
받는 사람에게 추가 제한을 걸지 않는다 — "재배포 금지" 같은 조건을 덧붙일 수 없다.
버전 발표 기억할 점 GPL v1 1989 최초 버전 GPL v2 1991 리눅스 커널이 채택. 가장 오래 널리 쓰였다 GPL v3 2007 특허 조항, 티보이제이션 방지 추가
🔍 더 깊이 : 티보이제이션(Tivoization) 은 디지털 녹화기 회사 티보(TiVo)에서 온 말이다. 티보는 리눅스 커널 소스를 GPL대로 공개했지만, 기기가 제조사 서명이 없는 소프트웨어는 실행을 거부 하게 만들어 놓았다. 소스는 받았는데 고친 것을 돌릴 수 없는 상황 — GPL v3는 이것을 막는 조항을 넣었고, 리눅스 커널은 그 변화에 동의하지 않아 v2에 남았다.
상황 소스 공개 의무 GPL 프로그램을 고쳐 사내에서만 쓴다 없다 — 배포가 아니다 GPL 프로그램을 고쳐 고객에게 판다 있다 — 산 사람에게 소스를 줘야 한다 GPL 코드를 내 프로그램에 넣어서 배포한다 있다 — 내 프로그램 전체가 GPL이 된다 LGPL 라이브러리를 링크만 해서 배포한다 내 코드는 없다(라이브러리를 고쳤다면 그 부분은 있다) AGPL 프로그램을 고쳐 웹 서비스로만 제공한다 있다 — 배포하지 않아도 이용자에게 공개해야 한다 MIT·BSD 코드를 넣어 상용 제품으로 판다 없다 — 저작권 표시와 라이선스 문구만 남긴다
기업이 GPL과 상용 라이선스를 함께 내놓기도 한다(이중 라이선스). GPL 조건이 부담스러운 고객은 돈을 내고 상용 라이선스를 받는다. MySQL이 대표적이다.
질문 답 자유 소프트웨어는 무료인가? 아니다. 유료 판매도 가능하다 GPL 프로그램을 팔 수 있나? 있다. 단 소스를 공개해야 한다 사내에서만 쓰면 공개해야 하나? 아니다. 배포하지 않으면 의무가 없다 BSD 코드를 상용 제품에 넣을 수 있나? 있다. 저작권 표시만 남기면 된다 리눅스 커널의 라이선스는? GPL v2
내일은 이 커널과 도구들을 하나로 묶어 파는 단위 — 배포판을 살펴본다.
자유 소프트웨어 : 실행·연구·재배포·개선의 네 가지 자유가 보장된 소프트웨어.
FSF : 자유 소프트웨어 재단. 1985년 리처드 스톨먼이 설립했다.
OSI : 오픈소스 이니셔티브. 1998년 설립, 개발 방식의 실용성을 강조한다.
카피레프트(Copyleft) : 파생물에도 같은 자유를 강제하는 라이선스 방식. GPL이 대표적이다.
퍼미시브(Permissive) : 조건이 거의 없는 관대한 라이선스. BSD·MIT가 대표적이다.
GPL : GNU 일반 공중 사용 허가서. 리눅스 커널은 GPL v2를 따른다.
LGPL : 라이브러리용 GPL. 링크만 하는 경우 소스 공개 의무를 면제한다.
FOSS/FLOSS : 자유 소프트웨어와 오픈소스를 아울러 부르는 말.
프리웨어(Freeware) : 무료로 쓸 수 있지만 소스가 공개되지 않고 수정·재배포 권리도 없는 소프트웨어.
퍼블릭 도메인 : 저작권이 포기됐거나 소멸돼 아무 조건 없이 쓸 수 있는 상태.
📝 연습 문제 선택지를 클릭하면 정답·해설이 펼쳐집니다.
다음 중 리눅스 커널이 채택하고 있는 라이선스로 알맞은 것은?
A BSD B MIT C GPL v2 D Apache 2.0 다음 중 자유 소프트웨어에 대한 설명으로 알맞은 것은?
A 반드시 무료로 배포해야 한다 B 소스 코드를 공개하지 않아도 된다 C 실행·연구·재배포·개선의 자유가 보장된다 D 상업적 이용이 전면 금지된다 다음 중 GPL 라이선스의 특징으로 가장 알맞은 것은?
A 파생 저작물도 동일한 라이선스로 공개해야 한다 B 저작권 표시만 남기면 소스를 공개하지 않아도 된다 C 학술 목적으로만 사용할 수 있다 D 수정 자체가 금지되어 있다 다음 중 라이브러리를 링크해서 사용하는 경우 자신의 소스 코드를 공개하지 않아도 되도록 완화한 라이선스로 알맞은 것은?
다음 중 퍼미시브(permissive) 계열 라이선스로 묶인 것으로 알맞은 것은?
A GPL, LGPL, AGPL B AGPL, MPL, LGPL C GPL v2, GPL v3 D BSD, MIT, Apache