2013년 12월 2일 월요일

GNU/LINUX 란 ?



자료출처: 리눅스베이교육센터

GNU(그뉴)란 `GNU는 유닉스가 아니다'를 의미하는 영어 표현인 `Gnu is Not Unix'를 구성하는 단어들의 첫자를 따서 만든 약어이다.

GNU는 유닉스와 완벽하게 호환되는 소프트웨어 시스템의 이름이며, 원하는 모든 사람이 자유롭게 사용할 수 있도록 만들어진 것이다.

(1) 몇몇 자원자들이 내게 도움을 주고 있지만 보다 많은 자원자들의 지원과 프로그램과 장비 그리고 금전적인 도움이 절실히 필요한 실정이다.

우리는 지금까지 에디터 명령어를 Lisp 언어로 작성할 수 있는 텍스트 에디터 Emacs(이맥스)와 소스 코드 단계까지 오류를 추적할 수 있는 디버거, yacc(약) 호환 파서 생성기, 링커 그리고 35개 가량의 유틸리티들을 만들었으며 셸은 거의 완성된 상태에 이르렀다. 이식성 있는 최적화 C 컴파일러가 컴파일러 자신을 통해 새로이 컴파일되어 만들어 졌으며 이번 해에 배포될 것이다. 초기 단계의 커널이 존재하기는 하지만 유닉스에 필적하기 위해서는 보다 많은 기능들이 추가되어야 한다. 커널과 컴파일러가 완성되면 프로그램 개발에 적합한 GNU 시스템을 배포할 수 있을 것이다. 우리는 조판 프로그램으로 TeX(텍)을 사용하겠지만, nroff(엔로프)도 계속 사용할 것이다. 또한 이식성을 갖춘 자유 소프트웨어인 X 윈도우 시스템도 사용할 것이다. 그런 후에 이식성을 확보한 Common Lisp과 Empire 게임, 스프레드시트를 포함한 수많은 다른 프로그램과 온라인 문서들을 추가할 것이다. 종국적으로 우리는 일반적인 유닉스 시스템에 포함된 모든 프로그램과 그 이상의 것들을 제공하게 되기를 희망한다.

GNU는 유닉스 프로그램을 사용할 수 있게 해주지만 유닉스와 동일한 것은 아니다. 우리는 다른 운영체제에서의 경험을 살려 사용하기에 편리한 모든 향상을 꾀할 것이다. 특히, 긴 길이의 파일 이름과 파일 버전 번호 그리고 견고한 파일 시스템을 구현할 계획이며 가능하다면 파일명 완성 기능도 제공할 것이다. 또한 터미널에 독립적인 출력을 지원할 계획이며 최종적으로 몇 개의 Lisp 프로그램과 일반적인 유닉스 프로그램이 한 화면을 나누어 쓸 수 있는 Lisp 기반의 윈도우 시스템을 만들 것이다. 시스템 프로그래밍 언어로 C와 Lisp 두 가지를 모두 사용할 수 있을 것이다. 우리는 또한 통신을 위해 UUCP와 MIT Chaosnet 그리고 인터넷 프로토콜들을 지원해 나갈 것이다.

GNU는 본래 가상 메모리를 가진 68000/16000 CPU 계열의 컴퓨터를 기준으로 제작되었다. 그 까닭은 이 기계들에서 GNU를 가장 쉽게 작동시킬 수 있기 때문이다. 보다 작은 컴퓨터에서 GNU를 작동시키기 위해서는 별도의 노력이 필요하며 이것은 그러한 시스템에서 GNU를 사용하고자 하는 사람의 몫으로 남겨져 있다.

GNU 프로젝트를 말할 때는 `GNU'의 `G' 발음이 생략되어 ``뉴 프로젝트''(new project)와 혼동되지 않도록, ``그뉴 프로젝트''라고 명확히 발음해 주기를 부탁한다.

왜 GNU를 작성해야만 했는가?

어떤 프로그램을 좋아한다면 당연히 그것을 좋아하는 사람들과 함께 나누는 것이 황금률(대우받고자 하는 데로 대하라 - 성서)이라고 생각한다. 소프트웨어를 판매하는 사람들은 사용자를 각각 구분하고, 그들 위에 군림하고, 사용자 서로가 프로그램을 공유하는 것을 막고자 한다. 나는 이런 식으로 사용자 간의 결속이 깨지는 것을 거부한다. 나는 올바른 양심으로 비공개 협정이나 소프트웨어 사용권 계약에 서명할 수 없다. 여러 해 동안 인공지능 연구소에서 일하면서 이러한 경향과 다른 박정한 일들에 저항해 보았지만 결국 그들의 승리로 끝나고 말았다. 내 의지에 역행하는 이런 일들이 일어나는 연구소에 나는 더이상 머무를 수가 없었다.

