의견.png

자유 소프트웨어

위키원
jingayoun (토론 | 기여)님의 2021년 1월 20일 (수) 11:41 판
이동: 둘러보기, 검색

자유 소프트웨어(free software)는 복사와 사용, 연구, 수정, 배포 등의 제한이 없는 소프트웨어 혹은 그 통칭이다. 프리 소프트웨어라고도 하며, 간략히 자유 S/W, 프리 S/W라고도 한다.

개요

소프트웨어의 수정 및 수정본의 재배포는 인간이 해독 가능한 프로그램의 소스코드가 있어야만 가능하며, 소스 코드는 GPL 등의 라이선스를 통하거나, 혹은 드물지만 퍼블릭 도메인을 통하여 공개된다. 자유 소프트웨어를 이해하기 위해선 먼저 자유에는 일정한 책임이 따른다는 사실을 알아야 한다. 자유 소프트웨어는 자유롭게 이용할 수 있는 소프트웨어를 말하지만, 해당 소프트웨어의 사용 조건이 무엇인지, 출처는 어디인지 밝히고 사용해야 한다. 개인이 자유롭게 사용한다고 하더라도, 재생산되거나 재배포 될 가능성을 배재할 수 없기 때문이다. 즉, 남이 만든 소프트웨어를 사용하는 대신 최소한의 조건을 이행하겠다는 조건 하에 자유 소프트웨어를 사용할 수 있다. 자유 소프트웨어 개발자들은 웹 브라우저나 오피스 제품군 혹은 멀티미디어 플레이어 등 거의 대부분의 데스크톱 애플리케이션들을 자유 소프트웨어로 만들어냈다. 그러나 많은 영역에서 개인 사용자를 위한 자유 소프트웨어들은 경쟁 독점 소프트웨어들에 비해 미미한 시장 점유율을 지닌다.[1] 자유 소프트웨어가 가진 자유를 크게 4가지로 볼 수 있다. 먼저 프로그램을 어떠한 목적을 위해서도 실행할 수 있는 자유, 이웃을 돕기 위해 프로그램을 복제하고 배포할 수 있는 자유가 있다. 세 번째로, 프로그램의 작동 원리를 연구하고, 이를 자신의 필요에 맞게 변경시킬 수 있는 자유가 있어야하는데, 이러한 자유를 위해서는 소스코드에 대한 접근이 선행되어야 한다. 마지막으로 프로그램을 향상시키고를 공동체 전체의 이익을 위해서 다시 환원시킬 수 있는 자유가 있어야 한다. 이러한 자유를 위한 조건은 앞의 조건과 동일하게, 소스코드에 대한 접근이 선행되어야 한다는 것이다.[2]

특징

자유 소프트웨어는 완전히 무료 혹은 최소한의 금액만을 받고 자유롭게 배포되어야 하며, 자유 소프트웨어를 통한 비즈니스 모델들은 대게 고객 지원이나 커스터마이징 등을 통한 것들이다. 대분분의 자유 소프트웨어들이 온라인에서 무료로 제공되거나, 오프라인에서 적당한 가격으로 배포되는데, 이것이 필수적인 것은 아니다. 간혹 자유 소프트웨어와 무료 소프트웨어를 같은 의미로 보는 경우가 있는데 자유 소프트웨어는 무료 소프트웨어일 수도 있고, 아닐 수도 있다. 1990년대 후반에 자유 소프트웨어 대신 오픈 소스 소프트웨어라는 용어가 많이 사용되기 시작했다. 하지만 자유 소프트웨어 재단은 자유로운 사용을 강조하는 대신 기술적인 면에 치우친 용어라는 점에서 “자유 소프트웨어”라는 용어를 사용할 것을 권장했다.[1] 자유 소프트웨어와 오픈소스 소프트웨어는 같은 소프트웨어를 지칭하기도 하지만, 바라보는 관점에서 차이가 있다. 오픈 소스는 개발 방법론으로, 오픈 소스의 철학은 실용적인 관점에서 소프트웨어를 어떻게 잘 만들 것인가를 고려하는 것이다. 이에 비해 자유 소프트웨어는 사회적 운동으로, 윤리적 명령으로서 사용자에게 주어진 자유를 기본적으로 중요하게 생각한다. 대부분의 오픈 소스 소프트웨어는 자유 소프트웨어이기도 하지만, 일부 오픈 소스 라이선스는 수정된 버전을 만들어 개인적으로 사용할 수 없게 하여, 사용자의 자유를 침해하기도 한다.[3]


