"리눅스"라 부르는 것의 반은 리눅스가 아니다
RHEL(Red Hat Enterprise Linux)은 연 수백만 원짜리 유료 구독이다. 그런데 Rocky Linux는 RHEL과 거의 똑같이 생겼으면서 무료다. 같은 소스에서 나왔는데 한쪽만 돈을 받는다. 처음 보면 모순처럼 보인다.
이 모순은 "리눅스"라는 단어가 숨기고 있는 것을 한 겹 벗기면 사라진다. 이 글은 그 한 겹을 다룬다 — 정확히 "리눅스"가 가리키는 것이 무엇인지, 그리고 왜 같은 코드에서 유료와 무료가 동시에 나올 수 있는지.
"리눅스"는 사실 커널이다
정확히 말해 "리눅스(Linux)"는 커널 그 자체를 가리킨다. 우리가 "리눅스 OS"라 부르는 것은 사실 커널 하나가 아니라, 커널 + 사용자 공간 도구 + 패키지 관리자를 한 묶음으로 포장한 배포판(distribution)이다.
리눅스 커널 단독으로는 부팅조차 안 된다. 셸도, 명령어도, 라이브러리도 없기 때문이다. 그래서 커널만으로는 쓸 수 없고, GNU 도구(bash, coreutils, gcc)와 결합해야 비로소 운영체제가 된다. FSF가 "GNU/Linux"라 부르자고 고집하는 이유가 여기에 있다.
| 커널 | 배포판 | |
|---|---|---|
| 비유 | 자동차의 엔진 | 완성된 자동차 모델(세단, SUV, 트럭) |
| 단독으로 | 의미 없음 — 엔진만으론 못 굴러 | 바로 운전 가능 |
| 같은 것으로 다양화 | 같은 엔진 → 여러 차종 | 같은 커널 → Rocky, Ubuntu, RHEL… |
이 비유는 "핵심 부품 vs 완성품" 관계만 잡는다. 자동차는 물리적 1대라 복제 불가지만 배포판은 무한 복제되고, 자동차 엔진 교체는 매우 어렵지만 커널은 비교적 독립적으로 교체·업그레이드된다. 정확한 구조는 아래에서.
이 구분을 못 하면 뒷글의 어휘가 전부 흔들린다. "리눅스에서 dnf가 안 돼요"라는 말은 정확히는 "RHEL 계열 배포판에서"라는 뜻이지, 커널 수준의 이야기가 아니다.
커널 하나인데 왜 배포판은 수백 개일까
"리눅스" 커널은 사실상 하나다. 그런데 Rocky, Ubuntu, Debian, Arch… 배포판은 수백 개다. 같은 엔진으로 만든 여러 자동차 모델이라 생각하면 된다.
많은 사람이 "배포판 = 패키지 관리자"로 요약하지만, 그건 표면이다. 진짜 차이는 세 가지에서 온다: 패키지 관리 방식, 릴리스 철학, 누구를 위한 배포판인가.
flowchart TD
ROOT[독립 루트] --> RH[Red Hat 계열<br/>RPM / dnf]
ROOT --> DEB[Debian 계열<br/>.deb / apt]
ROOT --> ARCH[Arch 계열<br/>pacman, 롤링]
ROOT --> SUSE[SUSE 계열<br/>RPM / zypper]
RH --> FED[Fedora — 상류, 최신]
FED --> RHEL[RHEL — 상용, 장기지원]
RHEL --> CST[CentOS Stream — 개발 브랜치]
RHEL --> RL[Rocky Linux]
RHEL --> AL[AlmaLinux]
DEB --> DEB1[Debian — 안정 중심]
DEB1 --> UB[Ubuntu]
| 가문 | 패키지 관리자 | 패키지 형식 | 대표 |
|---|---|---|---|
| Red Hat | dnf |
.rpm |
RHEL, Rocky, Alma, Fedora |
| Debian | apt/dpkg |
.deb |
Debian, Ubuntu, Mint |
| Arch | pacman |
— | Arch, Manjaro |
| SUSE | zypper |
.rpm |
openSUSE, SLES |
패키지 관리자는 표면이다 — 릴리스 철학이 진짜 갈린다
같은 RPM을 써도 Fedora와 RHEL은 완전히 다른 동물이다. 차이는 얼마나 자주, 얼마나 오래 갱신하느냐에 있다.
| 전략 | 갱신 속도 | 지원 기간 | 무엇을 포기하는가 |
|---|---|---|---|
| 롤링(Arch, Tumbleweed) | 계속 최신 | 없음(계속 굴리면 영원) | 안정성. 한 번 업데이트가 시스템을 깰 수 있음 |
| 포인트 릴리스(Debian, Ubuntu) | 6개월~2년 주기 | LTS 5년 | 최신 기능. 검증된 버전에 머무름 |
| 엔터프라이즈(RHEL, Rocky) | 보수적, 큰 점프만 | 10년 | 최신성. 안정·패치 SLA가 우선 |
여기서 "안정"이란 "안 죽는다"가 아니라 "API가 안 바뀐다"다. RHEL/Rocky는 10년 동안 같은 커널·라이브러리 주버전을 유지하며, 보안 패치만 역이식(backport)해 넣는다. 그래서 5년 전에 짠 서비스가 업그레이드 없이 계속 돈다. 대가는 — 커널은 6.12 쓰면서도 사용자 공간 도구는 구버전에 머무를 수 있다는 모순(이건 Rocky 10의 함정이기도 하다, 08장).
상류에서 하류로 — 코드는 어디서 흐르는가
Red Hat 계열은 단방향 파이프라인이다. 위쪽에서 실험하고, 아래로 갈수록 굳어진다.
flowchart LR
UP["상류(upstream)<br/>커널·프로젝트 원본"] --> FED["Fedora<br/>실험장, 최신"]
FED --> CST["CentOS Stream<br/>RHEL의 다음 버전 양산"]
CST --> RHEL["RHEL<br/>안정화, 상용"]
RHEL --> RL["Rocky / Alma<br/>RHEL 재구축(무료)"]
- Fedora가 새 기능을 시험한다(커널·systemd·GNOME 최신).
- CentOS Stream이 RHEL의 다음 마일스톤을 굴리며(RHEL의 상류 겸 개발 브랜치).
- RHEL이 그 중 검증된 것을 10년 지원 상용으로 얼린다.
- Rocky/Alma가 그 얼려진 RHEL을 소스에서 그대로 다시 묶는다.
→ 같은 코드가 흐르되, 어느 단계에서 끊어 가져오느냐가 배포판의 정체성이다. 이 흐름을 모르면 "Rocky가 RHEL보다 빠르냐 느리냐" 같은 질문에 헷갈린다(답: 같다. 같은 RHEL 소스에서 나왔으니).
왜 이 저장소는 Rocky 10인가
학습엔 안정성도 필요하지만, 너무 구버전이면 안 된다. Ubuntu LTS는 편하지만 커널·도구가 RHEL 계열과 달라 실무(특히 국내 서버 시장의 RHEL 환경)와 괴리된다. 반대로 Arch는 너무 날카롭다. Rocky는 RHEL과 바이너리 호환이면서 무료 — 엔터프라이즈 급 안정성을 공짜로 쓸 수 있는 유일한 선택지다. 그래서 이 저장소 전체의 실습 기준이다.
왜 RHEL은 유료이고 Rocky는 무료인가 — GPL의 역설 풀기
이제 처음의 모순으로 돌아가자. 답은 리눅스 커널의 라이선스인 GPL에 있다.
핵심 오해 하나: "리눅스는 무료"라고들 한다. 틀렸다. 리눅스는 무료(free of charge)가 아니라 자유(freedom)다. GPL은 비용이 아니라 소스코드 공개 의무를 다룬다.
- GPL은 판매를 금지하지 않는다. 팔아도 된다.
- 대신 수정·재배포할 때 소스코드를 공개해야 한다(copyleft).
- 그 공개된 소스로 누구나 똑같이 재구축할 수 있다.
RHEL은 GPL을 지키면서도 돈을 받는다. 돈을 받는 것은 코드가 아니라 지원·인증·안정성 보증·패치 SLA 때문이다. 그리고 RHEL이 공개한 GPL 소스를 그대로 받아 RHEL과 바이너리 호환되게 다시 묶은 무료 배포판이 Rocky Linux, AlmaLinux다.
모순이 아니라 GPL이 설계한 대로 작동하는 것이다. "자유"는 "공짜"를 뜻하지 않는다.
| 항목 | 내용 |
|---|---|
| 현재 커널 라이선스 | GPL-2.0-only |
| 핵심 | copyleft — 2차 저작물도 동일 라이선스로 공개 의무 |
| 허용 | 자유 복제·수정·재배포·상업 이용(판매 가능) |
| 의무 | 수정·재배포 시 소스코드 공개 |
copyleft가 실제로 강제하는 것과 아닌 것
"copyleft가 전염된다(viral)"는 표현이 자주 나오지만, 오해를 낳는다. GPL이 강제하는 것은 정확히 "배포(distribution)할 때"뿐이다.
- 강제한다: GPL 코드를 가져다 수정한 뒤 남에게 배포하면, 그 수정본의 소스도 GPL로 공개.
- 강제하지 않는다: 회사 안에서만 쓰고 밖으로 내보내지 않으면? 공개 의무 없음. GPL 코드를 고쳐서 사내 서버에만 굴려도 소스를 공개할 필요가 없다.
- 강제하지 않는다: GPL 코드와 별도 프로세스로 통신(예: 명령행으로 GPL 도구를 호출)하는 자기 코드는 GPL에 물들지 않는다.
즉 GPL은 "전염"이 아니라 "배포 조건"이다. 이 선을 알아야 "회사에서 GPL 쓰면 소스 다 공개해야 하나?" 같은 공포가 사라진다.
왜 커널은 영원히 GPL-2.0-only인가
커널 라이선스 표기에 "only"가 붙는 이유가 있다. 2007년 GPLv3가 나왔지만, 리눅스 커널은 이전할 수 없다. 이유는 단순하다 — 수만 명의 기여자 각각이 자기 코드의 저작권을 갖고 있어, 전원 동의 없이는 라이선스를 바꿀 수 없다. 일부 기여자는 이미 사망했고, 연락이 안 닿는 경우도 많다.
게다가 Torvalds 본인이 "GPLv2로 충분하다"며 이전에 부정적이다. 그래서 커널은 GPLv2에 영원히 고정되고, 새 라이선스 논쟁이 나와도 "GPL-2.0-only" 표기는 변하지 않는다. 이것은 결함이 아니라, 커널이 거대한 협업 결과물이기에 치르는 비용이다.
syscall 예외 — 왜 독점 프로그램이 리눅스에서 돌아는가
GPL은 2차물에 같은 라이선스를 강제한다. 그렇다면 리눅스에서 돌아가는 모든 상용 프로그램(Oracle DB, 게임, 독점 드라이버)도 소스를 공개해야 하는 게 아닌가? 그렇지 않다. 커널은 syscall 경계를 예외로 둔다 — 시스템 콜로 커널을 이용하는 응용은 GPL 강제 대상이 아니다(커널 소스 COPYING 파일에 명시).
응용과 커널은 "한 프로그램"이 아니라 "정의된 인터페이스(syscall ABI)로 대화하는 별개의 프로그램"으로 본다. 응용은 GPL 영향을 받지 않고, 커널 자체만 GPL로 보호되는 구조다. 이 예외가 없었다면 상용 생태계가 리눅스를 외렸을 것이다. 리눅스 생태계가 폭발적으로 성장한 핵심 설계 결정 중 하나다.
30년이 한 줄로 — 잠깐의 역사
이 모든 것의 시작은 1991년이다. 핵심 날짜만 짚는다.
flowchart LR
A["1983<br/>GNU 프로젝트<br/>Stallman"] --> B["1991-08-25<br/>Torvalds 발표<br/>comp.os.minix"]
B --> C["1992<br/>GPLv2 도입"]
C --> D["1994-03-14<br/>1.0 정식"]
D --> F["현재<br/>GPL-2.0-only"]
- 1991-08-25: Linus Torvalds(21세, 헬싱키대)가
comp.os.minix에 "취미 프로젝트"라며 올린 글. 리눅스의 공식 생일이다. - 1992: 처음엔 상업적 사용을 금지하는 자체 라이선스였다가 GPLv2로 바꿨다. Torvalds는 훗날 이를 "내 인생 최고의 결정"이라 불렀다. 이 결정이 없었다면 RHEL/Rocky 이야기도 없었다.
- 1994-03-14: 1.0 정식 릴리스(약 17만 줄). 오늘날 커널은 수천만 줄, 전 세계 수천 명이 하루에도 수백 커밋을 넣는다.
왜 1991년에 리눅스가 나왔는가. 당시 상용 유닉스(Sun Solaris, HP-UX, IBM AIX)는 하드웨어 회사마다 비싸게 팔아 학생이나 소규모 연구자는 엄두를 못 냈다. 마침 GNU 프로젝트(Stallman, 1983)가 셸·컴파일러·명령어는 다 만들어놓고 커널(Hurd)만 못 만들고 있었다. Torvalds가 만든 커널이 그 빈자리를 채웠다. "GNU 도구 + 리눅스 커널"이 자연스럽게 결합해 오늘날의 리눅스 OS가 됐다. 이 역사가 "왜 배포판이 커널+도구 묶음인가"의 답이다.
취미 프로젝트가 어떻게 상용 유닉스를 이겼는가
1991년 "취미 프로젝트"가 2020년대에 슈퍼컴퓨터 TOP500의 100%, 안드로이드폰 전체, 클라우드 인프라 대부분을 지배하게 된 과정은 한 사람의 천재로 설명되지 않는다. 핵심은 개발 모델에 있다.
리눅스 커널은 계층적 메인테이너(hierarchical maintainer) 구조로 굴러간다. Torvalds가 최종 병합권을 쥐고, 그 아래 서브시스템별 중간 메인테이너(lieutenant)들이 각 영역(파일시스템·네트워크·스케줄러 등)의 품질을 검수해 Torvalds에게 올린다. 한 명이 전부 읽는 게 아니라, 신뢰의 계단을 통해 수천 명의 기여를 걸러 올린다.
여기에 "충분한 눈이 있으면 모든 버그는 얕다"(Linus's law) — Eric Raymond가 명명한 통찰이 작동한다. 소스가 공개되어 누구나 볼 수 있으면, 버그가 전 세계 수만 명의 눈에 빠르게 노출되어 잡힌다. 닫힌 상용 유닉스가 수십 년 못 잡은 버그를 리눅스는 몇 주 만에 잡는 일이 흔해졌다.
이 두 개 — 계층적 검수 + 열린 시야 — 가 "혼자 만든 커널"을 "인류가 함께 만드는 인프라"로 바꿨다. 1.0(1994, 약 17만 줄)이 오늘날 커널 6.x(수천만 줄, 전 세계 수천 명 기여, 하루 수백 커밋)이 될 수 있었던 이유다. 단일 기업이 이 규모를 따라잡는 건 불가능해졌고, 그게 곧 상용 유닉스의 패배 본질이다.
CentOS는 어디로 갔나 — Rocky가 그 자리를 이었다
Rocky가 왜 존재하는지 이해하려면 CentOS 이야기를 짚고 넘어가야 한다. 과거 구 CentOS는 RHEL의 무료 바이너리 클론이었다. 2021년 Red Hat이 CentOS를 종료시키고 CentOS Stream(RHEL의 상류 개발 브랜치)으로 방향을 바꿨다. 그 빈자리 — "무료 RHEL 호환 배포판" — 를 메운 것이 Rocky Linux와 AlmaLinux다.
- Fedora: Red Hat 후원 커뮤니티 상류. 최신 기능 선별. RHEL의 실험장(proving ground).
- RHEL: Fedora에서 파생된 상용 엔터프라이즈 OS. 약 10년 장기 지원.
- CentOS Stream: RHEL의 상류·개발 브랜치. (구 CentOS와 다르다.)
- Rocky Linux: 2021년 Gregory Kurtzer(CentOS 공동 창립자)가 시작한 RHEL 바이너리 호환 무료 재구축. 이름은 고인이 된 공동 창립자 Rocky McGaugh에게서. 이 저장소의 실습 환경이다.
2023년, Red Hat이 소스를 막았다 — Rocky는 어떻게 살아남았나
여기까지 읽으면 한 가지 의문이 든다. "Rocky가 RHEL 소스를 그대로 받아 재구축한다고 했는데, Red Hat이 그 소스를 안 주면?" 그 일이 실제로 일어났다.
2023년 6월, Red Hat은 RHEL 소스 코드의 공개 재배포를 중단했다. 더 이상 누구나 ftp에서 SRPM(source RPM)을 받아갈 수 없게 했다. RHEL 소스는 (1) 유료 고객에게만 Red Hat Customer Portal로, (2) 일반에는 CentOS Stream 경로로만 제공한다고 발표했다.
표면적 이유는 "무료 재구축 배포판이 Red Hat의 상업 모델을 무임승차한다"는 불만이었다. 하지만 GPL의 관점에서 보면 미묘하다 — GPL은 소스 공개를 의무로 하지만, 누구에게나 공개하라고는 명시하지 않는다. "배포 대상(고객)에게는 소스를 줘야 한다"는 게 GPL의 요지다. Red Hat은 고객에게는 소스를 주되, 재배포를 사실상 막는(고객 계약상) 방식으로 copyleft의 글자를 지키면서 의도는 희석했다. 커뮤니티는 이를 "GPL 정신 위반"과 "GPL 글자 준수" 사이의 회색지대로 받아들였다.
Rocky와 AlmaLinux는 죽지 않았다. 그들은 방식을 바꿨다 — CentOS Stream의 소스(공개됨)를 뼈대로 삼고, Red Hat이 공개하는 패치와 공개 채널의 소스를 조합해 RHEL과 바이너리 호환을 유지한다. 완전히 동일한 경로는 아니지만, 실사용에 문제없는 호환성을 유지하고 있다(2026년 현재 Rocky 10이 정상 출시된 것이 증거).
이 사건이 시사하는 것: "무료" RHEL 재구축은 Red Hat의 자비가 아니라 GPL이라는 계약 위에 서 있다. 계약의 글자를 지키면서 의도를 비틀 수는 있어도, 완전히 없앨 수는 없다. 리눅스 생태계의 자유는 도덕이 아니라 라이선스라는 법적 구조로 보장된다.
Rocky 10에서 직접 확인하기
# Rocky 10
cat /etc/redhat-release
확인할 것: "Red Quartz"라는 코드명과 버전 10.x. Rocky가 Red Hat 계열임을 시스템이 스스로 선언한다.
Rocky Linux release 10.x (Red Quartz)
uname -r
확인할 것: 6.12.x. 이 커널 버전으로 EEVDF 스케줄러 사용 여부를 판별한다(03장).
6.12.0-xxx.el10.x86_64
cat /etc/os-release
확인할 것: ID_LIKE="rhel centos fedora" 줄. Rocky가 RHEL 계열임을 스스로 선언하며, 패키지 호환성 판단에 쓰인다.
NAME="Rocky Linux"
VERSION="10.x (Red Quartz)"
ID="rocky"
ID_LIKE="rhel centos fedora"
흔히 묻는 것, 흔히 틀리는 것
| 오해 | 정정 |
|---|---|
| "리눅스 = 운영체제" | 리눅스는 커널이다. OS가 되려면 배포판(커널+GNU 도구+패키지관리자)이 필요 |
| "리눅스는 무료니까 RHEL이 유료인 건 모순" | GPL은 자유(freedom)지 무료(free)가 아님. RHEL은 GPL 소스를 공개하면서 유료 판매 정상 |
| "CentOS = Rocky" | 구 CentOS는 종료. CentOS Stream은 RHEL 상류(개발). Rocky/Alma가 구 CentOS 자리 계승 |
| "GPL은 무조건 무료 배포 강제" | 아니다. 팔아도 됨. 단 소스 공개 의무 |
| "GPL 코드를 쓰면 내 코드도 무조건 공개해야" | 배포할 때만. 사내에서만 쓰고 밖으로 안 내보내면 공개 의무 없음 |
| "GPL은 전염성(viral)이다" | "전염"이 아니라 "배포 조건". syscall 경계 밖 응용은 GPL에 물들지 않음 |
| "배포판이 다르면 완전히 다른 OS" | 아니다. 커널은 같고 패키지 관리자·철학만 다름. 개념은 공통 |
| "Rocky가 RHEL을 복사한 불법" | 아니다. GPL이 허용하는 정상적 재구축. 2023년 소스 제한 이후엔 경로만 바뀜 |
요약 — 이 글의 결론
- "리눅스"는 커널이다. 단독 부팅 불가. 우리가 쓰는 건 커널+GNU 도구+패키지관리자 묶음인 배포판.
- 배포판은 커널 하나로 수백 개. 진짜 차이는 패키지 관리자가 아니라 릴리스 철학(롤링 vs 포인트 vs 엔터프라이즈)과 상류-하류 코드 흐름. Rocky 10은 Red Hat 계열(RPM/dnf, 10년 지원).
- GPL은 자유지 무료가 아니다. 판매 가능, 단 소스 공개 의무(배포 시만). 이게 RHEL(유료)과 Rocky(무료)가 같은 소스에서 공존하는 이유.
- 커널은 GPL-2.0에 영원히 고정 — 수만 기여자 동의 없이 GPLv3로 못 옮김. 그래서 "GPL-2.0-only".
- syscall 예외 덕에 독점 응용도 리눅스에서 동작 — 커널만 GPL 보호, 응용은 자유. 생태계 폭발의 핵심 설계.
- Rocky는 구 CentOS의 빈자리를 메운 RHEL 바이너리 호환 무료 재구축. 2023년 Red Hat의 소스 공개 제한에도 CentOS Stream 경로로 살아남았다 — 리눅스의 자유는 도덕이 아니라 GPL이라는 계약 위에 있다.
- 리눅스가 이긴 이유는 천재 한 명이 아니라 계층적 메인테이너 구조 + "충분한 눈"의 개방 모델이 만들어낸 협업 규모.
생각해 볼 문제
- 누군가 "리눅스는 공짜 운영체제"라고 말한다. 한 문장으로 정정하면?
- 같은 RHEL 소스에서 RHEL(유료)과 Rocky(무료)가 나온다. RHEL 구독자가 돈을 내는 것은 정확히 무엇일까?
- syscall 예외가 없었다면 리눅스 생태계에 구체적으로 어떤 일이 벌어졌을까?
- 회사에서 GPL 라이브러리를 고쳐 쓰려 한다. "소스 공개 안 하려면?" 조건을 세 가지 말하라.
- 배포판이 100개인데 "리눅스를 배운다"는 말은 무엇을 배운다는 뜻일까 — 커널을, 배포판을, 둘 다를?
- Red Hat이 2023년 RHEL 소스 공개를 막았는데 Rocky가 살아남은 것은, GPL이 결국 "글자"를 지킨 것인가 "정신"을 지킨 것인가?
참고
- History of Linux - Wikipedia - 접근 2026-07-09 (역사/날짜 교차검증)
- Linux kernel version history - Wikipedia - 접근 2026-07-09
- Comparison of Linux distributions - Wikipedia - 접근 2026-07-09
- Rocky Linux Release Notes - 접근 2026-07-09 (Rocky 10 사양)
- 커널 라이선스·syscall 예외: 커널 소스
COPYING파일, 또는man 7 copyright - copyleft·GPL 해석: GPLv2 원문(gnu.org), FSF FAQ - 접근 2026-07-09
- 2023 RHEL 소스 정책 변경: Red Hat 공식 발표(2023-06-21, "Furthering the evolution of CentOS Stream"), Rocky Linux/AlmaLinux 공식 응답문 - 접근 2026-07-09
- Linus's law·개발 모델: Eric S. Raymond, The Cathedral and the Bazaar(1997)
'Tech Artifacts > Linux' 카테고리의 다른 글
| Linux - 06. io device (0) | 2026.07.09 |
|---|---|
| Linux - 05. filesystem (0) | 2026.07.09 |
| Linux - 04. memory (0) | 2026.07.09 |
| Linux - 03. process (0) | 2026.07.09 |
| Linux - 02. boot systemd (0) | 2026.07.09 |