신념을 포기하지 않고도 컴퓨터를 계속 사용하기 위해서 나는 사용이 제한되는 소프트웨어 없이도 작업을 해 나갈 수 있는 충분한 자유 소프트웨어의 본체를 만들 결심을 했다. 나는 MIT측이 어떠한 법률적 근거에 의해서도 GNU의 자유로운 배포를 제지하지 못하도록 하기 위해서 인공지능 연구소를 그만두었다.

GNU가 유닉스와 호환되는 이유

유닉스가 이상적인 운영체제라고 생각하지는 않지만 제법 쓸만하다고 할 수 있다. 유닉스의 골자는 훌륭한 것이며 나는 유닉스의 장점을 해치지 않고도 부족한 점들을 메울 수 있으리라고 생각한다. 또한 유닉스와 호환성을 갖는 시스템은 이를 채택할 다른 많은 사람들에게도 편리할 것이다.

GNU가 배포되는 방식

GNU는 사용상의 어떠한 제한도 존재하지 않는 공용 소프트웨어(public domain)가 아니다. 누구든지 GNU를 개작하고 배포할 수는 있지만 어떤 이도 GNU가 보다 널리 배포되는 것을 제한할 수 없다. 즉, 개작한 내용을 독점할 수 없다는 것이다. 나는 모든 버전의 GNU가 자유롭게 남아 있기를 보장받고 싶은 것이다.

많은 프로그래머들이 동참을 원하는 이유

나는 그 동안 GNU에 흥미를 느끼고 돕고자 하는 많은 프로그래머들을 찾을 수 있었다.

많은 프로그래머들은 시스템 소프트웨어의 상용화에 대해 불쾌하게 생각한다. 이렇게 함으로써 보다 더 많은 돈을 벌 수는 있겠지만, 일반적으로 이런 상황에서는 프로그래머들이 서로를 동지로 느끼기보다 투쟁해야 할 대상으로 느끼게 된다. 프로그래머들 사이에 우정을 나타내는 가장 기본적인 행동은 프로그램을 함께 나누는 것이다. 그러나 현재의 전형적인 마케팅 협정은 프로그래머들이 다른 프로그래머를 친구로 대하는 것을 근본적으로 막고 있다. 소프트웨어를 구입한 자는 우정과 준법 중 하나를 선택해야만 한다. 물론 많은 사람들은 우정을 보다 중요시한다. 그러나 법의 존재 가치를 인정하는 사람들은 어떤 결정을 내리든 편한 마음을 가질 수 없다. 그들은 냉소적이 되어 프로그래밍은 단지 돈을 버는 수단이라고 생각하게 된다.

그러나 독점적인 프로그램 대신 GNU를 사용하게 되면, 우리는 모든 이에게 온정을 가질 수 있으며 법도 준수하게 된다. 게다가 GNU는 공유의 표본으로써 다른 이가 우리와 함께 공유에 동참하도록 고무하는 깃발 노릇도 한다. 이것은 또한 우리에게 자유롭지 못한 프로그램을 쓸 때는 느낄 수 없는 조화로운 느낌을 갖게 해준다. 나와 대화한 프로그래머들 중 거의 절반 정도는 이것이 돈으로 바꿀 수 없는 중요한 행복이라는데 공감했다.

당신이 공헌할 수 있는 방법

나는 컴퓨터 제조업자에게는 기계와 돈을, 개인에게는 프로그램과 노동을 지원해 줄 것을 요청한다.

컴퓨터를 기증해서 기대할 수 있는 것 중 하나는 GNU가 머지않아 그 기계에서 작동할 것이라는 점이다. 기증될 컴퓨터는 즉시 사용될 수 있는 완제품으로서 주거 지역에서 사용될 수 있는 특별한 냉각 장치나 전력이 필요하지 않은 것이어야 한다.