역사

1950년대부터 1970년대까지의 컴퓨터 사용자들은 대부분의 소프트웨어를 자유롭게 이용할 수 있었다. 사람들은 종종 소프트웨어를 서로 공유했고, 하드웨어 제조사들은 하드웨어를 편리하게 사용할 수 있게 하는 소프트웨어들이 제작되는 것을 기꺼워했다. 1970년대부터 1980년대에 소프트웨어 산업이 복제권을 법적으로 적용하기 시작하여, 사용자들이 소프트웨어를 연구하거나 수정하지 못하도록 바이너리 형태로만 배포하는 기술적 방법들이 사용되곤 했다. 1983년에, 리처드 스톨만은 컴퓨터 산업의 이러한 변화에 저항해 GNU 프로젝트를 시작했다. 1984년에는 GNU 운영 체제의 개발이 시작되었으며, 1985년 10월 자유 소프트웨어 재단(FSF)이 설립되었다. 그는 카피레프트를 주장하며, 자유 소프트웨어의 정의를 모두가 자유롭게 사용할 수 있도록 디자인된 소프트웨어로 소개하였다. 1991년에는 핀란드에서 리누스 투르발스가 리눅스를 발표하였고, 이것이 GNU 프로젝트에 통합되면서, 자유 소프트웨어 커뮤니티가 활성화되기 시작했다.[1]

GNU 프로젝트

GNU는 “GNU’s not UNIX.”의 약자로, 원래의 문장 안에 자신이 이미 들어있는 재귀 약자이다. 스톨만은 GNU를 그누로 읽을 것을 제안했다. 1983년 9월 27일 유즈넷(usenet) net.uniw-wizard 그룹을 통해 세상에 알려졌다. 스톨만은 “GNU” 선언문을 비롯한 여러 글들을 작성하여, 초기 전산 공동체에 지배적이었던 협동 정신을 되돌려야 한다고 주장했다. GNU 프로젝트는 누구나 자유롭게 “실행, 복사, 수정, 배포”할 수 있고, 누구도 그런 권리를 제한하면 안 된다는 GPL이라는 사용 허가권 아래에서 소프트웨어를 배포한다.1985년 스톨만이 설립한 자유 소프트웨어 재단은 GNU를 개발할 프로그래머들을 고용했지만, 실질적으로 프로그램을 개발한 사람들은 자원봉사자들이었다. 이를 주목한 다른 회사들이 GNU의 소프트웨어 개발이나 판매 및 기술 지원을 도와 성공적으로 개발한 것이 현재는 레드햇의 일부인 시그너스 솔루션(Cygnus Solutions)이다.

1990년대까지 GNU 시스템에서 확장 가능한 프로그램은 문서 편집기(이맥스), 컴파일러(GCC), 표준 유닉스 배포판의 핵심인 라이브러리와 유틸리티가 있었지만, 주요 구성요소인 커널이 포함되지 않았다. 이에 스톨만은 기본적인 커널은 있지만 유닉스를 흉내 내기 위해선 더 많은 기능이 필요하다고 했고, 이것은 유닉스 7번재 판과 호환되는 트릭스(TRIX)라는 원격격 프로시저 호출 커널로 MIT에서 개발되어 자유롭게 배포되었다. 하지만 트릭스를 기반으로 새 커널을 만드는 것은 어렵다는 결론이 내려졌고, 1988년 카네기멜론 대학에서 개발되던 마하 통신-전송 커널을 트릭스의 대체품으로 고려했지만, 이를 처음 개발한 개발자들이 AT&T 소유의 코드를 지우면서 지연되었다. 이 커널은 처음에 앨릭스라고 불렸지만, 이후 개발자인 마이클 부시넬(Michael Busgnell)이 HURD라는 이름을 선호하여, 앨릭스란 이름은 하부 구조로 옮겨지고, 결국 완전히 떨어졌다. HURD의 개발은 기술적이고 개인적인 충돌들로 인하여 지지부진해졌다. 1991년 리누스 토르발스가 유닉스 호환이 가능한 리눅스 커널을 작성하여 GPL 라이선스 아래에 배포했다. 이후 여러 프로그래머들이 인터넷을 통해 리눅스를 발전시켰고, 19092년 리눅스가 GNU 프로그램과 통합되었고, 이로써 완전한 공개 운영 체제가 탄생했다. GNU 시스템 가운데 가장 흔한 것이, 바로 이 “GNU/리눅스”또는 “리눅스 배포판”이라고 불리는 프로그램이다.[4]

