-
Free Software, 자유 소프트웨어Free Software 2016. 11. 10. 17:51
이 글로 알 수 있는 것
- GNU Project가 시작한 이유를 알 수 있다.
- 자유 소프트웨어가 말하는 자유의 의미를 알 수 있다.
- 자유 소프트웨어와 오픈 소스 소프트웨어와 차이점을 알 수 있다.
- 다음 gnu.org의 글을 요약한 것이다.
- The GNU Manifesto <https://www.gnu.org/gnu/manifesto.en.html>
- What is free software? <https://www.gnu.org/philosophy/free-sw.en.html>
- Why "Free Software" is better than "Open Source" <https://www.gnu.org/philosophy/free-software-for-freedom.en.html>
이 글을 쓰는 이유
나는 무료 배포된 프로그램으로 까다로운 작업을 쉽게 해내고, 무료 배포된 에디터로 프로그램을 직접 만들 수도 있었다. 또한 소스코드도 공개하면서 코드를 공부할 수 있는 기회를 얻었다.
나는 컴퓨터를 사용하는 매번 이렇게 자유 소프트웨어의 덕을 보고 있으므로 나 또한 그 방향을 지향하려 한다. 그러려면 자유 소프트웨어를 정확히 이해해야 한다.
소프트웨어는 물, 전기, 흙처럼 공동의 것이라는데 동의한다. 누구나 쓸 수 있고, 누구도 독점할 수 없다. 그리고 오로지 돈만을 노리는 프로그래밍으로 훌륭한 프로그램이 나올 수 없다고 믿는다. 인생이란 기승전돈으로 끝난다고 배웠지만, 돈 보다 더 큰 가치를 찾기 위해 이 글을 쓴다.
GNU 프로젝트
- GNU란 무엇인가?
- GNU란 Gnu is Not Unix의 약어이며, 유닉스와 완벽하게 호환되는 소프트웨어 시스템의 이름이며, 이를 모든 사람이 자유롭게 사용하도록 하기 위해 만들었다.
- GNU 프로젝트 시작 이유
- 1950년대, 1970년대까지 컴퓨터 사용자들은 대부분의 소프트웨어를 자유롭게 이용할 수 있었다.
- 상업적 컴퓨터 회사들도 자유 소프트웨어를 배포하던 때였고, 프로그래머들은 아무 제약 없이 서로 협력할 수 있었다.
- 사람들은 흔하게 소프트웨어를 서로 공유했고, 하드웨어 제조사들은 하드웨어를 편리하게 사용할 수 있게 하는 소프트웨어들이 제작되는 것을 기꺼워했다.
- 1980년대에 이르러 거의 모든 소프트웨어들은 소유와 독점에 관한 법률에 의해 제한되었다.
- 1970~1980년대 초반에 소프트웨어 산업이 복제권을 법적으로 적용하기 시작하여, 사용자들이 소프트웨어를 연구, 수정하지 못하도록 소스코드를 숨기고 바이너리 형태로만 배포하는 등의 방법을 사용했다. 소프트웨어를 독점하기 시작한 것이다.
- 독점 소프트웨어의 소스코드에 접근하려면, 그 회사에 입사할 수 밖에 없다.
- 리처드 스톨만은 이러한 변화에 저항해 GNU 프로젝트를 시작했다.
- 자유 소프트웨어를 제공해 모든 컴퓨터 사용자들이 프로그램을 자유롭게 사용할 수 있도록 하기 위함이다.
- GNU 프로젝트의 첫 과제
- 운영체제 만들기
- 자유 소프트웨어에 대한 첫번째로 만드는 프로그램은 유닉스와 호환되는 소프트웨어 시스템(운영체제)로 정했다.
- 왜 운영체제부터 만드나?
- 모든 컴퓨터 사용자에게 필요한 가장 첫번째 프로그램은 운영체제이기 때문이다.
- 자유롭게 사용할 수 있는 운영체제가 없다면, 컴퓨터를 사용하고자 하는 모든 사람들은 독점적인 상용 운영체제를 이용할 수 밖에 없다.
- 유닉스와 호환되는 운영체제 만들기
- 유닉스의 설계방식에 대한 전반적인 우수성과 이식성이 이미 충분히 증명되었고, 호환성을 통해 많은 유닉스 사용자들이 보다 쉽게 GNU 환경으로 적응할 수 있도록 하기 위해서 이다.
- GNU프로젝트가 단지 운영체제 개발에만 국한되는 것은아니다.
- 우리의 목표는 수요가 있는 모든 부문에 자유 소프트웨어를 제공하는 것이다.
- GNU 프로젝트의 첫 과제의 결과
- 1991년, 리누스 토발즈가 리눅스를 발표했고 GNU프로젝트에 통합되며, GNU는 독립된 운영체제로서의 완성된 모습을 갖추었으며, 자유 소프트웨어 커뮤니티는 활성화되었다.
- 슬랙웨어, 데비안, 레드햇과 같은 GNU에 기반한 많은 운영체제들이 수십만에 달하는 사용자를 갖게 되었다.
자유 소프트웨어란?
"자유 소프트웨어에서 자유란 구속되지 않는다는 것이다."
- 자유 소프트웨어란 무엇인가?
- 사용자의 자유와 공동체를 존중하는 소프트웨어이다.
- 사용자가 소프트웨어를 실행하고, 복사하고, 배포하고, 공부하고, 변경하고, 향상시킬 수 있는 자유를 가지는 소프트웨어이다.
- 자유 소프트웨어가 가지는 4개의 자유
- 프로그램을 언제든, 어떤 목적으로든 실행할 수 있는 자유
- 프로그램이 어떻게 동작하는지 공부할 수 있는 자유와, 자신의 목적에 맞게 프로그램을 바꿀 수 있는 자유(소스 코드 접근이 가능해야 함)
- 친구를 돕기 위해 프로그램을 복사하고 재배포할 수 있는 자유
- 다른 사람에게 프로그램 수정본을 배포할 수 있는 자유(소스 코드 접근이 가능해야 함)
- 위 4개의 자유를 모두 보장하는 프로그램이 자유 소프트웨어이다.
- 이렇게 함으로써 우리 모두의 이익을 향상시킬 기회를 줄 수 있다.
- 이러한 자유의 보장은 결국 공동체 전체의 발전에 기여하게 될 것이다.
- 위 4개의 자유에 대한 부가 설명
- 프로그램을 수정하고 재배포하는데 자유롭다는 의미는 수정과 재배포하기 위해 허락을 기다리거나 비용을 지불할 필요도 없다는 것이다.
- 또한 개인적인 목적을 위해 프로그램을 수정하여 이용할 수 있으며 이를 공지할 필요 없다. 공지하고 싶다면, 따라야만 하는 특별한 규칙은 없다.
- 이를 위해서는 프로그램의 소스 코드에 접근이 가능해야 한다.
- 어떤 종류의 컴퓨터 시스템이든, 어떤 직업이나 목적으로든 어떤 사람이라도 프로그램을 사용할 자유가 있다는 것이다.
- 자유 소프트웨어와 반대되는 개념
- proprietary software(독점 소프트웨어)
자유 소프트웨어의 영향
"자유 소프트웨어는 어느 한계까지 발전할 수 있을까요? 특허 제도와 같은 법률적 강제 장치가 자유 소프트웨어를 전면적으로 금지시키지 않는 한 그 가능성은 무한하다고 생각합니다. 우리의 궁극적인 목표는 컴퓨터 사용자들이 희망하는 어떠한 형태의 작업도 완벽하게 실현시킬 수 있는 자유 소프트웨어를 제공하는 것이며, 그것은 곧 소프트웨어에 있어서 독점이라는 해악을 영원히 사라지게 만들 것입니다."
- 자유 소프트웨어는 거대한 전 세계적인 움직임이다.
- 개인, 단체, 정부기관에서도 자유 소프트웨어를 사용한다.
- Apache Web Server, MySQL, PHP
- Linux OS
- 독점 소프트웨어를 자유 소프트웨어로 만들어낸다.
- 개발자들은 웹 브라우저, 오피스 제품군 등을 자유 소프트웨어로 만들어 냈다.
- 자유 소프트웨어의 경제적 가능성
- 주력 산업이 IT영역이 아닌 많은 회사들이 인터넷 홍보, 판매사이트를 위해 낮은 비용과 쉽게 앱을 수정할 수 있다는 점에서 자유 소프트웨어를 선택했다.
- 자유 소프트웨어의 영향
- 많은 소프트웨어 기업들의 자유 소프트웨어 개발 방식의 채택(집단지성)
- 과학자들의 좀 더 공개된 개발과정
- creative commons, 자유문화운동의 움직임
- 이것도 자유 소프트웨어 운동의 영향을 크게 받은 사례이다.
자유 소프트웨어와 오픈 소스 소프트웨어와 같은가?
- 자유 소프트웨어와 오픈 소스 소프트웨어는 동일하지 않다.
- 거의 비슷한 용어로 사용되고 있으나, 자유 소프트웨어 재단(FSF)은 오픈 소스 소프트웨어 대신 자유 소프트웨어라는 용어를 사용하길 권장한다.
- 오픈 소스 소프트웨어는 소프트웨어의 자유로운 사용을 강조하는 대신 기술적인 면에 치우친 용어라는 이유 때문이다.
- 오픈 소스의 명확한 의미
- "소스코드를 볼 수 있다"
- 자유 소프트웨어가 의미하는 4개의 자유의 기준에 못 미친다.
- 자유 소프트웨어의 중요한 뜻
- 무료라는 뜻보다 더 중요한 근본적인 자유의 뜻을 의도한다.
- 자유의 두려움
- 자유 소프트웨어로 소프트웨어를 더욱 효과적으로 판매할 수 있다.
글을 쓰고 난 후
나는 이때까지 자유 소프트웨어나 오픈 소스 소프트웨어는 무료로 위장한 채 기업에게는 비싸게 팔 예정인 프로그램으로 알고 있었다. 그리고 사용, 수정, 배포 모든게 무료인 소프트웨어들을 보며, 웬 현자들이 봉사해놓은 것이라 생각했다. 그림이고 노래고 소프트웨어고 자신의 이름을 찍어 팔고 불펌 방지에 노력쏟기 바쁜 세상에.
그리고 리눅스와 유닉스를 책을 본 것은 3년 전인데, GNU에 대해 제대로 아려고 하지 않은 내가 부끄러웠다. 그냥 리눅스 명령어를 외우고 학점 챙기기에 바빴다. 역사를 알고, 의도를 알고, 본질에 다가서려는 노력은 없고, 하라는 대로 할 뿐인 나도 그저 잘 훈련된 노예와 같다.
최근 저작권과 소송으로 챙기던 돈에서 벗어나 오픈 소스 운동이 크게 번졌다. 만들고 있는 프로그램을 숨기는 것보다 많은 사람들에게 보여주고 서로 돕는게 더 나은 소프트웨어를 만들 수 있다고 생각하게 된 것이다. 이미 자유 소프트웨어가 말해온 것이다. 오픈소스 소프트웨어는 자유 소프트웨어에서 출발한 것임을 알게 되었다.
이번에 GNU 메니페스토와, GNU 프로젝트, 자유 소프트웨어에 대한 gnu.org의 글을 읽으며, 자유 소프트웨어의 진정한 의도와 깊은 철학이 있음을 알게 되었다. 특히 메니페스토에는 리처드가 자신의 의도와 목적을 상당히 글을 논리적이고 명확하게 잘 적어 놓았다. 그의 확신과 신념에 글을 읽는 도중 스무번은 감동한 것 같다.
자유 소프트웨어가 대체 무엇을 추구하는 것인지 조금은 알 것 같다. 돈보다 큰 가치는 스스로 더 찾아 나가야 하겠지만, 돈만큼 큰 가치가 무엇인지는 알 것 같다. 본질이라고 생각한다. 소프트웨어의 본질은 돈을 벌기 위해서가 아닌 귀찮은 작업들을 쉽고 빠르게 해냄에 있다.
순간의 배부름 쫓기보다 더 멀리 보는 혜안을 가지고 싶다.