나는 GNU를 위해 시간제로 일하기를 열망하는 많은 프로그래머들을 찾을 수 있었다. 시간제로 이루어 지는 작업은 독립된 많은 결과물들이 분산되어 이를 통합하고 조정하는 일이 매우 어렵고 각각의 부분들이 함께 통합되면 동작하지 않기도 하기 때문에 대부분의 프로젝트에는 적합하지 않다. 그러나 유닉스를 대체하기 위한 우리의 작업에는 이러한 문제가 존재하지 않는다. 완전한 유닉스 시스템에는 개별적인 문서를 갖춘 수백 개의 유틸리티가 포함되어 있으며 대부분의 인터페이스 사양은 유닉스에 호환되도록 맞춰져 있다. 만약 각각의 프로그래머가 유닉스 시스템에서 정상적으로 작동할 수 있는 유닉스 유틸리티의 대체 프로그램을 만들었다면, 이러한 대체 유틸리티들은 함께 묶어 놓아도 올바르게 작동할 것이다. 예기치 못한 문제 발생의 가능성을 고려한다고 해도 전체적인 구성 요소들을 통합하는 작업은 충분히 가능할 것이다. (커널을 만드는 작업에는 세밀한 대화가 필요할 것이며, 소수의 호흡이 잘 맞는 집단이 적당할 것이다.)

만일 내가 금전적인 지원을 얻는다면 약간의 인원을 전일제나 시간제로 고용할 수 있을 것이다. 일반적인 프로그래머의 수준보다 많은 급여를 줄 수는 없겠지만, 돈을 버는 것 만큼이나 공동체 의식을 정립하는 일도 중요한 의미를 가진다고 생각하는 사람들을 찾아 볼 것이다. 이런 사람들에게 적절한 보수를 제공하는 것은 그들이 생계에 대한 부담에서 벗어나서 보다 자유롭게 그들의 모든 역량을 GNU에 집중할 수 있도록 하는 방법이라고 나는 생각하고 있다.

모든 컴퓨터 사용자가 이득을 얻게 되는 이유

일단 GNU가 만들어지면, 모든 사람들은 훌륭한 시스템 소프트웨어를 공기처럼 무료로 얻을 수 있게 될 것이다.

(2) 이것은 모든 사람이 단지 유닉스 사용에 대한 라이선스 비용을 절약할 수 있다는 것보다 훨씬 더 많은 의미를 갖는다. 이것은 시스템 프로그래밍에 소모되는 불필요한 노력의 중복을 피할 수 있게 된다는 것을 의미하며, 절약된 노력은 기술 수준을 향상시키는데 사용될 수 있을 것이다.

시스템에 대한 모든 원시 코드가 모든 사람에게 제공될 것이다. 따라서 시스템을 변경하고자 하는 사람은 언제든지 시스템을 직접 수정하거나 적당한 프로그래머나 회사에 이를 의뢰할 수 있게 된다. 사용자들은 더이상 프로그램의 원시 코드를 독점적으로 소유하기 때문에 이를 수정할 수 있는 유일한 위치에 있는 프로그래머나 회사에 종속되지 않아도 된다.

학교는 모든 학생들에게 시스템 코드를 배우고 향상시키도록 장려함으로써 보다 나은 교육 환경을 제공할 수 있다. 하버드 대학의 컴퓨터 실습실은 원시 코드가 공개되지 않은 프로그램을 컴퓨터에 설치하지 못하도록 하는 정책을 갖고 있었는데, 실제로 그러한 몇몇 프로그램을 설치하지 못하게 함으로써 이 정책을 고수했다. 나는 이것에서 커다란 영감을 받게 되었다.

마지막으로, 누가 시스템 소프트웨어를 소유하고 있으며 누구에게 사용 자격을 부여할 것인가를 결정하는 소모적인 문제들이 사라지게 될 것이다.

복제 허가를 포함한 프로그램의 사용료를 계산할 때는 개개인이 어떤 프로그램에 대해 얼마의 돈을 지불해야 하는 가를 알아내야 하는 번잡한 방법이 필요하기 때문에 언제나 사회에 많은 비용을 야기시킨다. 그리고 오직 경찰 국가에서만 모든 사람이 이러한 방법을 따르도록 강제할 수 있다. 막대한 비용을 들여 공기를 생산하는 우주 정거장의 예를 생각한다면, 이러한 경우 공기의 요금을 리터 단위로 지불하는 것은 합당할 것이다.

그러나 호흡하는 공기의 양을 측정하기 위해서 계측기가 달린 방독면을 밤낮으로 쓰고 있어야 한다면 그런 방식은 지불 능력에 관계없이 타당한 것이 아니다. 또한 마스크를 벗고 있는 지를 TV 카메라가 언제 어디서나 항상 감시하고 있다면 이또한 옳지 않은 일이다. 따라서 이보다는 사람들에게 일정한 인두세를 부과하고 마스크를 벗어 던지는 것이 현명하다.

