최근 수정 시각 : 2023-10-02 08:59:48

자유 소프트웨어

소프트웨어 관련 정보
{{{#!wiki style="margin: 0px -10px -5px"
{{{#!folding [ 펼치기ㆍ접기 ]
{{{#!wiki style="margin:-5px -2px -12px"
<colbgcolor=#64C3FA,#548FB2> 소프트웨어
<colcolor=#000,#fff> 기능에 따른 구분 시스템 소프트웨어(플랫폼)
응용 소프트웨어
유틸리티
펌웨어
권한에 따른 구분 사유 소프트웨어 프리웨어, 셰어웨어, 애드웨어
오픈 소스, 자유 소프트웨어
직업 프로그래머(개발자), 분석가, QA, DB Admin, 디자이너
목록 소프트웨어/목록
}}}}}}}}}||


Free Software

1. 개요2. 역사3. 라이선스가 다 같은 건 아니다4. 현황 및 오해5. 대표적인 자유 소프트웨어의 목록6. 관련 문서

1. 개요

이상하게 여길 수 있습니다. 사람들은 왜 자신의 시간을 들여 소프트웨어를 만들고 신중하게 패키지로 만들고 나서 거저 주려고 할까요?
- 데비안 홈페이지의 소개글에서

자유 소프트웨어란 사용하는것도 자유, 소스코드를 수정하여 쓰는 것도 자유, 재배포도 자유, 유료 판매/재판매도 자유인 소프트웨어를 말한다. GPL 자유소프트웨어의 경우 소스 코드를 요청하면 공개할 의무까지도 포함한다. 소프트웨어의 수정 및 재배포를 위해서는 소스 코드가 있어야 하기 때문에 오픈 소스처럼 소스를 공개하지만, 오픈 소스이면서 자유 소프트웨어가 아닌 경우도 있기 때문에 둘이 완전히 동일하지는 않다. 또한 영어의 'free'가 '무료'라는 의미도 있고, 자유라는 의미도 있기 때문에 무료 소프트웨어를 의미하는 프리웨어와 자주 혼동되지만 둘은 전혀 다른 개념이다. 프리웨어와 자유 소프트웨어의 차이점 참조.

2. 역사

1950년대에서 1970년대 초반까지는 대부분의 소프트웨어가 자유롭게 공유되었다. 하지만 1980년대에는 거의 모든 소프트웨어가 저작권에 의해 공유가 제한되었다. 리처드 스톨먼은 이런 변화에 반대하며 자유 소프트웨어 재단을 설립하고 GNU프로젝트를 진행한다. 모든 컴퓨터 사용자에게는 운영체제가 필요하기 때문에 그는 먼저 자유 운영체제를 만들기 시작했고 다소 불완전했던 GNU 시스템과 리누스 토르발스가 개발한 리눅스 커널을 결합하여 완전한 자유 운영체제를 만들었다. 이렇게 만들어진 GNU/Linux는 자유 소프트웨어의 기반 생태계가 되었다.이에 따라 많은 자유 소프트웨어가 생겨났다.

3. 라이선스가 다 같은 건 아니다

다만 자유 소프트웨어에도 저작권이 존재하며, 목적에 따라 내용이 조금씩 다른 이용 허가서(라이선스)를 명시하여 배포한다. 이러한 라이선스에는 GPL이 대표적. BSD 라이선스도 널리 채택된 자유 소프트웨어 라이선스이다. LGPL이나 아파치 라이선스, MIT 라이선스 등도 역시 자유 소프트웨어이다.

이들은 크리에이티브 커먼즈(CC) BY-SA 또는 CC BY 라이선스와 호환되는 경우가 대부분인데[1], 이 부분에 대해서는 약간의 차이가 있다.

자유 소프트웨어의 라이선스중 하나인 GPL이 있다. 이것의 가장 큰 특성은 'derivative work' 조항으로 GPL로 배포되는 프로그램을 수정 재배포할 때의 라이선스도 GPL이 되고, GPL조항에 의해 소스코드를 요청시 제공해야 한다. 이를 지키지 않을 때 소송의 대상이 될 수 있고, 최악이면 유통이 금지된다.[2] 이러한 GPL은 대개 내용(소스코드)에 대한 배타적인 권리 주장도 금지되어 있다.

이와는 대조적으로 BSD 라이선스MIT 라이선스 등은 소스를 수정할 수는 있으나 재배포할 의무는 없다.

4. 현황 및 오해

자주 쓰이는 자유 소프트웨어는 버그 수정이나 기능 추가 주기가 굉장히 짧다. 물론 버려진 프로젝트들은 몇 년이 지나도록 업데이트가 되지 않아서, 쓰다가 열받은 사람들이 소스 코드를 갖다가 새 프로젝트를 시작하는 경우도 있다.[3] 자유 소프트웨어 프로젝트의 성지는 소스포지[4]였지만 GitHub의 등장으로 자리를 내주었다.

