[1과목 1장 02절] MULTICS에서 유닉스를 거쳐 1991년 리눅스 커널이 발표되기까지의 계보를 인물·연도 중심으로 정리합니다.
🎯 이 강의 학습 목표
이 강은 1과목 1장 02절 리눅스의 역사와 발전의 앞부분입니다. 이 강을 마치면 MULTICS → UNIX → MINIX → Linux로 이어지는 계보를 순서대로 설명할 수 있고, 각 단계의 핵심 인물과 연도를 정확히 짝지을 수 있으며, BSD 계열과 System V 계열이 왜 갈라졌고 POSIX가 왜 필요했는지 말할 수 있게 됩니다.
역사 단원은 암기 과목처럼 보이지만 출제 방식은 단순합니다. "유닉스를 개발한 인물은?", "교육용 유닉스로 리눅스 개발의 시발점이 된 운영체제는?" 같은 인물·이름 매칭이 대부분입니다. 그래서 이 강은 이야기의 흐름을 먼저 잡고, 마지막에 연표로 압축하는 순서로 진행합니다. 흐름 없이 연도만 외우면 비슷한 이름들이 뒤섞여 오히려 틀립니다.
💡 시작은 실패한 프로젝트였다 — MULTICS
1960년대 중반 컴퓨터는 한 번에 한 사람만 쓸 수 있는 값비싼 장비였습니다. 여러 사람이 동시에 쓰게 하자는 목표로 MIT·벨 연구소(Bell Labs)·제너럴 일렉트릭(GE)이 공동으로 시작한 것이 MULTICS(Multiplexed Information and Computing Service) 프로젝트입니다. 이름 그대로 다중 사용자 시분할 운영체제를 지향했습니다.
MULTICS는 당시로서는 매우 앞선 개념을 담고 있었지만 지나치게 복잡했고 일정이 계속 지연되었습니다. 결국 1969년 벨 연구소가 프로젝트에서 철수합니다. 여기서 중요한 것은 MULTICS가 실패했다는 사실 자체가 아니라, 그 경험이 다음 단계의 설계 철학이 되었다는 점입니다. "크고 복잡한 것 하나"가 아니라 "작고 단순한 것 여럿을 조합한다"는 방향은 이 실패에서 나왔습니다. 리눅스의 핵심 철학으로 이어지는 출발점이 여기입니다.
💡 유닉스의 탄생과 C언어 재작성
MULTICS에서 철수한 벨 연구소의 켄 톰슨(Ken Thompson)은 1969년 연구소에 방치되어 있던 소형 컴퓨터 PDP-7에서 훨씬 가벼운 운영체제를 직접 만듭니다. 처음에는 MULTICS를 비튼 UNICS라는 농담 섞인 이름으로 불렸고, 이것이 UNIX가 되었습니다. "유닉스를 개발한 인물은 누구인가"라는 질문의 답은 켄 톰슨입니다.
초기 유닉스는 어셈블리어로 작성되었습니다. 어셈블리어는 CPU 명령과 거의 1대1로 대응하므로 빠르지만, 다른 기종으로 옮기려면 사실상 처음부터 다시 써야 합니다. 이 한계를 깬 사람이 같은 연구소의 데니스 리치(Dennis Ritchie)입니다. 그는 시스템 프로그래밍에 적합한 C언어를 만들었고, 1973년 유닉스를 C언어로 다시 작성했습니다.
이 재작성이 갖는 의미는 결정적입니다. 운영체제를 고급 언어로 쓸 수 있다면, 기종이 바뀌어도 다시 컴파일하는 것만으로 옮길 수 있습니다. 2강에서 다룬 리눅스의 이식성이라는 특징이 바로 이 전통에서 왔습니다. 시험에서 "유닉스가 널리 퍼질 수 있었던 이유"를 물으면 C언어로 작성되어 이식성이 높았기 때문이 정답입니다.
💡 갈라지는 유닉스 — BSD와 System V
당시 AT&T는 독점 규제 때문에 컴퓨터 사업을 할 수 없었고, 그 덕분에 유닉스를 대학에 소스 코드째로 저렴하게 배포했습니다. 이 우연이 유닉스를 학계 표준으로 만들었습니다.
그중 캘리포니아 대학교 버클리(UC Berkeley)가 받은 유닉스를 대폭 개량해 독자적으로 배포한 것이 BSD(Berkeley Software Distribution)입니다. 첫 배포판인 1BSD가 1977년에 나왔고, 이후 TCP/IP 네트워크 기능과 vi 편집기, C 셸(csh) 같은 지금도 쓰는 요소들이 여기서 나왔습니다. 이 작업을 주도한 인물이 빌 조이(Bill Joy)로, 뒤에 나올 에디터 단원에서 vi의 개발자로 다시 등장합니다.
한편 AT&T는 규제가 풀린 뒤 유닉스를 상용화하며 1983년 System V를 내놓습니다. 이로써 유닉스는 버클리 계열(BSD)과 AT&T 계열(System V)이라는 두 흐름으로 나뉘었고, 여기에 각 제조사가 자사 하드웨어에 맞춘 변종을 더하면서 서로 호환되지 않는 유닉스가 난립합니다. 이른바 유닉스 전쟁(Unix Wars)입니다.
| 계열 | 주도 | 특징 | 후예 |
|---|---|---|---|
| BSD 계열 | UC 버클리 | TCP/IP·vi·csh, 학술·연구 중심 | FreeBSD, OpenBSD, NetBSD, macOS의 일부 |
| System V 계열 | AT&T | 상용 유닉스의 기준, init 스크립트 방식 | Solaris, AIX, HP-UX |
호환성이 무너지자 프로그램 하나를 여러 유닉스에서 돌리는 일이 어려워졌습니다. 이 문제를 풀기 위해 IEEE가 제정한 표준 인터페이스가 POSIX(Portable Operating System Interface)이며, 규격 번호는 IEEE 1003입니다. POSIX는 운영체제가 응용 프로그램에 제공해야 할 시스템 호출·명령어·셸의 규격을 정합니다. 리눅스는 유닉스의 소스를 물려받지 않았지만 POSIX를 따르기 때문에 유닉스 계열로 분류됩니다. 이 인과관계는 시험에서 자주 묻는 부분입니다.
💡 미닉스와 리눅스 커널의 등장
유닉스가 상용화되면서 대학에서 소스를 보며 공부하기 어려워졌습니다. 그러자 네덜란드 암스테르담 자유대학교의 앤드루 타넨바움(Andrew Tanenbaum) 교수가 1987년 교육용 운영체제 MINIX(미닉스)를 만들어 자신의 교재와 함께 공개합니다. "교육용 유닉스로 리눅스 개발의 시발점이 된 운영체제는?"이라는 문제의 답이 바로 MINIX입니다. 미닉스는 마이크로커널 구조였다는 점도 함께 기억해 두십시오.
핀란드 헬싱키 대학교의 학생이던 리누스 토르발스(Linus Torvalds)는 미닉스를 쓰다가 기능 제약에 답답함을 느껴 직접 커널을 만들기 시작합니다. 1991년 8월 25일 그는 comp.os.minix 뉴스그룹에 자신이 취미로 만들고 있는 운영체제를 소개하는 글을 올립니다. 그리고 1991년 9월 17일 버전 0.01을 FTP 서버에 올립니다. 당시 코드는 약 1만 줄 규모였습니다.
초기 리눅스는 토르발스가 직접 만든 라이선스를 썼는데, 상업적 재배포를 금지하는 조건이 있었습니다. 그는 1992년 0.12 버전부터 GNU GPL로 라이선스를 바꿉니다. 이 결정이 리눅스의 운명을 갈랐습니다. GPL로 바뀌면서 전 세계 개발자가 자유롭게 참여하고 기업이 상업적으로 활용할 수 있게 되었기 때문입니다. 라이선스 변경이 기술적 개선보다 더 중요한 전환점이었다는 점이 이 단원의 핵심입니다.
이후 1994년 3월 14일 버전 1.0.0이 발표되며 실제 운영 환경에 쓸 수 있는 수준임을 선언합니다. 코드는 17만 줄 규모로 불어나 있었습니다. 1996년에는 버전 2.0이 나오며 다중 프로세서(SMP)를 지원하기 시작했고, 같은 해 펭귄 마스코트 턱스(Tux)가 채택되었습니다.
💻 실습으로 확인하기
지금 쓰는 시스템에 이 역사가 어떻게 남아 있는지 확인해 보겠습니다. 아래는 WSL 우분투에서 실행한 결과입니다.
$ cat /proc/version
Linux version 6.6.87.2-microsoft-standard-WSL2 (root@439a258ad544) (gcc (GCC) 11.2.0, GNU ld (GNU Binutils) 2.37) #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025
한 줄에 역사가 압축되어 있습니다. Linux version 6.6.87.2는 커널 버전입니다. 1991년 0.01에서 시작해 6.x대에 이르렀습니다. gcc (GCC) 11.2.0은 이 커널을 컴파일한 C 컴파일러로, 커널이 지금도 C언어로 작성되어 컴파일된다는 사실을 보여 줍니다. 1973년 데니스 리치의 결정이 지금도 유효한 셈입니다. GNU ld는 GNU 프로젝트의 링커로, 리눅스가 GNU 도구 위에서 빌드된다는 점을 드러냅니다.
$ uname -s
Linux
$ uname -o
GNU/Linux
$ uname -m
x86_64
uname -s는 커널 이름만 출력해 Linux가 나옵니다. 그런데 uname -o는 운영체제 이름을 묻는 옵션이고 GNU/Linux를 반환합니다. 이 차이가 우연이 아닙니다. 커널은 리눅스이지만, 그 위에서 도는 셸·컴파일러·기본 명령어는 GNU 프로젝트가 만든 것이라는 사실이 명령어 출력에까지 반영되어 있습니다. 이 GNU 이야기는 다음 5강에서 본격적으로 다룹니다. uname -m은 하드웨어 아키텍처를 보여 주며, 같은 커널 소스가 x86_64·ARM 등 여러 아키텍처로 컴파일된다는 점이 곧 이식성입니다.
📝 핵심 요약 — 연표와 인물 매칭
| 연도 | 사건 | 인물·주체 |
|---|---|---|
| 1960년대 중반 | MULTICS 프로젝트 시작(1969년 벨 연구소 철수) | MIT · 벨 연구소 · GE |
| 1969 | UNIX 개발(PDP-7, 어셈블리어) | 켄 톰슨 |
| 1973 | 유닉스를 C언어로 재작성 → 이식성 확보 | 데니스 리치 |
| 1977 | BSD 첫 배포(TCP/IP · vi · csh) | UC 버클리 · 빌 조이 |
| 1983 | System V 발표 / GNU 프로젝트 시작 | AT&T / 리처드 스톨먼 |
| 1987 | MINIX 공개(교육용, 마이크로커널) | 앤드루 타넨바움 |
| 1988 | POSIX(IEEE 1003) 표준 제정 | IEEE |
| 1991. 8. 25 | 뉴스그룹에 개발 중인 커널 공개 | 리누스 토르발스 |
| 1991. 9. 17 | 커널 0.01 공개 | |
| 1992 | 버전 0.12부터 GNU GPL 채택 | 리누스 토르발스 |
| 1994. 3. 14 | 커널 1.0.0 발표(운영 환경 적용 가능 선언) | 리눅스 커뮤니티 |
| 1996 | 커널 2.0(SMP 지원) · 마스코트 턱스 채택 | 리눅스 커뮤니티 |
인물을 헷갈리지 않는 방법은 역할로 묶는 것입니다. 켄 톰슨은 유닉스를 만든 사람, 데니스 리치는 C언어를 만들고 유닉스를 옮긴 사람, 빌 조이는 BSD와 vi의 사람, 타넨바움은 미닉스로 가르친 사람, 스톨먼은 자유 소프트웨어를 주장한 사람, 토르발스는 커널을 만든 사람입니다.
다음 4강에서는 이 커널이 어떻게 수백 개의 배포판으로 갈라졌는지, 레드햇·데비안·슬랙웨어 3대 계열과 커널 버전 번호 규칙을 다룹니다.
📋 실전 문제
1. 다음 중 유닉스(UNIX) 운영체제를 처음 개발한 인물로 알맞은 것은?
① 리누스 토르발스 ② 켄 톰슨 ③ 리처드 스톨먼 ④ 앤드루 타넨바움
2. 교육용 유닉스로 리눅스 개발의 시발점이 된 운영체제는?
① MINIX ② Solaris ③ MULTICS ④ FreeBSD
3. 유닉스가 다양한 기종으로 널리 이식될 수 있었던 가장 직접적인 이유는?
① 마이크로커널 구조로 설계되었기 때문
② 1973년 C언어로 다시 작성되었기 때문
③ 처음부터 GPL 라이선스로 배포되었기 때문
④ 그래픽 사용자 인터페이스를 기본 제공했기 때문
4. 다음 설명에 해당하는 것은?
서로 호환되지 않는 유닉스 변종이 늘어나자, 응용 프로그램의 이식성을 확보하기 위해 IEEE가 제정한 표준 인터페이스 규격이다.
① ANSI C ② POSIX ③ GPL ④ FHS
5. 리눅스 커널의 역사에 대한 설명으로 틀린 것은?
① 1991년 리누스 토르발스가 버전 0.01을 공개했다.
② 최초 공개 시점부터 GNU GPL 라이선스를 적용했다.
③ 1994년 버전 1.0.0이 발표되었다.
④ 미닉스를 사용하던 중 느낀 한계가 개발 동기가 되었다.
6. BSD 계열 유닉스에서 비롯된 것으로 보기 어려운 것은?
① TCP/IP 네트워크 기능 ② vi 편집기
③ C 셸(csh) ④ System V 방식의 init 스크립트
7. MULTICS 프로젝트에 대한 설명으로 옳은 것은?
① 리누스 토르발스가 개인적으로 개발한 커널이다.
② MIT·벨 연구소·GE가 공동으로 추진한 다중 사용자 시분할 운영체제 프로젝트다.
③ 교육용으로 배포된 마이크로커널 운영체제다.
④ AT&T가 상용화한 유닉스의 정식 명칭이다.
8. uname -o 명령의 실행 결과가 GNU/Linux로 나오는 이유로 가장 적절한 설명은?
① 커널 이름이 GNU이기 때문이다.
② 커널은 리눅스이고 그 위의 기본 도구 다수가 GNU 프로젝트의 산물이기 때문이다.
③ 리눅스가 GNU 커널의 한 버전이기 때문이다.
④ 배포판 이름이 항상 GNU로 시작하기 때문이다.
✅ 정답과 해설
1. 정답 ②
1969년 벨 연구소의 켄 톰슨이 PDP-7에서 유닉스를 만들었습니다. ①의 토르발스는 1991년 리눅스 커널을 만든 인물이고, ③의 스톨먼은 GNU 프로젝트와 자유 소프트웨어 운동, ④의 타넨바움은 미닉스의 개발자입니다. 이 네 인물은 한 문제에 선지로 함께 등장하는 경우가 많습니다.
2. 정답 ①
앤드루 타넨바움이 1987년 교육용으로 공개한 MINIX입니다. ③의 MULTICS는 유닉스 이전의 프로젝트로 리눅스와 직접적인 개발 계기가 아니며, ②의 Solaris는 상용 유닉스, ④의 FreeBSD는 BSD 계열 운영체제입니다.
3. 정답 ②
1973년 데니스 리치가 C언어로 유닉스를 재작성하면서, 기종이 달라도 다시 컴파일하는 것만으로 옮길 수 있게 되었습니다. ①은 유닉스·리눅스 모두 해당하지 않고(리눅스는 모놀리식), ③의 GPL은 1992년 리눅스에 적용된 것이며 유닉스와 무관합니다. ④는 이식성과 관련이 없습니다.
4. 정답 ②
POSIX이며 규격 번호는 IEEE 1003입니다. ①의 ANSI C는 C언어 표준, ③의 GPL은 소프트웨어 라이선스, ④의 FHS는 리눅스 디렉터리 계층 표준으로 각각 대상이 다릅니다.
5. 정답 ②
최초 공개 당시에는 토르발스가 직접 만든 라이선스를 사용했고 상업적 재배포를 금지했습니다. GNU GPL은 1992년 0.12 버전부터 적용되었습니다. ①·③·④는 모두 옳은 설명입니다.
6. 정답 ④
System V 방식의 init 스크립트는 이름 그대로 AT&T System V 계열의 특징입니다. ①·②·③은 모두 UC 버클리의 BSD에서 나와 지금까지 쓰이는 요소이며, vi와 csh는 빌 조이가 만들었습니다.
7. 정답 ②
MULTICS는 MIT·벨 연구소·GE가 공동 추진한 다중 사용자 시분할 운영체제 프로젝트입니다. 복잡성과 지연으로 1969년 벨 연구소가 철수했고, 그 경험이 유닉스로 이어졌습니다. ①은 리눅스, ③은 미닉스, ④는 System V에 대한 설명입니다.
8. 정답 ②
uname -s가 커널 이름으로 Linux를 출력하는 것과 달리, uname -o는 운영체제 전체를 가리켜 GNU/Linux를 반환합니다. 커널은 리눅스이지만 셸·컴파일러·기본 명령어 다수는 GNU 프로젝트의 산물이라는 사실이 반영된 것입니다. ①·③·④는 커널과 배포판, GNU의 관계를 잘못 서술했습니다.
📚 참고 자료
관련 주제
- MULTICS
- 켄 톰슨
- 데니스 리치
- 미닉스
- 리누스 토르발스
- POSIX
- BSD
- System V
- 자격증
- 자격증 강의
- 리눅스마스터 2급 완전정복
- 무료강의
- 무료 온라인 강의
- NUGUNA
- 누구나
📚 시리즈 전체 공유
리눅스마스터 2급 완전정복
이 강의가 속한 시리즈는 총 9강, 모두 무료입니다. 처음부터 배우려는 동료에게 시리즈 전체를 알려 주세요.
댓글
불러오는 중...