프로그램의 일부나 전체를 복제하는 행위는 프로그래머에게 있어서 숨을 쉬는 것 만큼이나 자연스럽고 생산적인 일이다. 따라서 프로그램은 마땅히 자유롭게 사용될 수 있어야 한다.

쉽게 반박될 수 있는 GNU의 목표에 대한 몇가지 반대 의견


``GNU가 무료라면 아무도 그것을 사용하지 않을 것이다. 왜냐하면 무료라는 것은 어떠한 지원도 기대할 수 없다는 것을 의미하기 때문이다.''

``지원 서비스를 제공하기 위해서는 프로그램에 비용을 부과해야만 한다.''

단순히 GNU를 무료로 얻는 것보다 GNU와 이에 대한 지원 서비스를 유료로 함께 구입하는 것을 사람들이 선호한다면, GNU를 무료로 구한 사람들에게 지원 서비스만을 제공하는 것으로 수익을 얻는 업체도 생겨날 수 있을 것이다.

(3) 지원 서비스는 실제 프로그래밍 작업이 포함된 것과 단순 지원 작업으로 구별해야 하는데, 전자는 기존의 소프트웨어 업체를 통해서 해결할 수 없는 것 중의 하나이다. 만일 여러분의 문제가 다른 사람에게도 발생하는 일반적으로 것이 아니라면, 해당 업체는 그 문제를 쉽게 해결해 주려고 하지 않을 것이다.

만약 여러분의 사업이 다른 사람의 지원에 의존해야만 하는 것이라면, 여러분이 선택할 수 있는 유일한 방법은 필요한 모든 원시 코드와 도구들을 구비하는 것이다. 그런 연후에 문제를 해결할 수 있는 사람을 고용할 수 있다. 이것은 다른 사람의 자비를 구하는 것과는 다르다. 유닉스의 경우에는 원시 코드를 이용하기 위한 가격이 고가이기 때문에 대부분의 사업에서 이러한 방법이 고려의 대상이 될 수 없다.

그러나 GNU에서는 이것이 용이하다. 물론, 이 경우에도 유능한 사람을 구하지 못할 가능성은 여전히 존재하지만 이것을 GNU가 무료로 배포되는데 따른 문제라고 비난할 수는 없다. GNU는 이 세계의 모든 문제를 해결하는 것이 아니라 단지 그 중 일부를 해결할 수 있을 뿐이다.

한편, 컴퓨터에 대해 전혀 모르는 사용자들은 단순 지원 서비스를 필요로 한다. 이러한 서비스는 사용자 스스로 능히 처리할 수 있는 종류의 것들이지만 사용자들이 그 방법을 모르기 때문에 서비스가 필요한 것이다.

이런 서비스들은 단순 보수 작업이나 복구 서비스를 지원하는 회사들이 제공할 수 있다. 사용자들이 제품을 구입하고 그에 대한 서비스를 제공받는 방식을 받아들인다면, 제품을 무료로 받고 서비스에 대한 비용을 지불하는 방식에도 기꺼이 동의할 것이다. 서비스를 제공하는 회사들은 가격과 품질로 경쟁할 것이고 사용자들은 특정한 업체에 얽매이지 않아도 될 것이다. 또한, 그러한 서비스가 필요하지 않은 사람들은 서비스에 대한 비용을 들이지 않고도 프로그램들을 사용할 수 있을 것이다.


``광고를 하지 않으면 많은 사람들에게 알릴 수 없다. 따라서 프로그램을 널리 알리기 위해서는 프로그램에 광고 비용를 부과해야만 한다.''


``무료로 구할 수 있는 프로그램을 광고하는 것은 무의미하다.''

GNU와 같은 프로그램을 무료 또는 극히 적은 비용으로 많은 컴퓨터 사용자에게 홍보할 수 있는 다양한 정보 전파 방식이 존재한다. 그러나 광고를 이용하면 보다 많은 사람들에게 프로그램을 알릴 수 있다는 점은 옳을 수 있다. 만약 이것이 정말 사실이라면 GNU를 유료로 복제하고 배송하는 서비스 사업은 광고비 혹은 그 이상의 비용을 지불하기에 충분할 만큼 성공해야 한다. 이러한 방식에서는 광고를 보고 제품을 구입하는 등의 광고로부터 이익을 얻은 사용자가 광고비를 부담한 것이 된다.

