Спор Таненбаума — Торвальдса

Спор Таненба́ума — То́рвальдса состоялся между Эндрю Таненбаумом и Линусом Торвальдсом. Предметом спора было ядро Linux и архитектура ядер операционных систем в целом. Таненбаум начал спор в 1992 году в ньюсгруппе comp.os.minix сети Usenet[1], заявив, что микроядра вытесняют монолитные ядра, и поэтому Linux устарел уже в 1992 году. К спору присоединились другие известные хакеры, например, Дэвид Миллер и Теодор Цё[2].

Благодаря категоричному тону сообщений в ньюсгруппе спор получил характер флейма — умышленно враждебного обмена сообщениями между двумя лагерями (Linux и Minix, иначе говоря, между сторонниками монолитных ядер и приверженцами микроядер) и был описан в таком свете в различных публикациях[3]. Сам Торвальдс также признал это в своём первом сообщении в ньюсгруппе по этому вопросу, заявив:

Я бы и рад «не проглотить наживку», но… Пора серьёзно пофлеймить![4]

К этой теме вернулись в 2006 году, когда Таненбаум написал обзорную статью в журнале «Computer»[англ.], озаглавленную «Можно ли сделать операционные системы надёжными и защищёнными?»[5]. И хотя Таненбаум лично сказал, что он написал статью не с целью возобновить спор об архитектуре ядер[6], тщательное сравнение статьи с архивной копией спора 1992 года на посвящённом технологиям сайте Slashdot вновь разожгло дискуссию[7]. Торвальдс написал на онлайн-форуме опровержение доводов Таненбаума[8], и несколько сайтов с компьютерными новостями распространили эту информацию[9]. Это побудило Джонатана Шапиро ответить, что в большинстве компьютерных систем, на практике подтвердивших свою надёжность и защищённость, используется скорее микроядерно-ориентированная схема[10].

Спор

Схема монолитного ядра, выполняющего код ядра целиком в режиме супервизора
Доктор Эндрю Таненбаум (под ником ast в comp.os.minix)
Линус Торвальдс

Хотя спор сперва начинался довольно мягко, и обе стороны выдвигали лишь общие утверждения по архитектуре ядер, дискуссия всё углублялась и усложнялась с каждой серией постов. Помимо архитектуры ядер, спор также затронул несколько других тем, например, какая архитектура микропроцессоров вытеснит все остальные в будущем. Кроме Таненбаума и Торвальдса, в спор включились и другие люди, в том числе Питер Макдональд, разработчик ядра Linux на раннем этапе и создатель одного из первых дистрибутивов — Softlanding Linux System, Дэвид Миллер, один из главных разработчиков ядра Linux, и Теодор Цё, первый американский разработчик ядра Linux.

«Linux устарел»

Эта дискуссия поднялась 29 января 1992 года, когда Таненбаум впервые опубликовал свою критику ядра Linux в comp.os.minix, отметив, как монолитная архитектура губительна для собственных возможностей, в сообщении с заголовком «Linux устарел»[1]. Он сначала не вдавался в технические подробности для пояснения, почему он считает, что архитектура микроядра лучше. И всё-таки Таненбаум указал, что это в основном связано с переносимостью, и заявил, что ядро Linux было слишком сильно привязано к линейке процессоров x86, чтобы использоваться в будущем, поскольку эта архитектура когда-нибудь перестанет использоваться. В плане прогноза на будущее он сказал, что написание монолитного ядра в 1991 году было «гигантским шагом назад в 1970-е годы».

Поскольку критика была высказана в публичной ньюсгруппе, Торвальдс смог ответить на неё непосредственно. Так он и сделал спустя день, заявив, что в Minix были изначальные ошибки проектирования (приведя в пример отсутствие многозадачности), и признав, что микроядерная архитектура лучше «с теоретической и эстетической» точки зрения[4]. Он также сообщил, что, поскольку он разрабатывал ядро Linux в свободное время и раздавал его бесплатно (Minix Таненбаума не был бесплатным в то время), Таненбаум не должен препятствовать его усилиям. Более того, он подчеркнул, что разрабатывал Linux специально для Intel 80386 отчасти и из-за желания лучше изучить эту архитектуру; хотя он спорил с тем, что это сделало ядро менее переносимым по сравнению с Minix, такой принцип проектирования был приемлем, так как это сделало интерфейс программирования приложений более простым и переносимым. Поэтому, уверял он, «линукс лучше портируем, чем миникс. [sic]»

