타넨바움-토르발스 논쟁

1992년부터 앤드루 타넨바움과 리누스 토르발스는 인터넷을 통해 리눅스 커널과 전반적인 커널 아키텍처에 대해 서면으로 토론을 벌였다. 미닉스의 개발자인 타넨바움은 유즈넷 토론 그룹 에서 이 토론을 시작하며, 마이크로커널이 모놀리식 커널보다 우월하므로 1992년에도 리눅스는 구식이라고 주장했다.
이 토론은 때때로 플레임 전쟁으로 간주되기도 했다.

## 토론
[섬네일|[감독 모드에서 전적으로 커널 공간을 실행하는 모놀리식 커널 그래픽]]
[섬네일|[마이크로커널 아키텍처는 사용자 공간 서버 프로그램에 의존한다]]

이 토론은 처음에는 커널 설계에 대한 진부한 발언들로 비교적 온건하게 시작되었지만, 게시물이 반복될수록 점차 더 상세하고 정교해졌다. 커널 설계 외에도 이 토론은 미래에 어떤 마이크로프로세서 명령어 집합 아키텍처가 다른 아키텍처를 능가할 것인지와 같은 여러 다른 주제로 확장되었다. 타넨바움과 토르발스 외에도 초기 리눅스 커널 개발자이자 최초의 리눅스 배포판 중 하나인 소프트랜딩 리눅스 시스템의 개발자인 피터 맥도날드, 리눅스 커널의 핵심 개발자 중 한 명인 데이비드 S. 밀러, 그리고 최초의 북아메리카 리눅스 커널 개발자인 시어도어 초 등 여러 다른 사람들이 토론에 참여했다.

토론은 1992년 1월 29일 타넨바움이 에 "LINUX is obsolete"라는 제목의 게시물로 리눅스 커널에 대한 비판을 처음 올리면서 시작되었다. 그는 모놀리식 커널 설계가 능력에 해롭다는 점을 지적했다. 그는 마이크로커널 설계가 왜 더 낫다고 생각하는지 처음에는 기술적으로 자세히 설명하지 않았지만, 주로 이식성과 관련이 있다고 주장하며, 리눅스 커널이 너무 X86 프로세서 계열에 밀접하게 묶여 있어 미래에는 쓸모가 없을 것이라고 했다. 이 아키텍처는 그때까지 대체될 것이기 때문이었다. 그는 상황을 설명하기 위해 1991년에 모놀리식 커널을 작성하는 것이 "1970년대로의 거대한 후퇴"라고 언급했다.

비판이 공개 뉴스그룹에 게시되었으므로 토르발스는 직접 응답할 수 있었다. 그는 하루 뒤에 MINIX가 본질적인 설계 결함(구체적인 예로 멀티스레딩의 부재를 언급)이 있다고 주장하면서, 마이크로커널 설계가 "이론적이고 미학적인" 관점에서 우월하다는 것을 인정했다. 그는 또한 자신이 여가 시간에 리눅스 커널을 개발하고 무료로 배포하고 있기 때문에(당시 타넨바움의 MINIX는 무료가 아니었다) 타넨바움이 자신의 노력에 반대해서는 안 된다고 주장했다. 또한 그는 리눅스를 인텔 80386용으로 특별히 개발한 것은 부분적으로 토르발스 자신의 학습 목적이 있었기 때문이라고 언급했다. 그는 이 때문에 커널 자체가 MINIX보다 덜 이식성이 있다는 점을 인정했지만, 이것이 애플리케이션 프로그래밍 인터페이스를 더 간단하고 이식성 있게 만들기 때문에 용인될 수 있는 설계 원칙이라고 주장했다. 이러한 이유로 그는 "리눅스가 MINIX보다 더 이식성이 좋다"고 말했다.

리누스의 답변에 이어 타넨바움은 MINIX의 한계가 자신이 교수라는 점과 관련이 있다고 주장하면서, 시스템이 일반 학생의 상당히 제한적인 하드웨어에서 실행될 수 있어야 한다는 요구 사항을 언급했다. 그는 이 하드웨어가 인텔 8088 기반 컴퓨터이며 때로는 하드 드라이브조차 없다고 지적했다.
당시 리눅스는 훨씬 더 강력하고 비싼 프로세서인 인텔 386용으로 특별히 제작되었다. 타넨바움은 또한 특히 "...약 1년 전부터 [MINIX]는 두 가지 버전이 있었는데, 하나는 PC용(360K 플로피 디스크)이고 다른 하나는 286/386용(1.2M)이었다. PC 버전이 286/386 버전보다 2대 1로 더 많이 팔렸다"고 언급했다. 그는 리눅스가 무료였음에도 불구하고 학생들이 실행하는 데 필요한 비싼 하드웨어를 감당할 수 없었기 때문에 학생들에게는 실행 가능한 선택지가 아니었으며, MINIX는 "일반적인 4.77 MHz PC에 하드 디스크 없이" 사용할 수 있었다고 언급했다. 이에 대해 유즈넷 그룹의 다른 사용자 케빈 브라운은 타넨바움이 리눅스가 386 아키텍처에 묶여 있는 것에 대해 불평해서는 안 된다고 답했다. 이는 운영 체제 설계에 대한 지식 부족이 아닌 의식적인 선택의 결과였기 때문이었다. 그는 "...리눅스의 명시적인 설계 목표는 386 아키텍처의 특수 기능을 활용하는 것이었다. 그래서 정확히 당신의 요점이 무엇인가? 다른 설계 목표는 다른 설계를 낳는다"고 말했다.
그는 또한 저렴한 하드웨어용으로 시스템을 특별히 설계하는 것이 미래에 이식성 문제를 야기할 것이라고 말했다. MINIX가 최신 하드웨어를 완전히 지원하지 않았음에도 불구하고 타넨바움은 X86 아키텍처가 미래에 다른 아키텍처 설계에 의해 능가될 것이므로 이 문제를 해결할 필요가 없다고 주장하며 "물론 5년 후에는 다를 테지만, 5년 후에는 모두 200 MIPS, 64M SPARCstation-5에서 무료 GNU를 실행할 것이다"라고 지적했다. 그는 리눅스 커널이 386 아키텍처에 너무 밀접하게 묶여 있기 때문에 하드웨어가 발전함에 따라 결국 유행에서 벗어날 것이라고 말했다.

