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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Спор Таненба́ума — То́рвальдса состоялся между Эндрю Таненбаумом и Линусом Торвальдсом. Предметом спора было ядро 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]. И тем не менее, по состоянию на 2014 год x86 остаётся доминирующей архитектурой процессоров в настольных компьютерах. Linux с того времени был портирован на множество других архитектур, в том числе x86-64, ARM, IA-64, 680x0, MIPS, POWER/PowerPC и SPARC.

Другая повторяющаяся тема в этом споре — альтернативы Linux и MINIX, такие как GNU и 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 (January 29,1992). "LINUX is obsolete". comp.os.minix. (Google Groups). Retrieved on 2006-11-27.
  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.
  4. 1 2 L. Torvalds (January 29,1992). "Re: LINUX is obsolete". comp.os.minix. (Google Groups). Retrieved on 2006-11-28.
  5. Tanenbaum, A. S. (May 2006). «Can We Make Operating Systems Reliable and Secure?». IEEE Computer Society 39 (5): 44–51. Проверено 2006-11-26.
  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 (May 10,2006). Проверено 21 мая 2008. Архивировано из первоисточника 23 марта 2012.
  10. Jonathan Shapiro. Debunking Linus's Latest. coyotos.org (May 11,2006). Проверено 21 мая 2008. Архивировано из первоисточника 23 марта 2012.
  11. 1 2 3 A. S. Tanenbaum (January 30,1992). "LINUX is obsolete". comp.os.minix. (Google Groups). Retrieved on 2006-01-10.
  12. Kevin Brown (January 31,1992). "RE: LINUX is obsolete". comp.os.minix. (Google Groups). Retrieved on 2007-04-07.
  13. L. Torvalds (January 30,1992). "Apologies (was Re: LINUX is obsolete)". comp.os.minix. (Google Groups). Retrieved on 2007-01-10.
  14. 1 2 DiBona Chris 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 (January 31,1992). "Re: LINUX is obsolete". comp.os.minix. (Google Groups). Retrieved on 2007-05-11.
  16. L. Torvalds (January 29,1992). "Re: LINUX is obsolete". comp.os.minix. (Google Groups). Retrieved on 2006-05-11.
  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.

Ссылки[править | править вики-текст]