사용권

BSD 사용 허가서

BSD(Barkeley Software Distribution) 계열 소프트웨어를 포함한 많은 프로그램에서 사용되는 자유 소프트웨어 저작권의 한 가지다. 해당 라이선스는 소프트웨어 라이선스라고 할 수 없을 만큼, 소프트웨어의 사용 및 배포에 최소한의 제한만을 부과한다. 해당 소프트웨어는 아무나 개작할 수 있고, 수정한 것을 제한 없이 배포할 수 있지만, 수정본의 재배포는 의무적인 사항은 아니기 때문에 BSD 라이선스를 갖는 프로그램은 공개하지 않아도 되는 상용 소프트웨어에서도 사용할 수 있다. 이것은 GNU 일반 공중 허가서와의 가장 큰 차이점인데, GPL은 파생된 소프트웨어도 GPL과 같은 라이선스를 갖도록 의무화하여, 파생물의 경우에도 소스코드가 반드시 배포되도록 한다. BSD 라이선스는 BSD 자체가 공공기관에서 만들어낸 것이기 때문에 공공의 몫으로 돌려주자는 의미가 강해, 라이선스 자체에는 아무런 제한 없이 누구나 자신의 용도로 한 것이다. 라이선스 자체에는 소프트웨어에 국한되지 않고 하드웨어 등에서도 아무런 제약 없이 누구나 자신의 용도로 사용할 수 있는 대신, 사용자의 사용으로 인해 발생하는 모든 발생 가능한 경우의 리스크와 손해에 대해 사전인식 가능 여부와 상관없이 사용자 본인에게 책임을 지우고 있다.[5] 제한이 거의 없는 라이선스지만, 소프트웨어는 하나의 저작물이기 때문에, 사용할 때 반드시 저작권자를 표기해주어야 한다. 별도의 서면 허락 없이는 BSD 소프트웨어를 개발한 단체나 개인의 이름을 해당 소프트웨어나, 그로 인한 파생물의 광고에 사용할 수 없고, 광고를 하게 되더라도, 광고에 저작권자를 반드시 명시해야한다. 또한 바이너리 형태로 재배포할 경우, 배포와 함께 제공되는 문서 및 기타 자료에 저작권을 고지하고, 조건 목록과 면책 조항을 복제해야 한다. BSD 사용 허가서를 갖는 프로그램에는 OpenCV 등이 있다.

GNU 일반 공중 허가서