반면에, 많은 사람들이 GNU를 그들의 친구로부터 구하고 또한 위와 같은 회사가 성공하지 못한다면 그것은 GNU가 확산되는데 광고가 반드시 필요하지 않다는 것을 의미하는 것이다. 자유 시장 옹호자들은 왜 이 문제를 자유 시장이 결정하도록 놔두지 않는 것일까? (4)


``내 회사는 경쟁 우위를 차지하기 위해서 독점 운영체제가 필요하다.''

GNU는 시스템 소프트웨어를 경쟁이라는 범주에서 제외시킬 것이다. 여러분의 회사는 이 분야에서 경쟁 우위를 점할 수 없겠지만, 그것은 여러분의 경쟁사도 모두 마찬가지가 될 것이다. 여러분과 여러분의 경쟁사는 다른 분야에서 경쟁하겠지만, 이 분야에서는 모두 이익을 얻게 될 것이다. 만약 여러분의 사업이 운영체제를 판매하는 것이라면 GNU를 좋아하지 않을 것이고 혹독한 상대가 되겠지만, 여러분의 사업이 다른 것이라면 GNU는 운영체제의 구입에 따른 막대한 비용을 절감해 줄 수 있다.

나는 많은 업체와 사용자들이 GNU의 발전에 기여해 나감으로써 서로의 비용을 절감할 수 있기를 희망한다. (5)


``프로그래머는 자신의 창의력에 대한 보상을 받을 자격이 있지 않은가?''

어떤 일이 보상받을 만한 가치가 있다면 그것은 곧 사회적 공헌을 의미한다. 창의성이란 그 결과물을 사회가 대가 없이 사용할 수 있을 때 사회적 공헌이 되는 것이다. 어떤 혁신적인 프로그램을 제작한 사람이 그에 대해 보상을 받아야만 한다면, 같은 맥락에서 그것을 자유롭게 사용하지 못하게 한다면 그때는 처벌을 받아야 할 것이다.


``그렇다면, 프로그래머는 그의 창의력에 대한 보상을 요구할 수 없단 말인가?''

유해한 수단을 사용하지 않는다면, 노동에 대한 보수와 자신의 소득이 극대화되기를 바라는 것은 아무 문제가 없다. 그러나 지금까지 소프트웨어 산업에서 보편화된 수단은 유해한 방법이다.

프로그램을 사용하는 것에 제한을 둠으로써 돈을 벌어들이는 행위는 프로그램이 사용되는 범위와 방식을 제한하기 때문에 유해한 것이다. 이는 프로그램으로부터 얻을 수 있는 인간적인 풍요로움을 전체적으로 감소시키는 것이다. 프로그램의 자유로운 사용에 대한 제한은 결국, 유해한 파괴 행위라고 할 수 있다

선량한 시민이라면 자신이 보다 부유해지기 위해서 그러한 수단을 쓰지 않는다. 그 까닭은, 만일 모든 사람들이 그렇게 한다면 상호간의 유해한 행위로 인해 결과적으로 우리 모두는 보다 빈곤해질 것이기 때문이다. 이것은 칸트의 윤리학(네 의지의 준칙이 언제나 보편적 입법의 원리로서 타당하게 행동하라-실천이성비판)이나 황금률과 같은 분명한 것이다. 나는 모든 사람들이 자기만의 정보를 축적해 나가는 것은 바람직하지 않다고 여기기 때문에, 누군가 그런 일을 한다면 그것이 잘못된 일이라고 생각한다. 명확하게 말하면, 한 개인의 창의성을 보장받고자 하는 욕구가 일반적으로 전체의 창의성이나 혹은 그 일부분을 저하시키는 행위를 정당화시키는 것은 옳지 않다.


``프로그래머는 밥줄이 끊기지 않을까?''

그 누구도 프로그래머가 되도록 강요되지는 않는다고 답하고 싶다. 아마 우리들 대부분은 실직한 후에 거리로 나가 궁색한 표정을 지으며 구걸한다고 해도 한푼의 돈도 벌 수 없을 것이다. 그러나 실직했다고 해서 반드시 거리로 나가 구걸을 하고 굶주려야 하는 것은 아니다. 왜냐하면 우리는 얼마든지 다른 일을 할 수 있기 때문이다.

그러나 이것은, 프로그래머는 소프트웨어를 소유하지 않으면 단 한푼도 벌 수 없다라는 질문자의 맹목적인 가정을 인정하고 있다는 점에서 잘못된 답변이라고 할 수 있다. 아마도 이런 생각은 극단적일 것이다.

