가격이 아니라 사용자의 자유
GNU는 자유롭게 실행·연구·수정·공유할 수 있는 유닉스 호환 운영체제를 만들려는 프로젝트임. 이름은 ‘GNU's Not Unix’를 다시 줄여 쓴 재귀적 약자이며, 기존 유닉스와 호환되면서도 이용자가 소프트웨어를 통제할 수 있는 시스템을 지향함.
여기서 자유 소프트웨어의 ‘자유’는 단순히 돈을 받지 않는다는 뜻이 아님. 어떤 목적으로든 프로그램을 실행하고, 소스 코드를 연구해 고치며, 원본과 수정본을 나눌 수 있는 권리를 뜻함. 유료 배포와 지원 서비스도 가능하므로 비상업 소프트웨어와 같은 말로 이해하면 오해가 생김.
운영체제를 이루는 도구들
운영체제는 커널 하나만으로 이루어지지 않음. 명령을 받아 실행하는 셸, 소스 코드를 번역하는 컴파일러, 프로그램이 공통으로 사용하는 라이브러리, 파일을 다루는 명령과 편집 도구 등이 함께 필요함. GNU는 Emacs, GCC, Bash 같은 구성요소를 만들어 기존 유닉스에서도 사용할 수 있도록 배포하며 참여자를 넓혀 감.
개별 프로그램이 먼저 널리 쓰일 수 있었던 점은 GNU의 특징이었음. 전체 운영체제의 완성을 기다리지 않고 개발 도구를 쓰고 고칠 수 있었으며, 이 도구들은 GNU라는 이름을 의식하지 않는 개발자의 작업에도 영향을 미치게 됨.
GNU와 리눅스, 그리고 Hurd
리눅스는 원래 리누스 토르발스가 개발한 커널의 이름이고, GNU는 그보다 앞서 시작된 운영체제 개발 프로젝트임. 1992년 리눅스가 자유 소프트웨어 라이선스를 채택하면서 GNU의 도구들과 결합할 수 있는 중요한 기반이 마련됨. 실제 배포판을 구성하는 데에는 다른 프로젝트와 배포판 개발자들의 기여도 필요했음.
GNU 프로젝트는 이런 결합과 자신의 기여를 드러내기 위해 ‘GNU/Linux’라는 명칭을 권장함. 일상적으로 쓰이는 ‘리눅스’와 이 명칭을 다룰 때에는 커널과 전체 시스템의 차이, 그리고 명칭에 담긴 관점을 함께 설명하는 것이 정확함. GNU 자체의 커널 구상인 Hurd는 별도로 개발됐으며, 그 지연과 리눅스 기반 시스템의 확산은 서로 구분해서 살펴볼 필요가 있음.
프로젝트를 지탱한 조직과 규칙
1985년 설립된 자유 소프트웨어 재단(FSF)은 GNU 개발과 사용자의 자유를 지원하는 비영리 조직임. GNU라는 개발 프로젝트와 FSF라는 조직은 밀접하지만 동일한 개념은 아님. GNU GPL은 소프트웨어를 배포받은 사람의 자유가 다음 사용자에게도 이어지도록 조건을 정한 라이선스이며, GNU 밖의 여러 프로젝트에도 쓰임.
GNU의 의미는 특정 운영체제의 완성 여부에만 있지 않음. 공동으로 고칠 수 있는 개발 도구, 공유의 조건을 정한 라이선스, 소프트웨어를 통제할 권리에 관한 논의를 함께 발전시킨 데 있음. Guix처럼 환경 구성과 관리에 초점을 맞춘 도구의 등장도 이 역사가 초기 유닉스 대체 계획에 머물지 않았음을 보여 줌.