예를 들어, Red Hat Enterprise Linux나 SuSE, Inspire 같은 경우는 상용 리눅스 배포판이지만 리눅스가 GPL을 적용하는 한 독점이 허용되지 않기 때문에 RHEL은 그 기술지원 서비스 계약을 수행하며 Fedora Core를 내고 있고, SuSE는 openSUSE를 내고 있으며, Inspire는 Freespire를 내놓고 있다. 같은 이유로 우분투도 프로그램과 소스코드 자체는 무료로 배포하는 대신, 기업 유저들을 위한 유료 지원 서비스와 프로그램 이외의 각종 상품 판매를 통해 수익을 얻고 있다.

자유 소프트웨어 운동의 정 반대편에 서 있는 대표적인 인물로 빌 게이츠가 있다. 물론 게이츠는 '불법복제를 하지 맙시다'를 주로 주창했지만, 마이크로소프트에서 하도 부족한 기술력으로도 자유 소프트웨어가 있는 시장으로 들어가서 브랜드값으로 시장을 자주 먹어버렸다. 자유 소프트웨어인지 확인하려면 일반적으로는 두 가지만 보면 된다. 소스 코드를 공개하는지, 소스 코드의 수정 재배포가 되는 지 확인하면 된다. 한 예로, 윈도우의 소스 코드는 부분적으로 공개되어 있으나[5] 수정 재배포를 허락하지 않으므로 자유 소프트웨어는 아니다.

간간히 기업에서 자사의 소프트웨어를 (다른 GPL을 끌어와서 만드는 게 아니라, 처음부터 독자 개발 후 제한적 오픈소스를 선언) 오픈소스로 개방하는 경우에는 소스 코드를 공개하고, 수정 재배포가 되더라도 자유 소프트웨어일 수도 있고 아닐 수도 있다. 정확히 말하면, 제한적 자유 소프트웨어 라고 불리는 것들으로, 일부 독점 부분에 대해서는 소스코드를 공개하지 않거나, 난독화를 해 놓거나, 라이선스 상에 해당 독점 부분에 대한 수정 재배포를 금지하는 조항을 추가 삽입해서 배포하는 경우가 있다.

게임 엔진 같은 경우는 최적화 등을 위해 라이센스 구매자에게 소스코드를 공개하는 경우도 있지만 소스코드를 자유롭게 배포하면 안되며 해당 코드를 사용하여 게임을 만들 경우 요금제에 따른 라이센스 비용을 납부해야 한다.

대부분의 이러한 제한적 자유 소프트웨어 들은 근본적으로는 자유 소프트웨어에 해당하되, 해당 개발사나 개발팀의 이익과 직결된 광고, 후원 링크, 개발사 및 프로그램 정보 표시창, 부분유료화가 적용된 부분, 독점 특허기술이 적용된 부분을 소스코드 비공개 혹은 난독화 혹은 수정 재배포를 금지하는 경우가 대부분이다. 해당 배타적인 부분을 제외한 나머지 부분에 대한 소스코드는 오픈 소스+자유 수정 재배포가 적용되는 경우이므로 일단은 자유 소프트웨어의 일종이라고 봐 줄 수는 있다.

이렇게 만드는 이유는, 안타깝게도, 개발자나 자유로운 이용을 지지해서라기보다는(그런 경우도 있지만) 부족한 기능을 직접 추가하는 대신에 Add-On이나 파생 프로그램을 유저가 직접 만들도록 유도하면서 디버깅, 버그 수정, 업데이트 및 번역 비용을 절감하고, 광고 수익을 극대화하기 위한 이유인 경우가 많다.

5. 대표적인 자유 소프트웨어의 목록

