지엔유
지엔유(GNU)는 GNU's Not Unix의 약자로 무료 공개 오픈소스 운영체제(OS) 또는 그러한 정보 공유 프로젝트를 말한다. 모든 프로그램은 무료여야 하며, 프로그램의 사용, 복사, 수정, 배포에 제한이 없어야 한다는 신념을 기반으로 하고 있다. 1985년 리차드 스톨만(Richard Stallman)이 주도하여 자유소프트웨어재단(FSF)을 만들고, GNU GPL과 GNU LGPL 및 GNU FDL(=GFDL) 등의 저작권을 만들었다. 한국에서는 GNU를 그누라고도 읽는다.GNU 프로젝트는운영 체제 커널, GNU HURD를 포함하고 있으며 이는 자유 소프트웨어 재단(FSF)에서 본래 초점을 두고 있었던 것이다. 그러나 GNU가 아닌 커널(가장 유명한 것으로 리눅스)은 GNU 소프트웨어와 함께 사용할 수도 있다. 즉, 허드(Hurd) 커널은 아직 운영용으로 준비되지는 않았는데, 이는 어떻게 GNU 시스템이 일반적으로 사용되고 있는지를 설명한다. GNU 소프트웨어와 리눅스 커널의 결합은 리눅스(또는GNU/리눅스)로 알려져 있다. GNU 프로젝트의 설립자 리처드 스톨먼프로젝트의 창립자 리처드 스톨먼은 GNU를 "사회에 대한 기술적 수단'으로 보았다. 이와 관련해 Lawrence Lessig는 스톨먼의 책 《자유 소프트웨어, 자유 사회》 제2판에서 스톨먼은 소프트웨어의 사회적 관념과 어떻게 자유 소프트웨어가 공동체와 사회 정의를 조성할 수 있는지에 대해 썼다고 언급하였다.[1]
목차
개요
리처드 스톨만의 자유 소프트웨어 재단(Free Software Foundation)에서 진행하며 유지 중인 OS 프로젝트. 상용 유닉스를 GPL에 부합하는 운영 체제로 만들기 위해 컴파일러(GCC), 커널 등을 만들다 진행이 지지부진하던 도중 리눅스 커널과 FSF의 GNU 소프트웨어가 결합된 것이 현재 리눅스의 기원이다. 원래 GNU에서 사용하려고 한 커널은 Hurd였으나 개발이 너무 늦어 리눅스 커널이 사용됐다. GNU Hurd 배포판으로 Debian GNU/Hurd나 Arch Hurd 등이 있다. Hurd를 만들던 도중 완성하지 못하고 리눅스 커널이 그 자리를 차지하긴 했지만 그렇다고 해서 현재의 리눅스가 순수하지 못한 GNU라는 식으로 볼 필요는 없다. GNU의 핵심 사상은 어차피 GPL에 담겨 있으므로 GPL을 따른다면 GNU 사상을 계승한다고 볼 수 있고, 리눅스 커널 자체도 GPL을 따르기 때문. 리눅스에서 라이선싱과 관련해서 두 파로 갈라진 것은 GNOME과 KDE가 더욱 대표적인 예시이며, 이것도 현재는 KDE가 GPL을 완벽히 따르게 되면서 과거의 일이 되었다. 골수 GNU 팬들은 극도의 오픈 소스를 추구하며 사용자의 동의 없이 인터넷 연결을 사용하는 프로그램을 극도로 싫어한다. 대표적인 예가 우분투. 우분투는 사용자를 추적한다고 대놓고 써 있다.GNU가 같은 철자의 동물인 '누'를 마스코트로 삼았기 때문에 GNU도 '그누'가 아닌 '누'로 발음한다고 착각하기 쉽지만 실제론 '그누'가 맞는 발음이다. [2]
등장배경
GNU 프로젝트(GNU project)는 1983년 9월 27일 유즈넷 net.unix-wizard 그룹을 통해 일반에 알려졌다. 스톨만은 첫 선언문에 이은 "GNU 선언문"을 비롯한 여러 글들을 통해서, "초기 전산 공동체에 지배적이었던, 협동 정신을 되돌리자"라고 주장했다. GNU 프로젝트는 누구나 자유롭게 "실행, 복사, 수정, 배포"할 수 있고, 누구도 그런 권리를 제한하면 안 된다는 사용 허가권(License) 아래 소프트웨어를 배포한다. 카피레프트로 불리는 이런 생각은 GPL(GNU 일반 공중 사용 허가서)에 나타나 있다.[1]
역사
- 1983년 9월 27일 유즈넷 net.unix-wizard 그룹을 통해 일반에 알려졌다.
- 1985년에 스톨만은 GNU 프로젝트를 철학적, 법률적, 금융적으로 지원하기 위해 자선단체인 자유 소프트웨어 재단(FSF, Free Software Foundation)을 세웠다.
- 1990년까지 GNU 시스템엔 확장 가능한 문서 편집기(이맥스), 뛰어난 최적화 컴파일러(GCC), 그리고 표준 유닉스 배포판의 핵심 라이브러리와 유틸리티가 있었다. 하지만, 여기엔 주요 구성요소인 커널이 빠져 있었다.
- 1986년 12월, 이 커널을 고치는 작업이 시작됐다. 하지만, 개발자들은 결국 트릭스(TRIX)를 기반으로 새 커널을 만드는 것은 어렵다는 결론을 내렸다.
- 1988년 즈음에, 카네기멜론 대학교에서 개발되던 마하 통신-전송 커널(Mach message-passing kernel)을 그 대체품으로 고려했지만, 이것은 처음에 이것을 개발한 사람들이 AT&T 소유의 코드를 지우면서 지연되었다.
- 1991년에 리누스 토르발스는 유닉스 호환의 리눅스 커널을 작성하여 GPL 라이선스 아래에 배포했다.
- 2003년 기준으로, 허드(HURD)는 여전히 개발 중이며, 리눅스를 대신하여 허드를 사용한 GNU 시스템을 비공식 실험판으로 사용할 수 있다.[1]
특징
GNU는 무엇입니까?
- GNU는 자유 소프트웨어 인 운영체제이다. 즉, 사용자의 자유를 존중합니다. GNU 운영체제는 GNU 패키지 (GNU 프로젝트에서 특별히 발표 한 프로그램)와 제 3 자에 의해 배포 된 자유 소프트웨어로 구성된다. GNU의 개발로 인해 소프트웨어를 사용하지 않고도 컴퓨터를 자유롭게 사용할 수 있었다.[3]
자유 소프트웨어 운동이란 무엇입니까?
- 자유 소프트웨어 운동은 자유 소프트웨어에서 오는 자유를 계산하는 사용자를 위해 우승합니다. 자유 소프트웨어는 사용자가 자신의 컴퓨팅을 제어 할 수있게한다.[3]
자유 소프트웨어 란 무엇입니까?
- 자유 소프트웨어는 사용자가 소프트웨어를 실행, 복사, 배포, 연구, 변경 및 개선 할 수있는 자유를 누릴 수 있음을 의미한다.
자유 소프트웨어는 가격이 아니라 자유의 문제입니다. 이 개념을 이해하려면 '무료 맥주'처럼 '자유 언론'처럼 '자유'를 생각해서는 안된다. 좀 더 정확하게 말하면, 자유 소프트웨어 란 프로그램의 사용자가 4 가지 필수 자유를 가지고 있음을 의미한다 .[3]
- 어떤 목적 으로든 자유롭게 프로그램을 실행할 수 있다. (자유 0).
- 프로그램이 어떻게 작동하는지 연구하고 원하는대로 컴퓨팅을 변경하는 자유 (자유 1). 소스 코드에 대한 액세스가이를위한 전제 조건이다.
- 다른 사람들을 도울 수 있도록 복사본을 재배포 할 자유 (자유 2).
- 수정 된 버전의 사본을 다른 사람에게 배포 할 수있는 자유 (자유 3).
이렇게하면 전체 커뮤니티가 변경 사항으로부터 이익을 얻을 수있는 기회를 제공 할 수 있다. 소스 코드에 대한 액세스가이를위한 전제 조건이다. 기술 및 네트워크 사용의 발전으로 인해 1983 년에 비해 이러한 자유 가 더욱 중요 하게되었다. 요즘 자유 소프트웨어 운동은 GNU 시스템을 개발하는 것 이상이다. [3] GNU(Listeni/ɡnuː/, 그누)는 운영 체제의 하나이자 컴퓨터 소프트웨어의 모음집이다. 즉, 응용 프로그램, 라이브러리, 개발자 도구, 게임 등 많은 프로그램 모음이다. 1984 년 1 월에 시작된 GNU의 개발은 GNU 프로젝트로 알려져 있다.[3]
GNU의 많은 프로그램은 GNU 프로젝트의 지원하에 배포된다. GNU는 온전히 자유 소프트웨어로 이루어져 있으며, 그 중 대부분이 GNU 프로젝트의 GPL로 라이선스가 된다. GNU는 "GNU's Not Unix!"(GNU는 유닉스가 아니다!)의 재귀 약자이며, 이렇게 선정된 이유는 GNU의 디자인이 유닉스 계열이지만 자유 소프트웨어인 점과 유닉스 코드를 포함하지 않는다는 점에서 차별을 두려는 것이다.[1] GNU 프로젝트는운영 체제 커널, GNU HURD를 포함하고 있으며 이는 자유 소프트웨어 재단(FSF)에서 본래 초점을 두고 있었던 것이다.[3] 그러나 GNU가 아닌 커널(가장 유명한 것으로 리눅스)은 GNU 소프트웨어와 함께 사용할 수도 있다.[1] 즉, 허드(Hurd) 커널은 아직 운영용으로 준비되지는 않았는데, 이는 어떻게 GNU 시스템이 일반적으로 사용되고 있는지를 설명했다. GNU 소프트웨어와 리눅스 커널의 결합은 리눅스(또는 GNU/리눅스)로 알려져 있다. 프로젝트의 창립자 리처드 스톨먼은 GNU를 "사회에 대한 기술적 수단'으로 보았다.[1] 이와 관련해 Lawrence Lessig는 스톨먼의 책 《자유 소프트웨어, 자유 사회》 제2판에서 스톨먼은 소프트웨어의 사회적 관념과 어떻게 자유 소프트웨어가 공동체와 사회 정의를 조성할 수 있는지에 대해 썼다고 언급하였다.[1]
기계 자원을 할당하고 하드웨어와 통신하는 Unix 계열 시스템의 프로그램을 "커널"이라고 한다. GNU는 일반적으로 Linux라는 커널과 함께 사용된다. 이 조합은 GNU / Linux 운영 체제 이다. GNU / Linux는 실수로 "Linux"라고 부르기는 하지만 수백만 명이 사용한다.[3] GNU의 자체 커널 인 The Hurd 는 1990 년에 시작되었다 (Linux가 시작되기 전). 자원 봉사자는 흥미로운 기술 프로젝트이기 때문에 허드 개발을 계속한다.
활용
기본 시스템
지엔유 (GNU) 이름 제공 bash bash coreutils - fileutils:Chgrp, Chown, Chmod, cp,dd, df, dir, du, In, Ls(유닉스), Mkdir, 명명된 파이프, 장치 파일, Mv, rm, etc.
- textutils:cat, chsum, head, tail, md5sum, nl, od, pr, tsort, join, wc, tac, paste, etc.
- shellutils:Basename, Chroot, date, Dirname, echo, env, groups, 호스트명, nice, nohup, printf, sleep, etc.
cpio cpio Diffutils Diff,cmp,diff3,Diff findutils find.locate,updatedb,Xargs finger n/a Grep grep groff groff GRUB grub Gzip gzip hurd[Note1] n/a inetutils ftp, 텔넷, rsh,Rlogin,TFTP 리눅스 리브레 graph,libplot,libplotter plotutils graph,libplot,libplotter readline readline screen screen sysutils[Note 2] add-shell, chage, chfn,chgroup, chgrpmem, chpasswd, chsh, chuser, cppw, expiry, gpasswd, grpck, gshadow, hwclock, isosize, last, lastlog, login, lsage, lsgroup, lsuser, mkusr, nologin, passwd, pwck, remove-shell, rmgroup, rmuser, setpwnam, vipw, wall, write tar tar texinfo n/a time time
종류
GNU 소프트웨어
- Bison, yacc을 대체하려고 만든 파서 발생기[1]
- Bash, 셸.[1]
- Binutils, 어셈블러와 링커를 포함.[1]
- 이맥스 (Emacs), 다양한 기능의 문서 편집기.[1]
- GCC, C를 비롯한 다양한 프로그래밍 언어를 위한 컴파일러[1]
- GDB, 디버깅 프로그램.[1]
- 김프, 그림 편집기.[1]
- glibc, C 라이브러리.[1]
- GMP, 수치 계산 라이브러리.[1]
- 그놈, 그래픽 데스크톱 환경.[1]
- GNU 빌드 시스템 - Autoconf, Automake, Libtool[1]
- GNUStep - 오픈스텝 표준의 추가 (그래픽 응용 소프트웨어를 위한 라이브러리 및 개발 도구 집합)[1]
- GSL, GNU 과학 라이브러리.[1]
- GZip, 데이터 압축을 위한 라이브러리와 프로그램[1]
- HURD, 유닉스 커널과 같은 기능을 수행하는 마이크로커널과 서버들의 모임[1]
- Maxima, 컴퓨터 대수학 체계.[1]
- Octave, MATLAB과 비슷한 수치 계산기.[1]
- GNU MDK, MIX 안에서 프로그램을 짜기 위한 개발 키트.[1]
- GNU 라디오, 범용 하드웨어를 이용한 소프트웨어 무선 통신 신호 처리 패키지[1]
- 오픈오피스 (Open Office), GNU 오피스[1]
문제점
- GNU가 무료라면 아무도 그것을 사용하지 않을 것이다. 왜냐하면 무료라는 것은 어떠한 지원도 기대할 수 없다는 것을 의미하기 때문이다. 지원 서비스를 제공하기 위해서는 프로그램에 비용을 부과해야만 한다.
- 광고를 하지 않으면 많은 사람들에게 알릴 수 없다. 따라서 프로그램을 널리 알리기 위해서는 프로그램에 광고 비용를 부과해야만 한다. 무료로 구할 수 있는 프로그램을 광고하는 것은 무의미하다.
- 내 회사는 경쟁 우위를 차지하기 위해서 독점 운영체제가 필요하다.
- 프로그래머는 자신의 창의력에 대한 보상을 받을 자격이 있지 않은가? 그렇다면, 프로그래머는 그의 창의력에 대한 보상을 요구할 수 없단 말인가?
- 창작자는 창작물의 사용을 통제할 권리를 갖고 있지 않은가?
- 금전적인 특혜가 없다면 아무도 프로그래밍을 하지 않을 것이다.
- 프로그래머들도 어떤 식으로든 그들의 생계를 꾸려 나가야 하지 않은가?
대안
본사측의 반대의견
- 단순히 GNU를 무료로 얻는 것보다 GNU와 이에 대한 지원 서비스를 유료로 함께 구입하는 것을 사람들이 선호한다면, GNU를 무료로 구한 사람들에게 지원 서비스만을 제공하는 것으로 수익을 얻는 업체도 생겨날 수 있을 것이다.지원 서비스는 실제 프로그래밍 작업이 포함된 것과 단순 지원 작업으로 구별해야 하는데, 전자는 기존의 소프트웨어 업체를 통해서 해결할 수 없는 것 중의 하나이다. 만일 여러분의 문제가 다른 사람에게도 발생하는 일반적으로 것이 아니라면, 해당 업체는 그 문제를 쉽게 해결해 주려고 하지 않을 것이다.
만약 여러분의 사업이 다른 사람의 지원에 의존해야만 하는 것이라면, 여러분이 선택할 수 있는 유일한 방법은 필요한 모든 원시 코드와 도구들을 구비하는 것이다. 그런 연후에 문제를 해결할 수 있는 사람을 고용할 수 있다. 이것은 다른 사람의 자비를 구하는 것과는 다르다. 유닉스의 경우에는 원시 코드를 이용하기 위한 가격이 고가이기 때문에 대부분의 사업에서 이러한 방법이 고려의 대상이 될 수 없다. 그러나 GNU에서는 이것이 용이하다. 물론, 이 경우에도 유능한 사람을 구하지 못할 가능성은 여전히 존재하지만 이것을 GNU가 무료로 배포되는데 따른 문제라고 비난할 수는 없다. GNU는 이 세계의 모든 문제를 해결하는 것이 아니라 단지 그 중 일부를 해결할 수 있을 뿐이다. 한편, 컴퓨터에 대해 전혀 모르는 사용자들은 단순 지원 서비스를 필요로 한다. 이러한 서비스는 사용자 스스로 능히 처리할 수 있는 종류의 것들이지만 사용자들이 그 방법을 모르기 때문에 서비스가 필요한 것이다. 이런 서비스들은 단순 보수 작업이나 복구 서비스를 지원하는 회사들이 제공할 수 있다. 사용자들이 제품을 구입하고 그에 대한 서비스를 제공받는 방식을 받아들인다면, 제품을 무료로 받고 서비스에 대한 비용을 지불하는 방식에도 기꺼이 동의할 것이다. 서비스를 제공하는 회사들은 가격과 품질로 경쟁할 것이고 사용자들은 특정한 업체에 얽매이지 않아도 될 것이다. 또한, 그러한 서비스가 필요하지 않은 사람들은 서비스에 대한 비용을 들이지 않고도 프로그램들을 사용할 수 있을 것이다.
각주
참고자료
같이 보기