F/OSS
지각생 연습장
목차 |
F/OSS란
- Free/Open Source Software : 자유소프트웨어와 오픈소스소프트웨어를 아울러 이르는 말
- 오픈 소스 커뮤니티에서는 창작자와 사용자가 엄격히 구분되지 않는다.
- 일정 규칙을 준수하는한 사용, 복제, 배포, 수정의 자유가 보장된다.
소스 코드
- 소프트웨어(프로그램)는 컴파일 형태와 스크립트 형태가 있다.
- 스크립트 형태는 사람이 읽고 바로 고칠 수 있는 코드를 그때 그때 컴퓨터가 해석해서 명령을 수행한다.
- 컴파일 형태는 사람이 읽고 바로 고칠 수 있는 코드(소스 코드)를, 기계가 빠르고 쉽게 읽고 수행할 수 있는 형태로 미리 변환(컴파일 compile) 해 둔 후, 그 결과를 실행한다. 그 결과물은 사람은 읽고 이해할 수 없는 형태. 대부분의 응용프로그램이 이에 해당한다. exe 로 끝나는 파일등이 그것이다.
- 이 경우, 프로그램이 컴파일된 결과물로만 배포된다면, 그걸 받은 사람은 비록 실행(사용)할 수는 있지만 그 내부 원리를 알아보거나 프로그램을 변경할 수는 없게 된다.
- 소스 코드(변환 전 코드)가 있어야 그 내부 작동 원리를 이해할 수 있고, 원하는데로 변경할 수 있다. 그 다음 또다시 컴파일 과정을 거치면 사람들이 사용(실행)할 수 있다.
- 소프트웨어를 공유하고 자유롭게 활용하기 위해서는 "소스 코드"의 공개 여부, 변경 가능성 보장 여부가 중요하다.
공유 라이센스
- 소프트웨어를 완전히 풀어놓으면(퍼블릭 도메인, public domain) 누군가가 그것을 가져다가 독점적으로 사용하고 다른 사람을 제약할 가능성이 있다. 기존 제도를 악용해서.
- 적극적으로 소프트웨어/지식을 공유하고 순환하기 위해 보장장치가 필요 : GPL 등 F/OSS 보호와 활성화를 위한 라이센스를 채택하게 된다.
- 어떤 공유라이센스를 만들고, 채택하고 유지할지가 중요한 문제이다.
- 필요에 따라 자신에게 알맞는 라이센스를 만들 수 있고, 다른 사람들이 많이 쓰는 F/OSS 라이센스를 적용할 수도 있다.
많이 쓰는 F/OSS 라이센스
- GPL (GNU General Public License) : FSF 가 만든 라이센스. 현재 GPL version 3 까지 나와있다. 대표적인 자유소프트웨어인 리눅스 커널은 GPL version 2 를 채택하고 있다.
- LGPL (GNU Lesser General Public License)
- BSD
- MIT
- MPL
- Artistic
- Apache
자유소프트웨어
자유소프트웨어의 요건
다음 네가지 자유가 보장되어야 한다.
- "실행"할 수 있는 자유
- 내부를 들여다보고, 고칠 수 있는 자유
- 다른 사람에게 나눠줄 수 있는 자유(복제 포함)
- 직접 고친 것을, 공공의 이익을 위해 나눠줄 수 있는 자유
오픈소스 소프트웨어
오픈소스소프트웨어의 요건(정의)
- Free Redistribution
- Source Code
- Derived Works
- Integrity of The Author's Source Code
- No Discrimination Against Persons or Groups
- No Discrimination Against Fields of Endeavor
- Distribution of License
- License Must Not Be Specific to a Product
- License Must Not Restrict Other Software
- License Must Be Technology - Neutral
참고
- FSF(Free Software Foundation) : 자유 소프트웨어 재단. 자유소프트웨어만으로 구성된 시스템을 만드는 GNU(Gnu is Not Unix, "그누") 프로젝트를 수행한다.
- 오픈 소스를 도울 수 있는 10가지 방법