GNU 프로젝트는 1983년 리처드 스톨만(Richard Stallman)이 시작한 자유 소프트웨어 프로젝트로, 목표는 완전히 자유로운(unfree가 아닌) 유닉스 호환 운영체제를 만드는 것이었습니다.
🌟 핵심 개념
- GNU란?
- “GNU’s Not Unix”의 재귀적 약자입니다.
- 유닉스와 호환되지만, 자유 소프트웨어로 구성된 운영체제를 의미합니다.
- 자유 소프트웨어(free software): \
- 여기서 “자유”는 가격이 아니라 자유(freedom)를 뜻합니다. \
- 사용자는 소프트웨어를: \
- 자유롭게 실행할 수 있어야 하고, \
- 소스 코드를 분석하고 변경할 수 있어야 하며, \
- 복사해서 배포할 수 있어야 하고, \
- 개선한 버전을 배포할 수 있어야 합니다. \
🧩 GNU 프로젝트의 구성 요소
GNU 프로젝트는 운영체제를 구성하는 여러 핵심 도구를 개발했습니다. 대표적인 것들:
- GNU Bash: 셸 (명령어 해석기) \
- GNU Core Utilities:
ls,cp,mv등 기본 유닉스 명령어 도구 모음 \ - GCC (GNU Compiler Collection): C, C++, 기타 언어 컴파일러 \
- glibc: C 표준 라이브러리 \
- GNU Emacs: 고급 텍스트 편집기 \
- GDB: 디버거 \
🐧 GNU와 리눅스의 관계
- GNU 프로젝트는 거의 완성된 운영체제를 만들었지만, 핵심인 커널이 부족했습니다. \
- 1991년 리누스 토르발스가 개발한 리눅스 커널이 이 자리를 채웠고, \
- GNU 도구 + Linux 커널 조합이 오늘날 우리가 쓰는 “GNU/Linux” 시스템입니다. \ 많은 사람들이 “리눅스(Linux)”라고 부르지만, GNU 프로젝트의 입장에서는 “GNU/Linux“라고 부르는 것이 더 정확하다고 주장합니다.
📜 GNU 프로젝트의 철학
- 소프트웨어 자유는 인권처럼 중요하다고 강조 \
- GPL(GNU General Public License): 누구나 소프트웨어를 자유롭게 사용할 수 있지만, 파생물도 똑같이 자유롭게 공개해야 하는 카피레프트(Copyleft) 원칙을 따름 \
관련 기관
- Free Software Foundation (FSF): \
- GNU 프로젝트를 후원하고 자유 소프트웨어 운동을 이끄는 비영리 단체 \
- 1985년 리처드 스톨만이 설립