Архитектура микроядра основывается на программах-серверах пользовательского режима

В ответ на высказывание Линуса Таненбаум написал, что ограничения MINIX связаны с его преподавательской деятельностью, поскольку необходимо, чтобы система могла выполняться на довольно слабом компьютере обычного студента, представлявшем собой процессор Intel 8088, зачастую даже без жёсткого диска[11].

В то время Linux был собран для Intel 80386, значительно более мощного (и дорогого) процессора. Таненбаум отдельно подчёркивает:

…год назад существовало две версии [MINIX], одна для PC (на 360-килобайтных дискетах) и одна для 286/386 (1,2 мегабайт). Продажи версии для PC превосходили версию 286/386 в соотношении 2:1.

Он утверждал, что хотя Linux и был бесплатным, он не мог стать приемлемым выбором для студентов, поскольку они не могли бы купить дорогое оборудование для его работы, в то время как MINIX можно было пользоваться «на обычном 4,77 МГц PC без жёсткого диска». На это Кевин Браун, другой пользователь группы Usenet, возразил, что Таненбауму не следует жаловаться на привязку Linux к 386 архитектуре, так как это был осознанный выбор, а не непонимание проектирования операционных систем, и сказал:

…объявленная цель разработки Linux — использование преимуществ 386 архитектуры. Так в чём же, собственно, дело? Разные цели создания архитектуры и приводят к разным архитектурам.[12]

Он также заявил, что разработка системы специально для дешёвого оборудования создаст проблемы переносимости в будущем. Несмотря на то, что Minix не поддерживала в полной мере новое оборудование, которое поддерживал Linux, — что делало его более предпочтительным для тех людей, у кого такое оборудование уже было, — Таненбаум утверждал, что поскольку архитектура x86 в будущем уступит место новым решениям, то и проблему ему решать не надо, и пояснял:

Конечно, через 5 лет это изменится, но через эти 5 лет все будут пользоваться свободной GNU на компьютерах SPARCstation-5 мощностью 200 MIPS с памятью 64 мегабайт.

Он заявил, что ядро Linux постепенно выйдет из моды по мере развития аппаратного обеспечения, потому что это ядро очень тесно связано с архитектурой 386[11]. (См. подробные пояснения в секции «Ошибочные предсказания».)

Торвальдс попытался завершить спор на этом этапе, сказав, что ему не следовало так остро реагировать на первые высказывания Таненбаума и что он пишет тому личное электронное письмо с извинениями[13]. И всё же он продолжил спор позднее.

Последствия

Несмотря на этот спор, Торвальдс и Таненбаум, похоже, нормально общаются. Торвальдс хочет, чтобы было ясно, что он не настроен враждебно к Таненбауму, а сам Таненбаум подчёркивает, что их разногласия в технических вопросах нельзя рассматривать как личную ссору[14].

Ошибочные предсказания

Когда проблема и весь первоначальный спор были опубликованы издательством O'Reilly Media в книге «Открытые исходники: отголоски революции открытых исходников» в 1999 году, там было написано, что этот спор — наглядный пример того, «как мир тогда относился к разработке операционных систем»[14].

Процессор 386 тогда был самым распространённым чипом (отрываясь от других моделей в несколько раз), по словам участника Кевина Брауна, 486 использовался в высококлассных компьютерах, а 286 практически устарел, и Веб ещё не использовался широко. Один из аргументов Таненбаума против Linux заключался в том, что он был слишком привязан к линейке процессоров x86, которой, по его мнению, недолго оставалось использоваться[1]. И тем не менее, x86 остаётся[когда?] доминирующей архитектурой процессоров в настольных компьютерах. Linux с того времени был портирован на множество других архитектур, в том числе x86-64, ARM, IA-64, 680x0, MIPS, POWER/PowerPC и SPARC.

Другая повторяющаяся тема в этом споре — альтернативы Linux и MINIX, такие как GNU (не GNU/Linux) и 4.4BSD. Первая из них, по мнению Таненбаума, была «современной» системой, в отличие от Linux[1]. Во втором сообщении он предположил, что

…через эти 5 лет все будут пользоваться свободной GNU на компьютерах SPARCstation-5 мощностью 200 MIPS с памятью 64 мегабайт.[11]