어플 사용은 무료이나 앱의 소스코드가 GPL로 공개된 경우 그 소스코드를 사용하여 다른 어플을 만들시 파생워크(derivative work)에 해당되기 때문에 소스코드를 공개하여야한다. LGPL은 소스코드 사용에 비교적 관대한 편이다.
  • 7zip - LGPL - 압축 프로그램
  • Emacs - GPLv3. 리처드 스톨만이 자유 소프트웨어 운동 초기에 자신의 기본적 의식주 비용을 마련하기 위해 카피당 150 달러에 팔았던 소프트웨어이기도 하다. 자유 소프트웨어라고 해서 반드시 무료여야 할 필요가 없다는 걸 증명하는 예시로 자주 쓰인다.
  • FileZilla - GPL
  • FFmpeg - GPL/LGPL
  • GCC - GNU C언어 컴파일러. GNU와 마찬가지로 자유 소프트웨어 생태계를 이루기 위해 반드시 필요한 것으로, 자유 소프트웨어 운동 초기부터 시작된 프로젝트이다.
  • GIMP - GPL - 고급 사용자용 그래픽 에디팅 소프트웨어
  • GNU - 리처드 스톨만이 시작하고, 자유 소프트웨어 재단이 관리하는 운영체제. 이를 리누스 토르발스가 개발한 리눅스 커널 위에 올림으로써, 드디어 자유 소프트웨어들이 자라날 수 있는 자유 소프트웨어 생태계가 완성되었다.
  • MAME - GPLv2
  • OpenTTD - GPLv2
  • ReactOS - 자유 소프트웨어이나, 프로젝트의 규모나 중요도로 볼 때 대표로 보기엔 적합하진 않다. 게다가 리처드 스톨만은 대부분 비자유 사적 소프트웨어인 윈도우즈 프로그램들을 돌리기 위한 목적으로 만들어진 것으로, 도덕적 결함(Ethical flaw)가 있다고 깠다.
  • vim - GPL + Charityware(우간다 기아 구제 프로그램 참여 조건)[6]
  • VirtualBox - GPL
  • 리눅스 - GPLv2
  • 리브레 오피스 - MPL(Mozilla Public License)
  • 삼바 - GPLv3
  • 송버드
  • 모질라 썬더버드
  • 오픈오피스 - Apache License - 오피스 프로그램
  • 오픈솔라리스
  • 오픈스텝
  • 파이어폭스 - MPL - 웹 브라우저
  • 하이쿠 - 하이쿠는 사용자 친화적인 오픈 소스 운영 체제이다. 여느 오픈과 달리 Linux 또는 FreeBSD와 같은 소스 운영 체제에서 Haiku는 개인 컴퓨팅에 중점을 둔다.

macOS 자체는 자유 소프트웨어가 아니지만, 자유 소프트웨어 개발품들을 많이 장착했다. 터미널 켜면 돌아가는 것들은 다 자유 소프트웨어고. 커널(Darwin), 인쇄모듈(CUPS), 나아가 잡스가 좋다고 칭찬하는 웹 브라우저인 Safari도 자유 소프트웨어인 WebKit 기반이다(그런데, 웹킷엔진은 Konqueror에 쓰이던 KHTML 엔진을 애플에서 가져다가 사파리에 쓰려고 오픈소스 프로젝트로 진행하여 만든 엔진이라서 자기가 만든거 자기가 쓰는거로 볼 수 있다. Chrome의 엔진인 Blink도 원래는 WebKit에서 시작되었다.). 다만 CUPS(Common Unix Printing System)는 원래 있던 자유 소프트웨어를 2002년에 Mac OS X 10.2에 채용, 그 뒤에 원 개발자를 채용하여 자신들이 개발을 진행한 것이지, Apple Inc.에서 *nix 시스템을 위해 인쇄 모듈을 만들 생각이 있었다거나 그 프로젝트를 시작한 것이 아니다. 사실 맥을 오픈 소스 진영에서 좋지 않은 시선으로 바라 보는 이유는 단순하게, 오픈 소스를 뜯어가서가 아닌 소스를 뜯어가서 라이선스 아래에 공개하는 건 좋은데, 원 소스에 대해서 성능과 같은 부분에 대해서 전혀 피드백을 하지 않고, 소스 자체를 원본 소스에 다시 적용하기 상당히 어렵게 바꿔놓기 때문이다.

6. 관련 문서




[1] 권장되지 않는다. CC 라이선스는 소프트웨어를 고려하여 설계되지 않았다.[2] 대표적으로 Linksys의 WRT54G와 iptime 공유기 전반이 GPL 코드를 사용하다가 걸린 바 있으며, leaf사에서는 게임에 사용한 동영상의 XviD 코덱 때문에 공개하였다. 또한 국내에서 사용하는 이름있는 동영상 재생기도 상당수에서 쉬쉬하지만 라이선스를 위반한다. 여기서 확인할 수 있으며, 공학윤리 과목에서 가끔씩 문제로 나오기도 한다.[3] 이렇게 기존 프로젝트를 가지고 새로운 프로젝트를 시작하는 것을 포크라고 한다. 꼭 기존 프로젝트가 죽은 경우가 아니더라도, 기존 프로젝트와는 다른 지향점을 가지고 시작하는 경우 등도 있다. 예를 들면 TrueCrypt의 소스를 들고 새로 만든 VeraCrypt가 있다.[4] 소스포지가 호스팅하는 유명 프로젝트 파일 다운로드에 애드웨어 비슷한 걸 심어놓는 짓을 저질러서 급격히 버려졌다.[5] CE 3.0은 완전 공개, 나머지는 기업 파트너들에게만 공개되어 있다.[6] 우간다 기아 구제 프로그램은 권장사항일 뿐, 의무가 아니다.