자유 소프트웨어
1. 개요
1. 개요
자유 소프트웨어는 사용자가 소프트웨어를 실행, 복사, 배포, 연구, 변경, 개선할 자유를 보장하는 소프트웨어를 의미한다. 이 개념은 단순히 무료로 이용할 수 있는 것을 넘어, 사용자의 자유와 공동체적 협력을 중시하는 철학적 운동의 산물이다. 이러한 자유는 소스 코드에 대한 접근을 전제로 하며, 자유 소프트웨어 재단에 의해 정의된 네 가지 핵심 자유로 구체화된다.
자유 소프트웨어는 운영 체제, 응용 프로그램, 개발 도구 등 다양한 분야에서 사용된다. 대표적인 예로 리눅스 커널과 GNU 프로젝트의 도구들이 결합된 GNU/리눅스 운영 체제를 들 수 있다. 이 운동은 1980년대에 등장하여 소프트웨어 독점에 대한 대안으로 발전했으며, 이후 오픈 소스 운동과도 깊은 연관성을 가지게 되었다.
자유 소프트웨어의 실현은 라이선스를 통해 이루어진다. GNU 일반 공중 사용 허가서(GPL)와 같은 라이선스는 사용자에게 위의 자유들을 법적으로 보장하면서, 수정된 소프트웨어 역시 동일한 자유를 유지하도록 요구하는 카피레프트 원칙을 적용한다. 이는 디지털 권리와 공유 문화의 확산에 기여하는 중요한 기반이 된다.
2. 역사
2. 역사
자유 소프트웨어 운동의 역사는 1980년대 초반, 소프트웨어 산업이 성장하면서 기존의 공유 문화가 사라지고 소스 코드가 비밀이 되는 경향에 대한 반발에서 시작된다. 당시 매사추세츠 공과대학교 인공지능 연구소의 해커 문화에서 활동하던 리처드 스톨먼은 프린터 드라이버 소스 코드를 요청했다가 거부당하는 등 소프트웨어의 자유가 침해되는 사례를 목격했다. 이 경험은 소프트웨어 사용자들의 협력과 자유를 보존해야 한다는 신념으로 이어졌다.
1983년 9월, 스톨먼은 GNU 프로젝트를 발표하며 완전히 자유로운 유닉스 호환 운영 체제를 만들겠다는 비전을 제시했다. 이 프로젝트의 목표는 사용자에게 소프트웨어를 실행, 연구, 수정, 재배포할 수 있는 자유를 보장하는 것이었다. 1985년에는 이 철학을 지지하고 법적, 재정적 기반을 마련하기 위해 자유 소프트웨어 재단(FSF)을 설립했다. 재단은 자유 소프트웨어의 정의와 네 가지 핵심 자유를 명확히 했으며, 이를 보호하기 위한 법적 도구인 카피레프트 개념과 GNU 일반 공중 사용 허가서(GPL)를 개발했다.
1990년대 초반, GNU 프로젝트는 운영 체제의 핵심 구성 요소인 컴파일러(GCC), 텍스트 에디터(Emacs), 라이브러리 등을 성공적으로 개발했지만, 가장 중심이 되는 커널(GNU Hurd)의 개발은 지연되고 있었다. 이 시기에 리누스 토르발스가 개발한 리눅스 커널이 등장했고, 이 커널은 GPL로 공개되었다. 자유 소프트웨어 커뮤니티는 리눅스 커널을 GNU 시스템의 나머지 부분과 결합하여 완전한 자유 운영 체제인 GNU/리눅스 시스템을 탄생시켰다. 이는 자유 소프트웨어가 실용적인 대안이 될 수 있음을 증명하는 중요한 계기가 되었다.
1990년대 후반에는 자유 소프트웨어의 실용적 가치를 강조하는 오픈 소스 운동이 등장하며 용어와 초점에서 차이를 보이기 시작했다. 그러나 자유 소프트웨어 운동은 여전히 윤리적, 사회적 자유에 기반한 철학을 유지하며, 크리에이티브 커먼즈와 같은 다른 공유 문화 운동과도 연결되어 디지털 시대의 사용자 권리와 공동체 협력의 중요성을 지속적으로 주장하고 있다.
3. 자유 소프트웨어의 네 가지 핵심 자유
3. 자유 소프트웨어의 네 가지 핵심 자유
자유 소프트웨어의 개념적 토대는 사용자에게 보장되는 네 가지 핵심 자유에 있다. 이 자유들은 소프트웨어의 사용, 연구, 공유, 개선에 관한 기본적인 권리를 정의하며, 자유 소프트웨어의 본질을 규정한다.
첫 번째 자유(자유 0)는 어떠한 목적을 위해서도 프로그램을 실행할 자유이다. 이는 사용자가 개인적, 직업적, 교육적 목적 등 자신이 원하는 어떤 방식으로든 소프트웨어를 사용할 수 있음을 의미한다. 두 번째 자유(자유 1)는 프로그램이 어떻게 동작하는지 연구하고, 필요에 따라 이를 변경할 수 있는 자유이다. 이 자유의 실현을 위해서는 해당 프로그램의 소스 코드에 대한 접근이 필수적인 전제 조건이 된다. 사용자는 코드를 분석하고 수정함으로써 프로그램을 자신의 필요에 맞게 조정할 수 있다.
세 번째 자유(자유 2)는 이웃을 돕기 위해 프로그램의 복사본을 재배포할 수 있는 자유이다. 이는 소프트웨어를 무료 또는 유료로 다른 사람들과 자유롭게 공유할 수 있는 권리를 포함한다. 네 번째 자유(자유 3)는 프로그램을 개선하고, 그 개선된 내용을 커뮤니티에 공개하여 전체가 혜택을 볼 수 있도록 할 자유이다. 이 자유 역시 소스 코드에 대한 접근과 수정이 가능해야 하며, 변경된 버전의 배포를 통해 커뮤니티 전체의 발전에 기여할 수 있게 한다.
이 네 가지 자유는 상호 연결되어 있으며, 하나라도 결여될 경우 소프트웨어는 자유 소프트웨어로 간주될 수 없다. 예를 들어, 소스 코드를 공개하지 않으면 연구와 개선의 자유(자유 1과 3)가 제한된다. 또한 재배포를 금지하면 공유의 자유(자유 2)가 훼손된다. 따라서 진정한 자유 소프트웨어는 이 네 가지 조건을 모두 충족하는 라이선스를 통해 사용자에게 부여된다.
4. 자유 소프트웨어와 오픈 소스 소프트웨어의 차이
4. 자유 소프트웨어와 오픈 소스 소프트웨어의 차이
자유 소프트웨어와 오픈 소스 소프트웨어는 모두 소스 코드를 공개한다는 점에서 유사하지만, 그 철학과 강조점에 근본적인 차이가 있다. 자유 소프트웨어는 사용자의 자유를 윤리적, 사회적 가치로 우선시하는 운동이다. 이는 리처드 스톨먼이 1980년대에 시작한 GNU 프로젝트와 자유 소프트웨어 재단의 핵심 철학으로, 소프트웨어가 사용자를 통제해서는 안 되며 공동체의 협력과 공유를 통해 발전해야 한다는 신념에 기반한다. 따라서 자유 소프트웨어의 정의는 사용자의 네 가지 핵심 자유를 보장하는 데 초점을 맞춘다.
반면, 오픈 소스 소프트웨어는 1990년대 후반에 등장한 개념으로, 소스 코드 공개의 실용적 이점을 강조한다. 오픈 소스 진영은 더 넓은 기업과 개발자 공동체를 포용하기 위해 자유 소프트웨어라는 용어의 윤리적 부담을 덜고, 개방된 협업이 더 나은 품질의 소프트웨어, 높은 신뢰성, 빠른 혁신을 가져온다는 실리적 관점을 내세운다. 오픈 소스 이니셔티브는 이러한 실용적 기준을 정의한 오픈 소스 정의를 관리한다.
이 차이는 라이선스 선택과 준수 사항에서도 나타난다. 대표적인 자유 소프트웨어 라이선스인 GPL은 카피레프트 조항을 통해 파생 저작물도 동일한 자유를 유지하도록 강력하게 요구한다. 이는 자유의 확산을 보장하려는 철학적 목적에서 비롯된다. 한편, MIT 라이선스나 BSD 라이선스와 같은 허용적 오픈 소스 라이선스는 소스 코드 공개 의무 없이 자유롭게 사용, 수정, 재배포할 수 있도록 하여, 상용 소프트웨어에 통합하기에 더 유연한 접근을 제공한다.
결국, 모든 자유 소프트웨어는 오픈 소스 소프트웨어의 조건을 만족시키지만, 그 역은 성립하지 않을 수 있다. 오픈 소스 라이선스 중에는 사용자의 자유를 제한하는 조건이 포함될 수 있기 때문이다. 이는 자유 소프트웨어가 '자유'라는 가치를, 오픈 소스가 '개방'이라는 방법론을 각각 최우선으로 삼는 차이에서 비롯된다.
5. 주요 자유 소프트웨어 라이선스
5. 주요 자유 소프트웨어 라이선스
5.1. GPL (GNU 일반 공중 사용 허가서)
5.1. GPL (GNU 일반 공중 사용 허가서)
GNU 일반 공중 사용 허가서(GPL)는 자유 소프트웨어 재단(FSF)이 만든 가장 대표적이고 널리 사용되는 자유 소프트웨어 라이선스이다. 이 라이선스는 사용자에게 소프트웨어를 실행, 복사, 배포, 연구, 변경, 개선할 자유를 보장하는 것을 목표로 하며, 특히 카피레프트 원칙을 구현한다는 점이 특징이다. 카피레프트는 저작권을 이용하여 소프트웨어의 자유를 제한하지 않고 보호하는 방식을 의미한다. 즉, GPL로 배포된 프로그램을 수정하거나 재배포할 때는 반드시 동일한 GPL 라이선스 하에 소스 코드를 공개해야 한다. 이 조항은 소프트웨어가 자유롭게 유통되고 개선될 수 있도록 하는 핵심 메커니즘으로 작동한다.
GPL은 주로 리처드 스톨먼이 주도한 GNU 프로젝트의 일환으로 개발되었으며, 1989년에 첫 번째 버전이 공개되었다. 이후 1991년에 발표된 GPL 버전 2가 리눅스 커널을 포함한 수많은 프로젝트에 채택되면서 사실상의 표준 라이선스로 자리 잡았다. 2007년에는 GPL 버전 3가 공개되어 특허 문제와 디지털 권리 관리(DRM) 제한 등 현대적인 법적 및 기술적 문제를 다루도록 개정되었다. GPL 라이선스는 운영 체제, 응용 프로그램, 개발 도구 등 광범위한 소프트웨어 분야에서 사용되고 있다.
GPL의 주요 의의는 소프트웨어의 자유를 법적으로 강력하게 보장하면서도, 그 자유가 파생된 작업에서도 유지되도록 하는 데 있다. 이는 소프트웨어가 사유화되는 것을 방지하고, 오픈 소스 커뮤니티의 협력적 발전을 촉진하는 토대를 마련했다. 그러나 이 같은 강력한 카피레프트 조항은 때로 상용 소프트웨어 개발자나 기업과의 라이선스 호환성 문제를 일으키기도 하며, 이는 자유 소프트웨어 운동 내에서도 지속적인 논의의 대상이 되고 있다.
5.2. LGPL (GNU 약소 일반 공중 사용 허가서)
5.2. LGPL (GNU 약소 일반 공중 사용 허가서)
LGPL(GNU 약소 일반 공중 사용 허가서)는 자유 소프트웨어 재단(FSF)이 만든 자유 소프트웨어 라이선스 중 하나이다. 이 라이선스는 주로 소프트웨어 라이브러리와 같은 구성 요소에 사용되도록 설계되었다. LGPL의 주요 목적은 자유 소프트웨어가 아닌 프로그램에서도 해당 라이브러리를 사용할 수 있도록 허용하면서, 라이브러리 자체의 자유로운 수정과 재배포 권리는 보호하는 데 있다.
LGPL은 GPL(GNU 일반 공중 사용 허가서)의 파생 라이선스로, GPL의 핵심 철학을 공유한다. 그러나 GPL이 라이선스가 적용된 코드와 결합된 모든 프로그램 전체를 GPL 조건 하에 배포하도록 요구하는 '강한 카피레프트' 성격을 가진 반면, LGPL은 이 요구를 완화한다. LGPL 라이브러리를 단순히 링크(동적 링크)하여 사용하는 경우, 사용하는 주 프로그램을 자유 소프트웨어로 공개할 의무가 없다.
이러한 완화된 조건 덕분에 LGPL은 상용 소프트웨어 개발자들에게도 널리 채택된다. 개발자들은 LGPL 라이브러리의 이점을 활용하여 애플리케이션을 구축할 수 있으며, 자신의 애플리케이션 소스 코드를 공개하지 않고 판매하거나 배포할 수 있다. 단, 라이브러리 자체를 수정한 경우에는 그 수정된 버전을 LGPL 조건에 따라 소스 코드와 함께 공개해야 한다.
LGPL은 GNU 컴파일러 컬렉션(GCC)의 일부 라이브러리나 GTK 툴킷 등 많은 중요한 오픈 소스 라이브러리에 적용되어 있다. 이는 자유 소프트웨어 생태계의 확장에 기여하면서도 실용적인 채택 장벽을 낮추는 데 중요한 역할을 해왔다.
5.3. MIT 라이선스
5.3. MIT 라이선스
MIT 라이선스는 자유 소프트웨어 라이선스 중 하나로, 매우 허용적이고 간결한 조건을 특징으로 한다. 이 라이선스는 매사추세츠 공과대학교에서 개발되어 이름이 붙여졌으며, BSD 라이선스와 함께 가장 허용적인 퍼미시브 라이선스로 분류된다. 사용자에게 소프트웨어를 아무런 제약 없이 사용, 복사, 수정, 병합, 출판, 배포, 서브라이선스 및 판매할 수 있는 광범위한 권한을 부여한다.
라이선스의 핵심 내용은 극도로 짧고 명확하다. 라이선스 문구와 저작권 고지를 소프트웨어의 모든 복사본에 포함시켜야 한다는 조건이 주요 의무사항이다. 이 조건 외에는 사용상의 제약이 거의 없어, 사용자가 수정한 버전을 사유 소프트웨어로 배포하거나 클로즈드 소스 프로젝트에 포함시키는 것도 허용된다. 이러한 높은 자유도 덕분에 상업적 이용이 활발하다.
MIT 라이선스는 GPL과 같은 카피레프트 라이선스와 대비되는 특징을 가진다. 카피레프트 라이선스는 파생작을 동일한 자유로운 조건으로 공개하도록 요구하지만, MIT 라이선스는 그러한 의무를 부과하지 않는다. 이로 인해 기업을 포함한 다양한 개발자 커뮤니티에서 널리 채택되고 있으며, 특히 Node.js의 npm 생태계와 많은 자바스크립트 라이브러리, 프레임워크에서 표준적인 라이선스로 자리 잡았다.
특징 | 설명 |
|---|---|
라이선스 유형 | 퍼미시브 라이선스 |
카피레프트 | 아니요 |
상업적 이용 | 허용 |
수정물 공개 의무 | 없음 |
주 사용 분야 | 웹 개발 라이브러리, 프레임워크, 도구 |
이러한 간결함과 허용성은 소프트웨어의 광범위한 재사용과 생태계 확장을 촉진하는 강점으로 작용한다. 하지만 파생작의 자유를 강제하지 않기 때문에, 어떤 이들은 이 점을 자유 소프트웨어 운동의 철학적 취지와는 다소 거리가 있다고 보기도 한다.
5.4. BSD 라이선스
5.4. BSD 라이선스
BSD 라이선스는 자유 소프트웨어 라이선스 중 하나로, 매우 허용적인 조건이 특징이다. 이 라이선스는 BSD 운영 체제에서 파생된 소프트웨어를 배포하기 위해 개발되었으며, 이후 다양한 프로젝트에서 널리 채택되었다. 가장 큰 특징은 소스 코드를 수정하거나 수정하지 않은 상태로 자유롭게 사용, 복제, 배포, 수정할 수 있으며, 심지어 사유 소프트웨어에 포함시켜 재배포하는 것도 허용한다는 점이다. 다만, 원저작자의 저작권 고지와 라이선스 고지, 그리고 책임 부인 조항을 배포물에 포함시켜야 한다는 조건이 일반적으로 따른다.
주요 변종으로는 2-Clause BSD 라이선스와 3-Clause BSD 라이선스가 있다. 2-Clause 버전은 저작권 고지와 책임 부인 조항만을 요구하는 매우 간단한 형태이다. 3-Clause 버전은 여기에 "광고 조항"을 추가하는데, 이는 원저작자나 기여자의 이름을 사전 서면 동의 없이 홍보에 사용할 수 없다는 내용이다. 이 광고 조항은 후에 Apache 라이선스 1.1 버전 등에서도 채택되었으나, 실제 적용의 복잡성으로 인해 4-Clause BSD 라이선스의 광고 조항과 함께 많은 논란을 일으켰다.
이러한 극도의 허용성 덕분에 BSD 라이선스는 상업적 이용에 매우 유리하다. 기업은 BSD 라이선스 하의 코드를 자사 제품에 자유롭게 통합하고, 수정 사항을 공개하지 않은 채 사유 소프트웨어로 판매할 수 있다. 이는 GPL 계열 라이선스와의 핵심적 차이점으로, GPL은 파생물도 동일한 카피레프트 조건으로 공개해야 한다는 강제성을 띠고 있다. 대표적으로 FreeBSD, NetBSD, OpenBSD와 같은 운영 체제, 그리고 초기 TCP/IP 스택 구현체 등이 BSD 라이선스를 사용한다.
5.5. Apache 라이선스
5.5. Apache 라이선스
Apache 라이선스는 아파치 소프트웨어 재단(ASF)이 자신의 프로젝트를 위해 개발한 자유 소프트웨어 라이선스이다. 현재 가장 널리 사용되는 버전은 2004년에 발표된 Apache 라이선스 2.0이다. 이 라이선스는 사용자에게 소프트웨어를 자유롭게 사용, 수정, 배포할 수 있는 권한을 부여하면서도, 특허권에 대한 명시적인 허용 조항을 포함하고 있다는 점이 특징이다. 이는 GPL과 같은 카피레프트 라이선스와 구별되는 중요한 요소로, Apache 라이선스로 배포된 코드를 수정하여 사유 소프트웨어에 포함시켜 재배포하는 것도 허용한다.
Apache 라이선스 2.0의 주요 조건은 변경 사항을 표시해야 하며, 라이선스 텍스트와 저작권 고지를 배포물에 포함시켜야 한다는 것이다. 또한, 라이선스가 부여하는 특허 권한을 행사하는 사용자가 해당 소프트웨어에 대해 특허 소송을 제기하면 라이선스가 제공하는 특허 권한이 자동으로 종료된다는 조항이 있다. 이러한 조건들은 비교적 간단하고 비제한적이어서, 기업을 포함한 다양한 사용자들에게 널리 채택되고 있다.
Apache 라이선스는 주로 아파치 HTTP 서버, 아파치 하둡, 아파치 카프카와 같은 아파치 재단의 프로젝트뿐만 아니라, 안드로이드 운영 체제의 많은 구성 요소, Kubernetes, Flutter 등 수많은 중요한 오픈 소스 프로젝트에서 사용되고 있다. 이 라이선스의 관대한 성격은 상업적 이용과 다른 라이선스의 소프트웨어와의 결합을 용이하게 하여, 생태계 확장에 기여해왔다.
Apache 라이선스는 MIT 라이선스나 BSD 라이선스와 함께 '관대한 라이선스'로 분류되며, GPL 계열의 라이선스와는 호환된다. 즉, Apache 라이선스 2.0으로 배포된 코드는 GPL 3.0 프로젝트에 통합될 수 있다. 이러한 호환성과 명확한 특허 조항 덕분에, 기업의 법무 부서에서도 선호하는 라이선스 중 하나로 자리 잡았다.
6. 자유 소프트웨어의 영향과 사례
6. 자유 소프트웨어의 영향과 사례
자유 소프트웨어는 현대 디지털 사회의 기반을 형성하는 데 지대한 영향을 미쳤다. 가장 대표적인 영향은 인터넷 인프라의 핵심을 구성한다는 점이다. 대부분의 웹 서버는 아파치 HTTP 서버를 사용하며, 인터넷의 근간이 되는 도메인 네임 시스템 서버 소프트웨어인 BIND 역시 자유 소프트웨어이다. 또한 전 세계 수많은 이메일 시스템과 라우터 및 네트워크 장비의 운영 체제는 자유 소프트웨어로 구동된다. 이는 자유 소프트웨어의 신뢰성, 투명성, 커뮤니티 기반의 협력 개발 모델이 대규모 인프라 구축에 적합하기 때문이다.
운영 체제 분야에서는 리눅스 커널과 GNU 프로젝트의 도구들이 결합된 GNU/리눅스 시스템이 가장 유명한 사례이다. 이 시스템은 서버, 슈퍼컴퓨터, 임베디드 시스템 시장에서 압도적인 점유율을 차지하며, 안드로이드 스마트폰의 기반이 되기도 했다. 개발 도구 영역에서는 GCC 컴파일러 모음, 파이썬 및 PHP와 같은 스크립트 언어, Git 버전 관리 시스템 등이 개발자 생태계의 표준으로 자리 잡았다.
일반 사용자에게 친숙한 응용 프로그램에서도 그 영향력은 크다. 웹 브라우저인 파이어폭스와 크로미움, 사무 생산성 도구인 리브레오피스, 그래픽 편집 도구인 GIMP, 블렌더 등은 자유 소프트웨어로 개발되어 널리 사용된다. 이는 사용자에게 소프트웨어에 대한 통제권과 공유의 자유를 제공한다는 철학이 실용적인 가치로 이어진 결과이다.
더 나아가 자유 소프트웨어의 철학과 협업 모델은 오픈 소스 운동을 촉발시켰으며, 오픈 콘텐츠, 오픈 액세스, 오픈 데이터와 같은 더 넓은 공유 문화로 확산되는 계기가 되었다. 이는 단순한 소프트웨어 개발 방식을 넘어 지식과 기술의 공유, 집단적 혁신을 지향하는 사회적 운동의 기반을 마련했다고 평가받는다.
7. 자유 소프트웨어 운동과 관련 단체
7. 자유 소프트웨어 운동과 관련 단체
7.1. 자유 소프트웨어 재단 (FSF)
7.1. 자유 소프트웨어 재단 (FSF)
자유 소프트웨어 재단(FSF)은 1985년 리처드 스톨먼에 의해 설립된 비영리 단체이다. 이 단체의 주요 목적은 컴퓨터 사용자의 자유를 보호하고 자유 소프트웨어 운동을 지지하며, 모든 소프트웨어 사용자가 소프트웨어를 자유롭게 사용, 연구, 공유, 수정할 수 있는 권리를 옹호하는 것이다. 재단은 GNU 프로젝트를 후원하고, GNU 일반 공중 사용 허가서(GPL)를 포함한 주요 자유 소프트웨어 라이선스의 관리자 역할을 한다.
FSF의 활동은 소프트웨어 개발 지원, 법률 및 라이선싱 문제에 대한 조언 제공, 그리고 사유 소프트웨어와 소프트웨어 특허, 디지털 권리 관리(DRM)에 대한 캠페인을 포함한다. 재단은 자유 소프트웨어의 정의와 네 가지 핵심 자유를 공식화하고 홍보하는 중심 기관으로 자리 잡았다. 또한 오픈 소스 소프트웨어와의 개념적 차이를 명확히 하는 데에도 기여해 왔다.
재단은 회원제로 운영되며, 회원들의 후원과 기부를 통해 재정을 조달한다. FSF는 매년 개최하는 자유 소프트웨어 행사와 컨퍼런스를 통해 커뮤니티를 결집시키고, 자유 소프트웨어 개발자와 활동가들에게 중요한 네트워킹의 장을 제공한다. 이를 통해 리눅스 커널과 같은 핵심 자유 소프트웨어 구성 요소의 개발과 채택을 촉진하는 데 기여하고 있다.
FSF의 작업은 현대 디지털 권리와 공유 문화의 토대를 마련하는 데 깊이 관여해 왔다. 재단의 노력은 소프트웨어 사용자의 자유를 법적, 기술적 측면에서 보호하는 틀을 구축했으며, 이는 인터넷과 정보 기술 전반에 지속적인 영향을 미치고 있다.
7.2. GNU 프로젝트
7.2. GNU 프로젝트
GNU 프로젝트는 리처드 스톨먼이 1983년에 발표한 자유 소프트웨어 운영 체제 개발 프로젝트이다. 이 프로젝트의 목표는 사용자에게 소프트웨어의 실행, 연구, 공유, 수정의 자유를 완전히 보장하는 유닉스 호환 운영 체제를 만드는 것이었다. 프로젝트 이름 'GNU'는 'GNU's Not Unix'의 재귀 약어로, 기술적으로는 유닉스와 호환되지만 자유 소프트웨어로 구성된다는 점을 강조한다.
GNU 프로젝트는 컴파일러(GCC), 텍스트 에디터(Emacs), 셸(Bash) 등 시스템의 핵심 구성 요소들을 직접 개발하기 시작했다. 그러나 프로젝트의 가장 중요한 구성 요소인 커널(GNU 허드)의 개발은 지연되었다. 1991년 리누스 토르발스가 리눅스 커널을 자유 소프트웨어로 공개하자, GNU 프로젝트의 시스템 구성 요소들과 결합되어 완전한 운영 체제를 이루게 되었다. 이렇게 탄생한 시스템이 바로 오늘날 널리 사용되는 GNU/리눅스 운영 체제이다.
GNU 프로젝트는 단순한 소프트웨어 모음을 만드는 것을 넘어, 자유 소프트웨어 운동의 실질적 토대와 철학적 기반을 제공했다. 프로젝트를 지원하기 위해 리처드 스톨먼은 1985년 자유 소프트웨어 재단(FSF)을 설립하였으며, 1989년에는 GNU 일반 공중 사용 허가서(GPL)를 발표하여 자유 소프트웨어의 법적 보호 장치를 마련했다. GNU 프로젝트는 현대 오픈 소스 생태계의 근간이 되었으며, 그 정신과 도구들은 클라우드 컴퓨팅, 임베디드 시스템, 스마트폰(안드로이드의 기반)에 이르기까지 광범위한 분야에 영향을 미치고 있다.
8. 비판과 논란
8. 비판과 논란
자유 소프트웨어 운동과 그 철학은 소프트웨어 산업과 개발 문화에 지대한 영향을 미쳤지만, 여러 측면에서 비판과 논란에 직면해 왔다. 가장 지속적인 논쟁은 자유 소프트웨어와 오픈 소스 소프트웨어의 철학적 차이에서 비롯된다. 오픈 소스 진영은 실용적인 접근을 강조하며 소스 코드의 공개가 기술적 협력과 품질 향상에 초점을 맞추는 반면, 자유 소프트웨어 진영은 사용자의 자유라는 윤리적 가치를 최우선으로 여긴다. 이로 인해 같은 소스 코드를 공유하는 라이선스임에도 운동의 목표와 수사에서 근본적인 긴장 관계가 존재해 왔다.
기술적·상업적 비판으로는 GPL과 같은 강력한 카피레프트 라이선스의 전염성 조항이 문제로 지적된다. GPL 라이선스가 적용된 코드를 사용한 소프트웨어는 그 결과물도 동일한 GPL 조건으로 공개해야 한다는 규정은, 상업적 소프트웨어 개발자들에게는 지나치게 제한적으로 받아들여질 수 있다. 이는 자유 소프트웨어가 기업의 폐쇄적 개발 모델과 쉽게 융합되지 못하게 하는 장벽으로 작용하며, 순수한 자유 소프트웨어 구성 요소만으로 완전한 상용 제품을 구축하는 데 실용적인 어려움을 초래한다는 지적이 있다.
또한, 자유 소프트웨어의 경제적 지속 가능성에 대한 의문이 제기된다. 대부분의 자유 소프트웨어가 무료로 배포되기 때문에, 개발자에게 충분한 경제적 보상을 제공하는 모델을 구축하기가 쉽지 않다. 기부, 상용 지원 계약, 이중 라이선싱 등 다양한 시도가 있으나, 전통적인 상용 소프트웨어 판매 모델에 비해 안정적인 수익 창출이 어려운 경우가 많다. 이는 장기적인 프로젝트 유지 보수와 품질 관리에 걸림돌이 될 수 있다.
마지막으로, 자유 소프트웨어 운동 내에서도 엄격한 원칙주의적 접근 방식에 대한 내부 논란이 존재한다. 예를 들어, 리눅스 커널처럼 핵심적인 자유 소프트웨어 프로젝트에 오픈 소스이지만 카피레프트가 아닌 BSD 라이선스 코드가 포함되거나, 자유 소프트웨어 재단이 특정 라이선스나 소프트웨어의 '자유 소프트웨어' 호환성 판정을 내리는 과정이 때로는 지나치게 융통성 없이 비춰지기도 한다. 이러한 논란들은 소프트웨어의 자유와 실용성 사이에서 지속적인 균형을 찾아가는 과정의 일부로 볼 수 있다.