일반 공중 허가서(General Public License)는 약자를 따 GPL이라고도 한다. 자유 소프트웨어 재단에서 만든 자유 소프트웨어 라이센스로 1989년 1차 버전, 1991년 2차버전, 2007년 3차 버전까지 발표되었다. 프로그램의 일부에 일반 공중 허가서를 가진 코드가 들어가게 되면, 그 프로그램 또한 일반 공중 허가서를 갖게 된다. 독특한 것은 일반 공중 허가서를 가진 프로그램을 유료로 판매하는 것은 가능하지만, 반드시 전체 소스코드는 무료로 공개해야 한다. 단순히 내부적인(개인, 기관, 단체 등) 목적으로만 사용할 때에는 소스코드를 공개할 필요가 없지만, 어떤 형태로든 외부에 공표하거나 배포할 때에는 전체 소스코드를 공개해야 한다. 일반적으로 소프트웨어 라이선스들은 소프트웨어에 대한 공유와 수정의 자유를 제한하려는 목적을 가지고 만들어졌지만, 일반 공중 허가서는 공유와 수정의 자유를 보장하기 위한 규정이다.[6] 최신 버전인 버전 3은 대부분의 소프트웨어 패키지에 권장된다. 이전 버전인 일반 공중 허가서 버전 2와 단독으로 허가되지 않지만, 버전 2를 바탕으로 출시된 대부분의 소프트웨어에서는 버전 3도 사용할 수 있다. 이 경우 버전 3의 코드를 사용하여 원하는 조합을 만들 수 있다. 일반 공중 허가서를 갖는 프로그램에는 파이어 폭스 2.0버전, 리눅스 커널, 깃, 마리아 데이터 베이스 등이 있다.

GNU 약소 일반 공중 허가서

약소 일반 공중 허가서(Lesser General Public License)는 이름에서부터 알 수 있듯이 완화된 조건의 일반 공중 허가서로, 자유 소프트웨어 재단의 자유 소프트웨어 라이선스다. 약자를 따서 LGPL이라 부르기도 하는데 이전에는 첫 L이 Lessor가 아닌 Library로 쓰였다. 일반 공중 허가서와 가장 큰 차이점은 약소 일반 공중 허가서를 가진 코드를 단순히 정적 또는 동적 라이브러리로 사용한 프로그램을 판매하거나 배포할 경우에는 프로그램의 소스코드를 공개하지 않아도 된다는 것이다. 이 경우 약소 일반 공중 허가서를 가진 코드를 사용했다는 것만을 명시해주면 된다. 단순히 이용하는 것이 아닌, 약소 일반 공중 허가서를 가진 코드를 수정하거나, 이로부터 파생된 라이브러리를 개발하여 판매 또는 배포할 경우에는 전체 코드를 공개해야 한다.[6] 약소 일반 공중 허가서를 가진 코드가 단순히 사용되는 것이 아니라, 코드에 기반으로 하여 만들어졌다면, 약소 일반 공중 허가서에 따라 재배포 되어야 한다는 것이다. 이때는 실행물을 개인적인 용도로 개작하거나, 리버스 엔지니어링 할 수 있다는 사실과, 약소 일반 공중 허가서의 라이브러리가 사용되고 있다는 사실을 고지하여야 한다.[7] 카피레프트에 대한 규제를 프로그램 자체에 두고, 이 프로그램을 사용하는 다른 프로그램에 대해서는 카피레프트를 두지 않지만, 어느 정도의 규제는 있다. 소프트웨어 라이브러리에 주로 쓰이며, 간혹 독립적인 프로그램에도 쓰인다. 대표적인 예로, 모질라와 오픈오피스가 있다. 일반 공중 허가서와 약소 일반 공중 허가서 모두 상업적으로 이용할 수 있고, 배포 및 수정이 가능하며, 특허를 신청하거나 사적으로 이용할 수 있다. 약소 일반 공중 허가서를 갖는 프로그램으로는 파이어폭스 2.1버전 등이 있다.

종류

리눅스, BSD, 모질라 파이어폭스 등이 있다.

각주

  1. 1.0 1.1 1.2 자유 소프트웨어〉, 《위키백과》
  2. 2.자유 소프트웨어〉, 《깃허브》, 2016-03-20
  3. joone, 〈만화로 나누는 오픈소스 이야기〉, 《블로거》, 2016-03-20
  4. GNU 프로젝트〉, 《위키백과》
  5. BSD 허가서〉, 《위키백과》
  6. 6.0 6.1 다크 프로그래머, 〈공개 SW 라이센스 GPL, LGPL, BSD〉, 《티스토리》, 2013-08-05
  7. GNU 약소 일반 공중 사용 허가서〉, 《나무위키》

참고자료

같이 보기


  의견.png 이 자유 소프트웨어 문서는 소프트웨어에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.