프로그래머가 생계에 지장을 받지 않을 것이라는 점에 대한 올바른 이유는 지금과 같은 수준의 보수는 아니겠지만 여전히 프로그래밍으로 돈을 벌 방법들이 있기 때문이다.

프로그램의 복제를 제한하는 것이 소프트웨어 사업을 유지되기 위한 유일한 기반은 아니다. 이러한 방식이 보편화된 것은 이렇게 함으로써 가장 돈을 많이 벌 수 있기 때문이다. 만약 고객들에 의해 이런 방식이 거부되거나 금지된다고 해도, 소프트웨어 사업은 지금까지는 드물었던 새로운 방식으로 사업 구조를 재편해 나갈 수 있을 것이다. 어떠한 분야에 있어서도 사업 구조와 수익 모델을 만드는 방법은 무궁 무진한 것이다.

새로운 기반 하에서의 프로그래밍은 지금처럼 수익성이 높은 일은 아닐 것이다. 그러나 이것이 변화에 반대하는 이유가 될 수는 없다. 판매직 사원들에게 판매 실적만큼 급여를 지불하는 현재의 방식은 정당한 것으로 받아들여진다. 그렇다면 프로그래머에게 같은 방식이 적용된다고 해도 정당하지 못할 이유가 없다. (그러나 현실적으로 볼 때, 프로그래머들은 여전히 그보다 많은 소득을 올리고 있다.)


``창작자는 창작물의 사용을 통제할 권리를 갖고 있지 않은가?''

자신의 아이디어를 다른 사람이 사용하는 것을 통제한다는 것은 결국 다른 사람의 삶을 통제한다는 것이며, 이것은 타인의 삶을 위축시키기 위해서 흔히 사용되는 것이다.

변호사와 같이 지적 소유권 문제를 연구해 온 사람들은 지적 소유물에는 본질적인 권리가 존재할 수 없다고 주의 깊게 말한다. 정부가 인정하는 가상의 지적 소유권은 특정한 목적을 위해 만들어진 특정 법률 조항으로부터 발생한 것이다.

예를 들어, 특허 제도는 발명가로 하여금 발명품의 세부 사항을 공개하도록 장려하기 위해서 만들어진 것이다. 따라서 그 목적은 발명자를 돕기보다 사회를 돕기 위한 것이다. 시간적인 측면에서 보면, 특허가 갖는 17년간의 유효 기간은 기술의 발전 속도와 비교해 볼 때 짧은 것이다. 특허는 제조업체들 간의 문제이고 특허 사용 계약을 체결하는 것이 제품을 직접 생산하기 위해서 필요한 노력과 비용에 비해 적기 때문에 그다지 해롭게 작용하지 않는다. 또한 특허품을 사용하는 대부분의 개인에 대해서는 별다른 제한을 두지 않는다.

고대에는 저작권 개념이 존재하지 않았으며, 당대의 작가들은 흔히 논픽션 작품 속에 다른 작가의 작품 상당량을 옮겨 넣었다. 이런 관행은 유용한 것이었으며 비록 일부분이나마 많은 작가들의 작품이 계속해서 남아 있을 수 있는 유일한 방법이었다. 저작권 제도는 특별히 저술업을 활성화시키려는 의도로 만들어진 것이다. 이 영역에 속하는 책은 인쇄기를 통해서 경제적으로 만들어질 수 있기 때문에 저작권은 그다지 해롭지 않았다. 또한 책을 읽는 대다수의 사람들을 제한하지도 않았다.

모든 지적 소유권은 그것이 옳든 그르든 간에 그를 허용함으로써 사회 전체에 이익이 된다고 여겨져서 사회가 부여한 허가일 뿐이다. 그러나 어떤 특정 상황에서도 우리는 "그런 허가를 내주는 것이 정말 우리에게 유익한가? 개인에게 어떤 종류의 행위를 허용하는 허가를 내줄 것인가?"라는 질문을 해보아야만 한다.

오늘날의 프로그램의 경우는 백여년 전의 책의 경우와 크게 다르다. 프로그램이 옆사람을 통해 가장 쉽게 복제될 수 있다는 점과 원시 코드와 목적 코드로 구분된다는 점, 단순히 읽거나 즐기기 위한 것이 아니라 특정한 용도를 위해 사용된다는 점들이 복합적인 상황을 만들게 되어 저작권을 강요하는 사람들은 사회 전체에 정신적으로나 물질적으로 해를 끼치는 상황을 만들고 있으며 법적 허용 여부에 관계없이 사용자들의 이용을 제한하고 있는 것이다.


