자유 소프트웨어
'''Free Software'''
1. 개요
무형 자산의 공유가 무료일수 있기 때문에 무료일수 있는것이다. 그만큼 소프트웨어 시장의 경쟁이 치열하다는 것을 반증하기도하다. 소프트웨어가 시스템의 한부분 번들 정도일때도 그러하다. 소프트웨어는 무료로 사용하도록 한것을 이용하여 다른 서비스등을 통해 회사가치를 올릴수 있기때문이기도 하다.이상하게 여길 수 있습니다. 사람들은 왜 자신의 시간을 들여 소프트웨어를 만들고 신중하게 패키지로 만들고 나서 거저 주려고 할까요?
- 데비안 홈페이지의 소개글에서
'''사용하는것도 자유, 소스코드를 수정하여 쓰는 것도 자유, 재배포도 자유, 유료 판매/재판매도 자유'''인 소프트웨어는 '''GPL''' 자유 소프트웨어에 속한다. GPL 자유소프트웨어의 경우 소스 코드를 요청하면 공개할 의무까지도 포함한다. 소프트웨어의 수정 및 재배포를 위해서는 소스 코드가 있어야 하기 때문에 자유 소프트웨어는 소스를 공개하지만, 오픈 소스이면서 자유 소프트웨어가 아닌 경우도 있기 때문에 둘이 100% 동일하지는 않다.
2. 상세
영어의 'free'가 '무료'라는 의미도 있고, 자유라는 의미도 있기 때문에 무료 소프트웨어를 의미하는 프리웨어와 자주 혼동되지만 둘은 전혀 다른 개념이고, "자유 소프트웨어"의 핵심은 구속되지 않는다는 관점에서의 자유에 있는 것이지 무료라는 금전적인 측면에 있는 것이 아니다. 우리가 의도하는 이러한 자유의 의미를 쉽게 이해하기 위해서는 "무료 맥주(free beer)"가 아닌 "언론의 자유(free speech)"와 같은 예를 생각해 볼 수 있다.[1]
자유 소프트웨어는 인간의 자유를 표방하며 인간의 자유를 침해하는 소프트웨어를 디지털 수갑 또는 맬웨어라고 주장한다. 사용자가 소프트웨어를 통제해야 하고 소프트웨어가 사용자를 통제해서는 안된다는 개념.
원래는 자유 소프트웨어 재단의 창립자인 리처드 스톨먼이 1981년에 제창한 운동의 일환으로 시작되었다. 다분히 히피적인 배경을 깔고 있기도 하다. 여기에 기름을 끼얹은 것이 1993년에 자유 소프트웨어로 공개된 리눅스. 리눅스의 등장으로 커널부터 사용자 인터페이스(보통 X11에 GNOME이나 KDE를 얹음), 그 위에서 돌아가는 애플리케이션 일부가 공짜인 경우도 있다.
여기까지 보면 다분히 이상향적이고 실현가능성이 희박할 듯하지만, 현재까지 상당한 성공을 거두며 성장한다.
3. 라이선스가 다 같은 건 아니다
다만 자유 소프트웨어에도 저작권이 존재하며, 목적에 따라 내용이 조금씩 다른 이용 허가서(라이선스)를 명시하여 배포한다. 이러한 라이선스에는 GPL이 대표적. BSD 라이선스도 널리 채택된 자유 소프트웨어 라이선스이다. LGPL이나 아파치 라이선스, MIT 라이선스 등도 역시 자유 소프트웨어이다.
이들은 크리에이티브 커먼즈(CC) BY-SA 또는 CC BY 라이선스와 호환되는 경우가 대부분인데[2] , 이 부분에 대해서는 약간의 차이가 있다.
자유 소프트웨어의 라이선스중 하나인 GPL이 있다. 이것의 가장 큰 특성은 'derivative work' 조항으로 GPL로 배포되는 프로그램을 수정 재배포할 때의 라이선스도 GPL이 되고, GPL조항에 의해 소스코드를 요청시 제공해야 한다. 이를 지키지 않을 때 소송의 대상이 될 수 있고, 최악이면 유통이 금지된다.[3] 이러한 GPL은 대개 내용(소스코드)에 대한 배타적인 권리 주장도 금지되어 있다.
이와는 대조적으로 BSD 라이선스나 MIT 라이선스 등은 소스를 수정할 수는 있으나 재배포할 의무는 없다.
4. 현황 및 오해
자주 쓰이는 자유 소프트웨어는 버그 수정이나 기능 추가 주기가 굉장히 짧다. 물론 버려진 프로젝트들은 몇 년이 지나도록 업데이트가 되지 않아서, 쓰다가 열받은 사람들이 소스 코드를 갖다가 새 프로젝트를 시작하는 경우도 있다.[4] 자유 소프트웨어 프로젝트의 성지는 소스포지[5] 였지만 GitHub의 등장으로 자리를 내주었다.
예를 들어, Red Hat Enterprise Linux나 SuSE, Inspire 같은 경우는 상용 리눅스 배포판이지만 리눅스가 GPL을 적용하는 한 독점이 허용되지 않기 때문에 RHEL은 그 기술지원 서비스 계약을 수행하며 Fedora Core를 내고 있고, SuSE는 openSUSE를 내고 있으며, Inspire는 Freespire를 내놓고 있다. 같은 이유로 우분투도 프로그램과 소스코드 자체는 무료로 배포하는 대신, 기업 유저들을 위한 유료 지원 서비스와 프로그램 이외의 각종 상품 판매를 통해 수익을 얻고 있다.
자유 소프트웨어 운동의 정 반대편에 서 있는 대표적인 인물로 빌 게이츠가 있다. 물론 이 분은 불법복제를 하지 맙시다를 주로 주창했지만, 마이크로소프트에서 하도 부족한 기술력으로도 자유 소프트웨어가 있는 시장으로 들어가서 브랜드값으로 시장을 자주 먹어버린지라...
자유 소프트웨어인지 확인하려면 일반적으로는 두 가지만 보면 된다. 소스 코드를 공개하는지, 소스 코드의 수정 재배포가 되는지. 한 예로, 윈도우의 소스 코드는 부분적으로 공개되어 있으나[6] 수정 재배포를 허락하지 않으므로 자유 소프트웨어는 아니다.
간간히 기업에서 자사의 소프트웨어를 (다른 GPL을 끌어와서 만드는 게 아니라, 처음부터 독자 개발 후 제한적 오픈소스를 선언) 오픈소스로 개방하는 경우에는 소스 코드를 공개하고, 수정 재배포가 되더라도 자유 소프트웨어일 수도 있고 아닐 수도 있다. 정확히 말하면, 제한적 자유 소프트웨어 라고 불리는 것들으로, 일부 독점 부분에 대해서는 소스코드를 공개하지 않거나, 난독화를 해 놓거나, 라이선스 상에 해당 독점 부분에 대한 수정 재배포를 금지하는 조항을 추가 삽입해서 배포하는 경우가 있다.
대부분의 이러한 제한적 자유 소프트웨어 들은 근본적으로는 자유 소프트웨어에 해당하되, 해당 개발사나 개발팀의 이익과 직결된 광고, 후원 링크, 개발사 및 프로그램 정보 표시창, 부분유료화가 적용된 부분, 독점 특허기술이 적용된 부분을 소스코드 비공개 혹은 난독화 혹은 수정 재배포를 금지하는 경우가 대부분이다. 해당 배타적인 부분을 제외한 나머지 부분에 대한 소스코드는 오픈 소스+자유 수정 재배포가 적용되는 경우이므로 일단은 자유 소프트웨어의 일종이라고 봐 줄 수는 있다.
이렇게 만드는 이유는, 안타깝게도, 개발자나 자유로운 이용을 지지해서라기보다는(그런 경우도 있지만) 부족한 기능을 직접 추가하는 대신에 Add-On이나 파생 프로그램을 유저가 직접 만들도록 유도하면서 디버깅, 버그 수정, 업데이트 및 번역 비용을 절감하고, 광고 수익을 극대화하기 위한 이유인 경우가 많다.
5. 오픈 소스와의 차이점
자유 소프트웨어 운동을 시작한 리처드 스톨먼은 오픈 소스 운동에 반대하였다.
리처드 스톨먼은 미국 지디넷 스티브 보간 니콜스 컬럼니스트에 보낸 메일에서 "오픈 소스란 용어에서 흔한 오류가 나, 나의 일, 혹은 자유 소프트웨어와 연결되고 있다"며 "1998년 오픈 소스 슬로건은 자유 소프트웨어 운동의 철학을 거부한 사람들에 의해 채택됐다"고 밝혔다.
리처드 스톨먼은 "나는 자유의 사상인 자유 소프트웨어를 감추려는 의도기 때문에 오픈 소스를 거부했다"고 강조했다.
리처드 스톨먼은 "우리 자유소프트웨어 운동가들은 바꿀 수 없고 공유할 수 없는 소프트웨어는 잘못된 것이니 자유 반환을 위해 자유로워지자고 말한다"며 "오픈 소스는 단지 '당신이 당신의 코드를 사용자가 변경하게 한다면, 그들은 버그를 고칠 것'이라고 말한다"고 비교했다. 이어 "그게 잘못된 말은 아니지만 더 깊숙한 지점을 짚는 걸 피하는 연약한 것"이라고 덧붙였다.
오픈소스 20년...일상에 물처럼 스며들다 2018.02.06.
6. 대표적인 자유 소프트웨어의 목록
어플 사용은 무료이나 앱의 소스코드가 '''GPL'''로 공개된 경우 그 소스코드를 사용하여 다른 어플을 만들시 파생워크(derivative work)에 해당되기 때문에 소스코드를 공개하여야한다. '''LGPL'''은 소스코드 사용에 비교적 관대한 편이다.
- 7zip - LGPL - 압축 프로그램
- Emacs - GPLv3. 리처드 스톨만이 자유 소프트웨어 운동 초기에 자신의 기본적 의식주 비용을 마련하기 위해 카피당 150 달러에 팔았던 소프트웨어이기도 하다. 자유 소프트웨어라고 해서 반드시 무료여야 할 필요가 없다는 걸 증명하는 예시로 자주 쓰인다.
- FileZilla - GPL
- FreeBSD - BSD
- GCC - GNU C언어 컴파일러. GNU와 마찬가지로 자유 소프트웨어 생태계를 이루기 위해 반드시 필요한 것으로, 자유 소프트웨어 운동 초기부터 시작된 프로젝트이다.
- GIMP - GPL - 고급 사용자용 그래픽 에디팅 소프트웨어
- GNU - 리처드 스톨만이 시작하고, 자유 소프트웨어 재단이 관리하는 운영체제. 이를 리누스 토르발즈가 개발한 리눅스 커널 위에 올림으로써, 드디어 자유 소프트웨어들이 자라날 수 있는 자유 소프트웨어 생태계가 완성되었다.
- MAME - GPLv2
- OpenTTD - GPLv2
- ReactOS - 자유 소프트웨어이나, 프로젝트의 규모나 중요도로 볼 때 대표로 보기엔 적합하진 않다. 게다가 리처드 스톨만은 대부분 비자유 사적 소프트웨어인 윈도우즈 프로그램들을 돌리기 위한 목적으로 만들어진 것으로, 도덕적 결함(Ethical flaw)가 있다고 깠다.
- vim - GPL + Charityware(우간다 기아 구제 프로그램 참여 조건)[7]
- VirtualBox - GPL
- 리눅스 - GPL
- 리브레 오피스 - LGPL
- 삼바 - GPLv3
- 송버드
- 모질라 썬더버드
- 오픈오피스 - LGPL - 오피스 프로그램
- 오픈솔라리스
- 오픈스텝
- 파이어폭스 - LGPL - 웹 브라우저
- 하이쿠
7. 관련 문서
[1] “Free software” means software that respects users' freedom and community. Roughly, it means that the users have the freedom to run, copy, distribute, study, change and improve the software. Thus, “free software” is a matter of liberty, not price. To understand the concept, you should think of “free” as in “free speech,” not as in “free beer”. http://www.gnu.org/philosophy/free-sw.html[2] 권장되지 않는다. CC 라이선스는 소프트웨어를 고려하여 설계되지 않았다.[3] 대표적으로 Linksys의 WRT54G와 iptime 공유기 전반이 GPL 코드를 사용하다가 걸린 바 있으며, leaf사에서는 게임에 사용한 동영상의 XviD 코덱 때문에 공개하였다. 또한 국내에서 사용하는 이름있는 동영상 재생기도 상당수에서 쉬쉬하지만 라이선스를 위반한다. 여기서 확인할 수 있으며, 공학윤리 과목에서 가끔씩 문제로 나오기도 한다.[4] 이렇게 기존 프로젝트를 가지고 새로운 프로젝트를 시작하는 것을 포크라고 한다. 꼭 기존 프로젝트가 죽은 경우가 아니더라도, 기존 프로젝트와는 다른 지향점을 가지고 시작하는 경우 등도 있다. 예를 들면 TrueCrypt의 소스를 들고 새로 만든 VeraCrypt가 있다. [5] 소스포지가 호스팅하는 유명 프로젝트 파일 다운로드에 애드웨어 비슷한 걸 심어놓는 짓을 저질러서 급격히 버려졌다.[6] CE 3.0은 완전 공개, 나머지는 기업 파트너들에게만 공개되어 있다.[7] 우간다 기아 구제 프로그램은 권장사항일 뿐, 의무가 아니다.[8] 단순히 비판하는데서 그치지 않고, 대립각을 세우는 일이 많다. 2006년경, MS에서 오피스 2007을 발표하면서 새로 내놓은 문서 포맷인 OOXML이 그 대표적인 예로, 이미 오픈소스 진영에서 ODF를 문서 포맷으로 지정하고 국제전기표준회의에서 표준 등재까지 받은 상태에서 독점하려고 포맷을 내놓는다고 대차게 까였다. 물론 MS에서는 발표하면서 문서 구조도 모두 공개했지만 너무 복잡하고 독점적인 부분도 있다고 하면서 이걸 어떻게 써먹냐고 또 까였다. 결국 OOXML도 2008년에 표준이 등재되어 문서포맷은 현재 2가지가 공존한다. 시간이 지나며 오픈오피스 진영에서도 OOXML을 지원하고, MS 오피스도 ODF를 지원하는 형태로 가고 있다.