CertNote/ 출퇴근 학습 노트
로드맵
KOEN
리눅스마스터 2급 · 2급리눅스마스터 2급
  • Week 1
    • 1.운영체제와 커널: 리눅스가 하는 일
    • 2.리눅스의 탄생: 유닉스에서 리누스까지
    • 3.자유 소프트웨어와 오픈소스: 라이선스가 정하는 것
    • 4.배포판: 커널과 도구를 하나로 묶어 파는 단위
    • 5.Week 1 종합 복습: 리눅스라는 이름의 정체
  • Week 2
  • Week 3
  • Week 4
  • Week 5
  • Week 6
  • Week 7
  • Week 8
  • Week 9
  • Week 10
  • Week 11
리눅스마스터 1급 · 1급리눅스마스터 1급
합격 후기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
← 리눅스마스터 2급/Week 1/Day 3

기준: 리눅스마스터 2급 출제 기준·오류 제보

리눅스마스터 2급· AssociateWeek 1 · Day 3읽기 약 11분
핵심 정리
  • 자유 소프트웨어의 자유는 "무료"가 아니라 "자유" 다. 실행·연구·배포·개선이라는 네 가지 자유로 정의된다.
  • FSF(자유 소프트웨어 재단)는 자유를, OSI(오픈소스 이니셔티브)는 개발 방식의 실용성을 강조한다.
  • 라이선스는 크게 카피레프트(GPL 계열)와 퍼미시브(BSD·MIT·Apache)로 나뉜다.
  • GPL은 전염성이 있다. GPL 코드를 가져다 쓰면 결과물도 GPL로 공개해야 한다.
  • LGPL은 라이브러리를 링크만 하는 경우 예외를 둬 전염을 완화한 라이선스다.

Day 3 - 자유 소프트웨어와 오픈소스: 라이선스가 정하는 것

자유 소프트웨어의 네 가지 자유

리처드 스톨먼이 정의한 기준이다. 번호가 0번부터 시작하는 것까지가 특징이다.

번호자유
자유 0목적을 묻지 않고 실행할 자유
자유 1동작을 연구하고 수정할 자유 (소스 코드 접근이 전제)
자유 2복제본을 재배포할 자유
자유 3개선한 것을 배포할 자유
  • 흔한 오해: "자유 소프트웨어 = 공짜"가 아니다.
  • 영어 free 가 '무료'와 '자유'를 동시에 뜻해 생긴 혼동이라, FSF는 "free as in free speech, not as in free beer" 라고 설명한다.
  • 돈을 받고 파는 것도 자유 소프트웨어에 어긋나지 않는다. 다만 산 사람에게 위 네 자유를 보장해야 한다.

FSF와 OSI: 같은 코드, 다른 강조점

구분자유 소프트웨어 (FSF)오픈소스 (OSI)
설립1985년, 리처드 스톨먼1998년
핵심 가치사용자의 자유 (윤리·철학)개발 방식의 우수성 (실용)
표현Free SoftwareOpen Source
대표 라이선스GPL다양 (BSD, MIT, Apache 등 포함)
  • 두 진영이 인정하는 라이선스 목록은 거의 겹친다. 강조점이 다를 뿐이다.
  • 둘을 아울러 FOSS 또는 FLOSS(Free/Libre and Open Source Software)라고 부른다.

오픈소스의 정의(OSD)

  • 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 코드를 가져다 쓴 결과물을 배포할 때, 그 결과물도 GPL로 소스를 공개해야 한다.
  • 이 성질을 전염성(viral) 이라 부른다. 저작권(copyright)을 뒤집었다는 뜻에서 카피레프트(copyleft) 다.
  • 주의: 배포할 때만 의무가 생긴다. 회사 내부에서만 쓰고 배포하지 않으면 공개 의무가 없다.
라이선스특징
GPL v2리눅스 커널이 쓰는 라이선스
GPL v3특허 조항과 하드웨어 잠금(티보이제이션) 방지 조항 추가
LGPL라이브러리를 링크만 하면 자기 코드는 공개하지 않아도 됨
AGPL네트워크로 서비스만 제공해도 소스 공개 의무 발생

퍼미시브 — BSD·MIT·Apache

  • 거의 아무 조건이 없다. 저작권 표시만 남기면 상용 제품에 넣고 소스를 닫아도 된다.
라이선스특징
BSD저작권 고지만 유지하면 됨. 매우 단순
MITBSD와 사실상 동일. 가장 짧고 널리 쓰임
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 프로그램(또는 그걸 고친 것)을 남에게 넘길 때 지켜야 할 일은 네 가지로 정리된다.

  1. 소스 코드를 함께 주거나, 요청하면 주겠다는 약속을 문서로 붙인다.
  2. GPL 전문(라이선스 사본) 을 함께 준다.
  3. 원래 있던 저작권 표시를 지우지 않는다.
  4. 받는 사람에게 추가 제한을 걸지 않는다 — "재배포 금지" 같은 조건을 덧붙일 수 없다.
버전발표기억할 점
GPL v11989최초 버전
GPL v21991리눅스 커널이 채택. 가장 오래 널리 쓰였다
GPL v32007특허 조항, 티보이제이션 방지 추가

🔍 더 깊이: 티보이제이션(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) : 무료로 쓸 수 있지만 소스가 공개되지 않고 수정·재배포 권리도 없는 소프트웨어.
  • 퍼블릭 도메인 : 저작권이 포기됐거나 소멸돼 아무 조건 없이 쓸 수 있는 상태.

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

다음 중 리눅스 커널이 채택하고 있는 라이선스로 알맞은 것은?

문제 2

다음 중 자유 소프트웨어에 대한 설명으로 알맞은 것은?

문제 3

다음 중 GPL 라이선스의 특징으로 가장 알맞은 것은?

문제 4

다음 중 라이브러리를 링크해서 사용하는 경우 자신의 소스 코드를 공개하지 않아도 되도록 완화한 라이선스로 알맞은 것은?

문제 5

다음 중 퍼미시브(permissive) 계열 라이선스로 묶인 것으로 알맞은 것은?

이전리눅스의 탄생: 유닉스에서 리누스까지Week 1 · Day 2다음 배포판: 커널과 도구를 하나로 묶어 파는 단위Week 1 · Day 4

참고 공식 자료

  • 리눅스마스터 2급 공식 출제 기준(새 탭에서 열림)

이 페이지

  • 자유 소프트웨어의 네 가지 자유
  • FSF와 OSI: 같은 코드, 다른 강조점
  • 오픈소스의 정의(OSD)
  • 이름이 비슷한 소프트웨어 분류
  • 라이선스의 두 갈래
  • 카피레프트 — GPL 계열
  • 퍼미시브 — BSD·MIT·Apache
  • 라이선스 한눈에 비교
  • GPL이 실제로 요구하는 것
  • 상황별 판별
  • 헷갈리는 짝 정리
  • 용어
  • 연습 문제