``경쟁을 통해서 보다 나은 결과를 얻을 수 있다.''

경쟁의 기본 원리는 경주이다. 경주는 승자에게 상을 주는 방법으로 모두가 더욱 빨리 달리도록 장려한다. 만약 자본주의가 실제로 이런 방식을 따른다면 이는 바람직한 것이다. 그러나 자본주의의 옹호자들은 항상 이런 방식으로 움직인다고 단정짓는 잘못을 범한다. 만일, 주자들이 상이 주어지는 이유를 망각한 채 승리에만 집착한다면 그들은 다른 주자를 공격한다든지 하는 색다른 전략을 찾게될 것이다. 주자들이 먼저 싸우기부터 한다면 그들은 결국 모두 늦어질 수밖에 없는 것이다.

독점적이고 비밀에 쌓인 소프트웨어는 먼저 싸우기부터 하는 주자들과 도덕적으로 동일하다. 슬픈 일이지만 우리의 유일한 심판은 그다지 공정해 보이지 않으며 싸움에 반대하는 것 같지도 않다. 단지, ``10 미터 마다 한번씩만 상대를 가격할 수 있다.''는 정도의 규정을 적용할 뿐이다. 공격하려는 시도만 해도 이를 저지하고 벌칙을 주어야 하는데도 말이다.


``금전적인 특혜가 없다면 아무도 프로그래밍을 하지 않을 것이다.''

실제로 많은 사람들은 어떠한 금전적 보상 없이도 프로그래밍을 계속 할 것이다. 프로그래밍은 어떤 사람들에게 있어 저항할 수 없는 매력이며 이는 프로그래밍에 능숙한 사람일수록 더욱 그렇다. 생계를 유지할 희망이 보이지 않더라도 꾸준히 활동을 계속하는 직업 음악인들이 많이 있듯이 말이다.

그러나 실제로 이 질문은 비록 일반적으로 많이 제기는 것이기는 하지만 조금은 다른 관점의 문제라고 할 수 있다. 왜냐하면 프로그래머들의 소득원이 없어지는 것이 아니라 단지 수입이 줄어드는 것이기 때문이다. 따라서 올바른 질문은 ``금전적인 보상이 줄어들더라도 프로그래밍을 계속할 사람이 있을까?''일 것이다. 내 경험에 비추어 보면 그렇게 할 것이라고 생각한다.

십년 이상 동안, 세계 정상급 프로그래머들이 MIT 인공 지능 연구소에서 근무했지만 그들이 받은 보수는 다른 어떤 곳에서 기대할 수 있는 것보다 훨씬 적은 것이었다. 그들은 사회적 존경이나 명성과 같은 다양한 종류의 비금전적인 보상을 받았다. 그리고 창조적 작업은 이미 그 자체가 자신에게 흥미와 보상을 주는 것이다.

그러나 시간이 흐르자 이전의 작업처럼 그들이 흥미롭게 생각하는 일을 높은 보수를 받으며 할 수 있는 기회가 주어지자 그들 중 대부분은 연구소를 떠나갔다.

이 사실에서 알 수 있는 것은, 사람들은 부유해지기 위해서보다 나름대로 어떤 이유 때문에 프로그래밍을 한다는 것이다. 그러나 동일한 일에 대해서 보다 많은 보수까지 받을 기회가 주어지면, 그것을 기대하고 원하게 된다는 점이다. 보수가 낮은 조직은 높은 보수를 받는 조직과의 경쟁에서 뒤쳐지겠지만, 만약 높은 보수를 받는 조직이 허용되지 않는다면 훌륭하게 활동할 수 있을 것이다.


``우리는 프로그래머가 절대적으로 필요하다. 만약 그들이 우리에게 이웃을 돕지 말라고 하면 우리는 따를 수밖에 없다.''

여러분은 결코 그런 종류의 요구에 굴복해야 할 만큼 절박하지 않다. 옳은 길을 가기 위해서는 결코 타협해서는 안된다는 사실을 명심하라.


``프로그래머들도 어떤 식으로든 그들의 생계를 꾸려 나가야 하지 않은가?''

