1 of 20

Introduction to �Open Source Software

Kwanghoon Choi

Chonnam National University

1

2 of 20

The State of Open Source Software (OSS)

  • ‘Octoverse’ at GitHub
    • https://octoverse.github.com/

2

(*) GitHub : https://ko.wikipedia.org/wiki/깃허브

People

Projects

Platform

Location

Repositories

App Ecosystem

Time

Programming Languages

Marketplace

Learning

Communication

Security

3 of 20

Repositories / Octoverse / 2018

  • Top open source projects

3

4 of 20

Repositories / Octoverse / 2018

  • Fastest growing open source projects

4

5 of 20

An Open Source Project

  • Microsoft vscode

5

src

MIT license

Community

6 of 20

An Open Source Project(cont.)

6

vscode / src / main.js

MIT License

Copyright

7 of 20

OSS in Top SW Companies

7

Facebook

Google

Twitter

Uber

AWS (Amazon Web Service)

Microsoft

Kakao Tech

Naver

(참고) 개발자 기술 블로그 모음 : https://github.com/innovationacademy-kr/software-resources

8 of 20

What is Open Source Software?

  • Software whose copyright holder gives the right to publish, use, copy, modify, and distribute the source code to everyone.

(소프트웨어 저작권 소유자가 모든 사람에게 소스 코드를 게시, 사용, 복사, 수정 및 배포할 권리를 부여한 소프트웨어)

  • OSS License
    • The scope of use, reproduction, modification, and distribution rights of the open source software

(OSS라이선스 : 오픈소스 소프트웨어의 사용, 복제, 수정, 배포 권한의 범위를 지정)

8

9 of 20

What is Open Source Software? (cont.)

  • Commercialization View (상용화 관점)

9

Commercial SW (E.g. Windows)

Open Source SW

  • Individual License (EULA)

(개별 이용허락)

  • Royalty (로열티 지급)
  • Binary only

(실행 바이너리만 제공)

  • No reproduction, distribution, and modification

(복제, 배포, 수정 불가)

  • Limited terms and purposes

(사용 기간과 목적 제한)

  • Open Source Lincense

(일괄 사전 이용허락)

  • No Royalty (로열티 없음)
  • Source code

(소스 코드 제공)

  • Reproduction, distribution, and modification are permitted

(복제, 배포, 수정 허용)

  • No limitation on terms and purposes (기간/목적 제한 없음)

(*) EULA: End-User License Agreement

(**) 지적재산권 (저작권, 특허권 등)

Protected by Intellectual Property Rights(지적재산권)

참고) 법무법인 광장, 공개SW특허, 라이선스 분쟁 사례와 법적 대응방안, 2018년11월30일.

10 of 20

What is Open Source Software? (cont.)

  • Philosophical View (OSS에 대한 철학적 관점)
    • Free Software vs. Open Source Software

10

Ref. Categories of free and nonfree software – GNU Project – Free Software Foundation

(*) Some proprietary software

can be open source software

But it can’t be free software.

E.g., Qt

http://www.qt.io

(사유 私有 SW)

11 of 20

Free Software vs. Open Source Software

  • Richard Stallman

11

  • Eric S. Raymond

vs.

12 of 20

Free Software vs. Open Source Software (cont.)

  • Free Software (자유 소프트웨어)
    • Richard Stallman – Creator of GNU Project
    • FSF (Free Software Foundation, 1984~)
      • GPL 1.0 (1989), GPL 2.0 (1991), GPL 3.0 (2007)
    • Copyleft (No SW patent, No DRM)

  • Open Source Software
    • Eric S. Raymond – Author of `The Cathedral and the Bazzar (성당과 시장)’
    • OSI (Open Source Initiative, 1998~)
      • Ambiguity of `free’
      • Combination of OSS and Closed Source SW
      • License under law

12

(공짜 소프트웨어)

13 of 20

Open Source Software License

  • OSS License
    • The scope of use, reproduction, modification, and distribution rights of the open source software

(OSS라이선스 : 오픈소스 소프트웨어의 사용, 복제, 수정, 배포 권한의 범위를 지정)

  • Examples
    • GPL (GNU General Public License)
    • LGPL (GNU Lesser General Public License)
    • MIT License
    • BSD License
    • Apache License
    • MPL (Mozilla Public License)

13

14 of 20

Open Source Software License

  • GPL / LGPL / MIT / Apache2.0 Licenses

14

Licenses

Linking with Proprietary SW

Must publish

Modification

Patent

Protection

GPL 2.0

No

Yes

No*

LGPL

Yes

Yes

No

MIT

BSD

Yes

No

No

Apache 2.0

MPL 1.0/1.1

Yes

Yes

Yes

Ref. https://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licenses

https://www.olis.or.kr

(*) GPL 3.0 Patent Protection

15 of 20

Open Source Software License

  • Linking with Proprietary SW (상용 소프트웨어와의 연동)

  • GPL 2.0: No → GPL은 강력한 copyleft라서 GPL 코드와 연결(link)된 소프트웨어는 전체가 GPL을 따라야 함.

  • LGPL: Yes → 라이브러리 수준에서 링크는 허용되며, 수정한 부분만 공개하면 됨.

  • MIT / BSD: Yes → 매우 자유로움

  • Apache 2.0 / MPL: Yes → 둘 다 linking은 허용.

15

16 of 20

Open Source Software License

  • Must Publish Modification(수정 시 공개 의무)

  • GPL 2.0: Yes → 수정본을 배포할 때 반드시 소스코드를 공개.

  • LGPL: Yes → 라이브러리 수정 시 공개 의무가 있음.

  • MIT / BSD: No → 자유롭게 수정 가능하나, 소스코드 공개 의무 없음.

  • Apache 2.0: Yes → 엄밀히 말하면 "소스 공개 의무"라기보다, 수정한 파일에는 고지(Notice)를 남겨야 함. GPL처럼 전체 소스를 공개할 필요는 없음.

  • MPL 1.0/1.1: Yes → 수정한 파일 단위로 공개해야 함 (file-level copyleft).

16

17 of 20

Open Source Software License

  • Patent Protection (특허 보호 조항)

  • GPL 2.0: No → 특허에 대한 명시적 보호 조항 없음.

  • LGPL: No → 특허에 대한 명시적 보호 조항 없음.

  • MIT / BSD: No → 특허에 대한 명시적 보호 조항 없음.

  • Apache 2.0: Yes → 특허 라이선스(사용자에 대한 특허권 허여 조항)가 포함됨.

  • MPL 1.0/1.1: Yes → 특허 조항이 포함됨.

17

18 of 20

Open Source Software License

18

  • [LGE 소프트웨어센터 임효준 수석 발표 자료 ]

19 of 20

[참고]

  • LGE 소프트웨어센터 임효준 수석 발표 자료

  • 만화로 나누는 자유/오픈소스소프트웨어 이야기 - 46편: gpl-violations.org

: https://joone.net/

19

20 of 20

오픈소스 소프트웨어 공통 주제

  • 오픈소스 소프트웨어 현황

- Octoverse

  • 협업
  • 도구 : Git, Github
  • 공동 개발 규칙, 코드 리뷰, 회고

  • 빌드 시스템(+ 패키지 관리 시스템)
  • 개인 환경에 공개된 소스 코드를 빌드(컴파일)&설치하기 어려운 경우가 빈번
  • pip, npm, stack, make, CMake, gradle, ant, maven, …

20