토르발스는 그 시점에서 논의를 끝내려고 시도하며, 타넨바움의 초기 발언에 과잉 반응하지 말았어야 했다고 느꼈고, 사과하기 위해 개인 이메일을 작성하고 있다고 말했다. 그러나 그는 나중에 토론을 계속했다.

## 사후
이러한 논쟁에도 불구하고, 토르발스와 타넨바움은 서로 좋은 관계를 유지하고 있는 것으로 보인다. 토르발스는 자신이 타넨바움에게 악의를 품고 있지 않다는 것을 이해해 주기를 바랐고, 타넨바움은 아이디어나 기술적 문제에 대한 의견 불일치가 개인적인 불화로 해석되어서는 안 된다고 강조했다.

### 1990년대 초의 관점

1999년에 오라일리 미디어의 책 Open Sources: Voices from the Open Source Revolution에 이 문제와 전체 초기 토론이 출판되었을 때, 이 토론이 "당시 OS 설계에 대한 세상의 사고방식"을 잘 보여준다고 언급되었다.

참여자 케빈 브라운에 따르면, 당시 386 프로세서는 "몇 배로" 가장 널리 사용되는 칩이었고, 486은 고급 컴퓨터에 사용되었으며, 286은 거의 구식이 되었고, 월드 와이드 웹은 아직 널리 사용되지 않았다. 리눅스에 대한 타넨바움의 주장 중 하나는 리눅스가 X86 아키텍처와 명령어 집합에 너무 밀접하게 묶여 있어 실수라고 생각했다는 점이었다. 현대 리눅스는 이제 더 이식성이 좋은 코드베이스를 가지고 있으며, 많은 다른 프로세서 아키텍처로 이식되었다.

이 토론에서 반복적으로 등장하는 또 다른 주제는 리눅스와 MINIX의 대안, 즉 GNU (허드)와 4.4BSD에 대한 논의이다. 타넨바움은 그의 첫 번째 게시물에서 전자를 제안하며, 리눅스와 달리 그것이 "현대적인" 시스템이라고 언급했다. 그의 두 번째 게시물에서 그는 "... 5년 후에는 모두 200 MIPS, 64M SPARCstation-5에서 무료 GNU를 실행할 것이다"라고 언급했다. 여러 토론자들은 GNU가 적합한 대안이라는 의견에 동의하지 않았다. 케빈 브라운은 이를 베이퍼웨어라고 부르며, 리눅스가 계속해서 흔해지고 일반 대중에게 더 접근 가능해질 X86 아키텍처로부터 이점을 얻을 가능성이 높다고 말했다. 초기 리눅스 기여자 시어도어 초는 마이크로커널 접근 방식이 이점을 가질 수 있지만, "...리눅스는 여기에 있고, GNU는 그렇지 않다. 사람들은 리누스가 리눅스를 작업한 것보다 훨씬 오랫동안 허드에 대해 작업해왔다"고 말했다.
GNU가 커널을 만들려는 노력을 알고 있던 토르발스는 "만약 GNU 커널이 지난 봄에 준비되었다면, 나는 내 프로젝트를 시작하는 수고도 하지 않았을 것이다: 사실은 그렇지 않았고 여전히 아니다"라고 말했다.

4.4BSD-Lite는 AT&T의 자회사인 유닉스 시스템 연구소가 버클리 소프트웨어 디자인을 상대로 제기한 USL 대 BSDi 소송으로 인해 2년 후에야 사용 가능했다. 이 소송은 UNIX와 관련된 지식 재산권에 관한 것이었다. 이 소송은 BSD의 자유 소프트웨어 후계자들의 법적 지위가 의문시되면서 거의 2년 동안 개발을 지연시켰다. 리눅스는 그러한 법적 모호성이 없었기 때문에 리눅스 기반 시스템은 더 큰 지원을 얻었다. USL 대 BSDi 간의 합의는 1994년 1월에 이루어졌고, 4.4BSD는 6월에 출시되었다. (최종 릴리스는 1995년이었지만, FreeBSD, DragonFly BSD, OpenBSD, NetBSD를 포함한 이 버전을 기반으로 한 여러 무료 버전이 그 이후로 유지되어 왔다.)