요컨대 이것은 진실이다. 그러나 프로그램의 사용 권리를 파는 것 이외에도 프로그래머로서 생계를 꾸려갈 수 있는 방법은 많이 있다. 이러한 방법이 관례적으로 사용되고 있는 이유는 프로그래머나 사업가들이 보다 많은 돈을 벌 수 있기 때문이지 결코 이것이 생계를 유지할 수 있는 유일한 방법이기 때문은 아니다. 다른 방법을 찾고자 한다면 얼마든지 가능할 것이다. 여기 여러 가지 예들이 있다.

새로운 컴퓨터를 내놓는 제조업자는 새 기계에 운영체제를 이식하기 위한 비용을 지불할 것이다.

교육이나 단순 관리 작업, 유지 보수 서비스를 제공하는 회사에서도 역시 프로그래머를 고용할 것이다.

프리웨어라는 이름으로 프로그램을 배포한 뒤에 사용자가 제품에 만족한다면 이에 대한 기부금을 요청하거나 지원 서비스를 판매하는 방식의 새로운 아이디어를 갖고 있는 사람들도 있다. 나는 이미 이러한 방법으로 성공한 사람들을 알고 있다.

비슷한 요구를 가진 사용자들은 사용자 모임을 결성하고 회비를 조성할 수 있을 것이다. 사용자 모임은 프로그래밍 회사와 계약을 맺고 회원들이 원하는 프로그램을 주문 제작할 수 있을 것이다.

모든 종류의 개발에 필요한 기금은 소프트웨어에 대한 다음과 같은 세금으로 조성될 수 있다.

소프트웨어 세금이 모든 컴퓨터의 판매 가격에 부과된다면 정부는 이 세금을 국립과학재단 같은 기관으로 위임하여 소프트웨어 개발을 위해서 사용되도록 할 수 있을 것이다.

그러나 컴퓨터를 구입하는 사람이 소프트웨어 개발에 직접 기부하고자 할 때에는 기부금이 세금을 대신할 수 있으며, 기부액은 세금의 범위 안에서 얼마든지 대신될 수 있다. 기부자들은 때때로 그 결과물을 자신이 쓸 수 있을 것이라는 기대를 갖고 기부할 프로젝트를 선택할 수 있을 것이다.

전체적인 세율은 납세자들의 투표를 통해 결정할 수 있으며 구입액에 따른 누진율을 적용할 수도 있을 것이다.

이러한 결과는 다음과 같다.

컴퓨터 사용자 공동체는 소프트웨어의 개발을 지원한다.
어느 정도의 지원이 필요한가는 이 공동체가 결정한다.
자신의 돈이 어떤 프로젝트에 지원되는가에 관심이 있는 개인은 이를 직접 결정할 수 있다.
프로그램을 자유롭게 만든다는 것은 결국, 더이상 생계를 위해 고되게 일할 필요가 없는 풍요로운 세계로 가는 한 단계인 것이다.

사람들은 법률 제정이나 가정 상담, 로보트 수리, 소행성 채굴 등과 같은 주당 열 시간 정도의 근무 시간을 마친 후에는 프로그래밍과 같은 흥미를 가질 수 있는 일에 자신을 몰입할 수 있는 자유를 갖게 될 것이다. 더이상 프로그래밍을 생계의 수단으로 삼을 필요가 없게 될 것이다.

우리가 이미 실질적인 생산을 위해 사회 전체가 수행해야 할 작업량의 상당 부분을 줄여왔음에도 불구하고 노동자들을 위한 여가 시간이 아직 충분히 보장되지 않고 있는 이유는, 주로 자유 경쟁에 반하는 관료 제도와 저항들에 의해서 생산적인 활동에 많은 비생산적 요소들이 개입되기 때문이다. 자유 소프트웨어는 소프트웨어 생산 분야에서 이러한 소모적인 요소들을 대폭적으로 줄일 수 있을 것이다. 또한 그렇게 해야만 소프트웨어 생산에 대한 기술적 성과들이 우리들 자신의 노동량을 감소시키도록 할 수 있을 것이다.


[ 참조 ]
1. http://www.gnu.org/gnu/manifesto.ko.html

홈페이지 jQuery 라이브러리에서 CVE-2019-11358 취약점 패치 여부 확인 방법

현재 홈페이지에서 사용 중인 jQuery 라이브러리가 CVE-2019-11358 취약점 패치를 적용했는지 확인하는 방법은 다음과 같습니다. 1. jQuery 버전 확인 홈페이지 소스 코드를 확인하여 jQuery 라이브러리 버전을 직접 확인합니다. 웹 ...