Некоторые участники дискуссии выразили сомнение, что GNU может быть подходящей альтернативой. Кевин Браун назвал её Vaporware (заранее популяризованное, но так и не выпущенное ПО) и заявил, что Linux, вероятнее всего, будет в выигрыше от востребованности и распространения архитектуры x86 среди широкой аудитории. Теодор Цё, разработчик Linux в ранний период, сказал, что хотя микроядра и будут иметь преимущества, «…Linux уже есть, а GNU ещё нет — и люди работают над Hurd гораздо дольше, чем Линус работал над Linux»[15]. Зная о стремлении GNU создать ядро, Торвальдс заявил: «Если бы ядро GNU было готово прошлой весной, я бы и не подумал начинать свой проект: суть в том, что оно не было готово ни тогда, ни даже сейчас»[16].

4.4BSD-Lite не была доступна в течение двух лет вследствие судебной тяжбы, связанной с интеллектуальной собственностью на Unix, начатой подразделением AT&T Unix System Laboratories против Berkeley Software Distribution. Разбирательство затормозило разработку свободных дочерних веток BSD примерно на два года, пока их правовой статус был под вопросом. Поскольку у Linux не было таких юридических противоречий, системы на его основе получили бо́льшую поддержку. Мировое соглашение между двумя компаниями было достигнуто в январе 1994-го, и 4.4BSD вышла в июне. (Хотя окончательный релиз состоялся в 1995 году, было создано несколько свободных версий, основанных на ней, в том числе FreeBSD, OpenBSD и NetBSD.)

Скандал вокруг книги К. Брауна Самиздат

23 марта 2004 года Кеннет Браун, президент института Alexis de Tocqueville Institution, взял у Таненбаума интервью. Оно должно было стать вступлением к готовящемуся изданию книги Брауна под названием «Самиздат и другие вопросы источников открытых исходных кодов». В книге утверждается, что Linux изначально был нелегальной копией MINIX. Таненбаум опубликовал резкое опровержение в защиту Торвальдса[17] и заявил тогда:

Я бы хотел уладить некоторые недоразумения и исправить пару ошибок. Во-первых, я ДЕЙСТВИТЕЛЬНО не сержусь на Линуса. ЧЕСТНО. И он на меня не сердится. Я не «жалкий неудачник», которого затмила слава Линуса. MINIX для меня был всего лишь развлечением. Я профессор. Я преподаю и провожу исследования, и пишу книги, и езжу на конференции, и занимаюсь всем, чем занимаются профессора. Я люблю свою работу и своих студентов и свой университет. […] Я написал MINIX, потому что хотел дать студентам возможность самим поэкспериментировать с операционной системой. После того, как AT&T запретила обучение по книге Джона Лайонса [к книге прилагались исходники], я решил написать UNIX-подобную систему, чтобы мои студенты на ней практиковались. […] Я не пытался создать замену для GNU/HURD или Berkeley UNIX. Бог свидетель: я уже не раз об этом говорил. Я просто хотел показать своим и другим студентам, как можно написать UNIX-подобную систему, используя современные технологии. Многим другим хотелось создать массовую бесплатную UNIX со многими приятными для пользователя вещами (англ. «With bells and whistles»), и они хотели сделать её из MINIX. Некоторое время и я в этом участвовал, но когда появился Linux, я стал свободен от этого бремени и смог снова заняться преподаванием. […] Мне кажется, что Линус делает отличную работу, и я желаю ему успехов в будущем.

Хотя писать MINIX было здорово, я не считаю, что это самое важное моё достижение. Это было скорее развлечение, нежели что-то иное. Самое важное моё достижение — подготовка замечательных студентов, особенно кандидатов наук. Посмотрите на моей домашней странице список их имен. Они делают замечательные вещи. Я горжусь ими, как родители гордятся своими детьми. Поскольку Линуса можно считать моим студентом, я им тоже горжусь. Профессора любят, когда их студенты растут и достигают бо́льшей славы.[18]