### 사미즈다트 사건
2004년 3월 23일, 알렉시스 드 토크빌 연구소의 회장인 케네스 브라운은 타넨바움을 인터뷰했다. 이것은 브라운의 저서 의 출판을 앞두고 이루어진 것이었다. 이 책은 리눅스가 처음에는 MINIX에서 불법적으로 복사되었다고 주장했다. 타넨바움은 토르발스를 옹호하는 강력한 반박문을 발표했고, 후속 글에서는 다음과 같이 썼다.


몇 가지 오해를 풀고 몇 가지 오류를 바로잡으면서 마무리하고자 한다. 첫째, 나는 정말로 리누스에게 화나지 않았다. 정말이다. 그도 나에게 화나지 않았다. 나는 리누스에게 가려졌다고 느끼는 "패배를 인정하지 못하는 사람"이 아니다. MINIX는 나에게 일종의 즐거운 취미였을 뿐이다. 나는 교수이다. 나는 가르치고 연구하고 책을 쓰고 학회에 가고 교수들이 하는 일들을 한다. 나는 내 직업과 학생들, 그리고 내 대학을 좋아한다. ... 나는 학생들이 운영 체제를 가지고 직접 경험할 수 있도록 MINIX를 만들었다. AT&T가 존 라이온의 책으로 가르치는 것을 금지한 후, 나는 학생들이 가지고 놀 수 있는 유닉스와 같은 시스템을 만들기로 결정했다. ... 나는 GNU/HURD나 버클리 유닉스를 대체하려던 것이 아니었다. 신은 아시겠지만, 나는 이 말을 충분히 많이 했다. 나는 단지 내 학생들과 다른 학생들에게 현대 기술을 사용하여 유닉스와 같은 시스템을 어떻게 만들 수 있는지 보여주고 싶었을 뿐이다. 많은 다른 사람들은 많은 기능이 있는 무료 생산용 유닉스를 원했고 MINIX를 그것으로 바꾸고 싶어 했다. 나는 한동안 소용돌이에 휩쓸렸지만, 리눅스가 등장했을 때, 나는 실제로 교수로 돌아갈 수 있게 되어 안도했다. ... 리누스는 훌륭한 일을 하고 있는 것 같고, 나는 그가 미래에 많은 성공을 거두기를 바란다.

MINIX를 만드는 것은 즐거웠지만, 나는 그것을 내가 한 일 중 가장 중요한 일이라고 생각하지 않는다. 그것은 다른 어떤 것보다도 방해 요소에 가까웠다. 내가 한 가장 중요한 일은 수많은 믿을 수 없을 정도로 훌륭한 학생들, 특히 박사 과정 학생들을 배출한 것이다. 목록은 내 홈페이지를 보라. 그들은 훌륭한 일들을 해냈다. 나는 어미 닭처럼 자랑스럽다. 리누스가 내 학생으로 간주될 수 있다면, 나는 그도 자랑스럽다. 교수들은 학생들이 더 큰 영광을 얻을 때 좋아한다.


### 지속적인 대화
이 주제는 타넨바움이 2006년 컴퓨터 매거진에 "운영체제를 신뢰할 수 있고 안전하게 만들 수 있는가?"라는 제목의 표지 기사를 쓴 후 다시 다루어졌다.
타넨바움 자신은 커널 설계에 대한 논쟁을 재개하기 위해 기사를 쓴 것이 아니라고 언급했지만,
해당 기사와 1992년 논쟁의 보관 사본이 기술 웹사이트 슬래시닷에 나란히 실리면서 이 주제가 다시 불거졌다.
토르발스는 온라인 토론 포럼을 통해 타넨바움의 주장에 대한 반박문을 게시했고,
여러 기술 뉴스 웹사이트들이 이 문제를 보도하기 시작했다.
이에 대해 조나단 S. 샤피로(EROS 마이크로커널의 주요 개발자)는 현장에서 검증된 대부분의 신뢰할 수 있고 안전한 컴퓨터 시스템은 마이크로커널과 유사한 접근 방식을 사용한다고 응답했다.

### 인텔 관리 엔진 공개
2017년, 2008년부터 인텔 프로세서 칩셋에 통합된 별도의 프로세서인 관리 엔진 내부에 인텔이 MINIX를 실행하고 있다는 사실이 밝혀졌다. 이에 대해 타넨바움은 인텔에게 공개 서한을 보내 MINIX가 "세계에서 가장 널리 사용되는 컴퓨터 운영체제"라고 주장했다.

## 각주

## 외부 링크
* 
* 
* 
* 

분류:리눅스
분류:운영체제 커널
분류:1992년 컴퓨팅
분류:2006년 컴퓨팅
분류:1992년 1월
분류:리누스 토르발스