Примечания

  1. 1 2 3 4 A. S. Tanenbaum (29 января 1992). "LINUX is obsolete". Newsgroupcomp.os.minix. [email protected]. Архивировано из оригинала 26 мая 2013. Дата обращения: 27 ноября 2006.
  2. Стоит заметить, что в первоначальной дискуссии были комментарии Кена Томпсона, однако это не тот Кеннет Лейн Томпсон, который знаменит как один из основателей UNIX.
  3. Williams, S. GNU/Linux // Free as in Freedom: Richard Stallman's Crusade for Free Software[англ.] (англ.). — O’Reilly Media, 2001. — ISBN 0-596-00287-4.. — «This quote is taken from the much-publicized Torvalds-Tanenbaum 'flame war' following the initial release of Linux.».
  4. 1 2 L. Torvalds (29 января 1992). "Re: LINUX is obsolete". Newsgroupcomp.os.minix. [email protected]. Архивировано из оригинала 11 июня 2013. Дата обращения: 28 ноября 2006.
  5. Tanenbaum, A. S. Can We Make Operating Systems Reliable and Secure? // IEEE Computer Society. — 2006. — Май (т. 39, № 5). — С. 44—51. Архивировано 18 июня 2018 года.
  6. Tanenbaum, A. S. Tanenbaum-Torvalds Debate: Part II. Vrije Universiteit Amsterdam (May 2006). Дата обращения: 14 января 2007. Архивировано 23 марта 2012 года.
  7. “bariswheel”, “Hemos” & Slashdot contributors. Microkernel: The Comeback? Slashdot (May 2006). Дата обращения: 14 января 2007. Архивировано 23 марта 2012 года.
  8. Torvalds, L. Hybrid kernel, not NT. Real World Technologies (May 2006). Дата обращения: 30 ноября 2006. Архивировано 23 марта 2012 года.
  9. diegocgteleline.es, ScuttleMonkey & Slashdot contributors. Torvalds on the Microkernel Debate. Slashdot (10 мая 2006). Дата обращения: 21 мая 2008. Архивировано 23 марта 2012 года.
  10. Jonathan Shapiro. Debunking Linus's Latest. coyotos.org (11 мая 2006). Дата обращения: 21 мая 2008. Архивировано из оригинала 11 мая 2008 года.
  11. 1 2 3 A. S. Tanenbaum (30 января 1992). "LINUX is obsolete". Newsgroupcomp.os.minix. [email protected]. Архивировано из оригинала 30 мая 2013. Дата обращения: 10 января 2006.
  12. Kevin Brown (31 января 1992). "RE: LINUX is obsolete". Newsgroupcomp.os.minix. [email protected]. Архивировано из оригинала 11 мая 2013. Дата обращения: 7 апреля 2007.
  13. L. Torvalds (30 января 1992). "Apologies (was Re: LINUX is obsolete)". Newsgroupcomp.os.minix. [email protected]. Архивировано из оригинала 14 июня 2013. Дата обращения: 10 января 2007.
  14. 1 2 DiBona, Chris; Sam Ockman, Mark Stone, Brian Behlendorf, Scott Bradner[англ.], Jim Hamerly, Kirk McKusick, Tim O'Reilly, Tom Paquin, Bruce Perens, Eric Raymond, Richard Stallman, Michael Tiemann, Linus Torvalds, Paul Vixie, Larry Wall, Bob Young. The Tanenbaum-Torvalds Debate // Open Sources: Voices from the Open Source Revolution[англ.] (англ.). — O’Reilly Media, 1999. — ISBN 1-56592-582-3.. — «Когда сам Линус услышал, что мы включаем это в книгу, он захотел убедиться, что общественность поняла, что он не держит зла на Таненбаума, и по сути, запретил нам включать это, пока мы не убедим его, что там будет показано, как мир рассматривал проектирование операционных систем в то время.».
  15. Theodore Y. Ts'o (31 января 1992). "Re: LINUX is obsolete". Newsgroupcomp.os.minix. [email protected]. Архивировано из оригинала 11 мая 2013. Дата обращения: 11 мая 2007.
  16. L. Torvalds (29 января 1992). "Re: LINUX is obsolete". Newsgroupcomp.os.minix. [email protected]. Архивировано из оригинала 9 мая 2013. Дата обращения: 11 мая 2006.
  17. Tanenbaum, Andrew S. Some Notes on the "Who wrote Linux" Kerfuffle, Release 1.5. Дата обращения: 21 мая 2008. Архивировано 23 марта 2012 года.
  18. Tanenbaum, Andrew S. Ken Brown's Motivation. Дата обращения: 24 декабря 2007. Архивировано 23 марта 2012 года.

Ссылки