История одной книги
Статья посвящена блестящей работе "Комментарии к исходному коду Unix" австралийского профессора и Unix гуру Джона Лайонза Андрей Кухар
🕛 10.11.2006, 13:16
Я познание сделал своим ремеслом:Омар Хайям
Имя выдающегося ученого и педагога Джона Лайонза (John Lions) хорошо известно представителям старой Unix-школы. Лайонза, написавшего однажды хорошую, ОЧЕНЬ техническую книгу (большая часть - листинг исходного кода) о хорошей программе (доказательством тому может служить хотя бы ее долгожительство), причисляют к ключевым фигурам, которые ответственны за рост мировых экспертных знаний о конструкции операционных систем. Но, несмотря на то что книга породила Бог знает сколько ученых и переведена на многие языки, она и иже с ней ее автор были как-то не замечены сначала в СССР, а потом в странах бывшего СССР, и остаются такими и по сей день.
Родился сын компьютерной науки 19 января 1937 года в австралийском городе Хэбирфилд (Haberfield). Исторически начало академической карьеры, классической для ученого своего государства и поколения, Лайонза инициировано окончанием Сиднейского университета в 1959 г. с почетной степенью первого класса (аналог отечественного красного диплома) по специальности прикладная математика. 1963 г. - добившись стипендии, Лайонз отправляется в Кембридж, где получает докторскую степень (Ph.D. control engineering). Следующая декада - работа в Burroughs Corporation в Канаде и Лос-Анджелесе. В 1972 г. возвращение "уже" семьянина на родину, где "Гарри Джон" (прозвище "Harry John" закрепилось за Лайонзом еще в колледже по достаточно неопределенным причинам - возможно, из-за необъятных знаний в математике, возможно, благодаря тому что он был первоклассным стрелком, и еще, возможно, дала о себе знать его архи-социальность и мастерство в практических шутках) занимает должность старшего лектора в отделе computer science школы Электротехники университета Нового Южного Уэльса (The University of New South Wales). В 1980 г. он становится адъюнкт-профессором. В 1995 г., через год после получения диагноза клинического синдрома Паркинсона, Лайонз уходит на пенсию. 5 декабря 1998 г. Джона Лайонза не стало.
Фигурально выражаясь, первое звено цепи обстоятельств, приведших к появлению "the Lions' book", выковала публикация документа "Unix - система с разделением времени" ("The Unix Time-Sharing System") в авторстве Кена Томпсона (Ken Thompson) и Денниса Ритчи (Dennis Ritchie) в журнале Communications of the ACM (Association for Computing Machinery). Данное чрезвычайно важное для априори IT-мира событие произошло в июле 1974 г. Документ этот с детальным описанием сильных и слабых мест операционной системы Unix и областей, обделенных вниманием разработчиков, тогда поразил воображение многих программистов, включая амбициозного Лайонза. Очарованный лектор скоротечно запрашивает копию новой ОС для UNSW. Очень кстати CS-отдел вуза провел серьезное обновление аппаратных средств - замену IBM System 360 на несколько машин DEC PDP-11/40, последние были приобретены вместо запланированного компьютера CDC Cyber 72, ввиду того, что Cyber мог распознавать сугубо терминалы User200, которые уже относились к классу устаревших. На рождественские праздники того же 74-го дистрибутивная лента и набор руководств пятой версии Unix были получены, причем по достаточно скромной цене в 150 долларов США. Помощи в освоении новых просторов ждать было неоткуда - модель распространения ПО исключала поддержку со стороны разработчика (Bell Labs), плюс давала о себе знать изоляция пользователей. "Гарри Джону" ничего не оставалось делать, кроме как с головой окунувшись в изучение внутреннего механизма Unix, прочитать исходный код ее ядра:
Знания, как известно, бываю двух разновидностей: мы сами знаем предмет, или же знаем, где найти о нем сведения. Так, у "Гарри Джона" образовались знания первого вида, его коллега, Ян Джонстоун (Ian Johnstone), подает идею демонстрации исходного кода студентам с последующей адресацией им вопросов. Идею одобрили и вскоре был выделен отдельный курс, посвященный изучению функционирования операционных систем на основе понимания исходного кода. Ставка на то, что хороший программный код подобен литературе и как в литературе, чтение и анализ великих произведений обязательно способствует созданию сравнимых работ, сыграла, да еще как! В то время данный подход являлся не просто новым, но был инновацией, хотя и не общепринятой. До этого большинство преподавателей операционных систем либо проповедовали общие принципы работы программ, которые, чаще всего, студентам и видеть-то не удавалось, либо же поощряли разработку студенческих игрушечных систем. Метод Лайонза, или метод Unix, преследовал совсем иные, более рациональные цели с эксплуатацией сравнительно доступного аппаратного обеспечения DEC PDP-11 (цена в $40000 не отпугивала, а наоборот привлекала покупателей) и компактной операционной системы (на чтение и изучение Unix тратилось намного меньше времени и усилий, чем, скажем на раздутые "динозавры" того времени OS/360 и TSS/360 от IBM).
Для сопровождения нового курса в 1976 г. Лайонзом были подготовлены проникновенные и часто остроумные комментарии (ответы на те самые вопросы - знания второго вида для студентов) к исходному коду Unix, которые вышли в свет как пара тонких буклетов (с красной и ярко оранжевой обложками соответственно): "A Commentary on Sixth Edition Unix Operating System" и "Unix Operating System Source Code, Level Six". Книга удалась на славу, она быстро обрела известность среди программирующего люда и стала исчерпывающим техническим руководством для целого поколения студентов и профессионалов всего мира. В ней автор откровенно восхищается кодом ОС, называя его очень высоким стандартом и подчеркивая тот факт, что Томпсон и Ритчи разработали программу, которой присущи такие качества как мощность, целостность и эффективность. Со своей стороны "родители" Unix остались довольны качеством работы Лайонза, вследствие чего тот даже получил приглашение на работу в лабораториях.
Сразу же после анонса "the Lions' book" в журналах Unix News (предшественник ;login:) и UKUUG (United Kingdom Unix systems User Group) судьба легального распространения комментариев вне лицензиатов операционной системы была предрешена - постарались юристы AT&T. Еще больше судьба была предрешена новым владельцем Unix, компанией Western Electric, та просто не могла смириться с тем, что кто-то, не заплатив за лицензию, изучает внутреннее строение ядра системы. "Хозяин" не на шутку беспокоился о правах на интеллектуальную собственность, скрытие профессиональных секретов и т.п. вещами, особенно после релиза V7. В конце семидесятых, когда о коммерции не могло быть и речи, начались распри между исследовательской группой Bell Labs (которым, между прочим, досталось несколько сотен экземпляров комментариев - для внутренних подготовительных курсов, и которые воспроизводили книгу и обеспечивали копиями лицензиатов), т.е. теми, кто видел пользу в доступности системы, и предельно осторожными Unix Support Group (USG) и юристами. Исследованию (пока) не досталась победа:
Лицензии на седьмую и последующие версии явно запретили неприемлемый метод Лайонза. Совершенно естественно публикация книги была и вовсе прекращена, хотя: это не помешало ее глобальному нелегальному распространению посредством тайного фотокопирования (фотокопирования фотокопий etcetera), которое, к слову сказать, стало общедоступным именно в эти годы, и передач из рук-в-руки. Благодаря "самиздату стахановского типа" книга обрела статус "наиболее знаменитой запрещенной рукописи в компьютерной истории" и стала андеграундной легендой Unix-культуры.
Время неумолимо шло, но озабоченный народ все копировал, копировал и копировал: Надежда увидеть комментарии Лайонза при свете дня никогда не покидала одного человека, Ритчи. Тот несколько лет подряд обивал пороги многих компаний, но, юристы, используя "поношенные и утратившие товарный вид" оправдания, все не поддавались. Но сколько веревочке не виться, конец-то все же будет - и в 1996 г. благодаря SCO, точнее усилиям ее CIO Майкла Тайлсона (Michael Tilson), Питера Сэйлуса (Peter Salus) и Бэрни Гудхарта (Berny Goodheart) - шедевр наконец-то легально опубликовали. Книга (издательства Peer-to-Peer Communications Inc.), не утратившая своего былого блеска в глазах почитателей Unix, была обогащена признательными словами, ретроспективными эссе, всемирно известных "кремней" Unix и Open Source сообществ, включая Денниса Ритчи, Питера Коллинсона (Peter Collinson), Эрика Рэймонда (Eric S. Raymond), Грэга Роуза (Greg Rose), Майка О'Дэлла (Mike O'Dell) и прочих.
Вполне возможно, что история с подпольным распространением могла повторится и для комментариев к исходному коду ядра Plan 9. Дело в том, что Лайонз как член технической команды провел три контрактных квартала в Bell Labs: в 1978, 1983 и 1989 гг. В третьем периоде "Гарри Джон" начал схожий проект для ранней версии ОС Plan 9, когда искал новую версию ядра Unix и не обнаружил таковую. То, что у него получилось, - вещь неполная и достаточно неопределенная, к тому же как ядро, так и все остальные составляющие ОС изменились настолько, что труд не соответствует ни одной распределенной версии Plan 9, вследствие чего он так и никогда не был представлен публике. Благо, роль "Гарри Джона" для Plan 9 третьей версии замечательно сыграл Франциско Баллестэрос (Francisco J Ballesteros).
В заключение мне хочется прибавить несколько "добрых, громких слов" в адрес автора "еще одной книги о Unix". В этом замечательном человеке всегда покоряла способностью к обобщению, синтезированию, объединению; восприимчивый и кроткий учитель, вдохновлявший своих учеников, он легко распознавал слабые места идей и аргументов, что делало его великолепным рецензентом. На педагогике "Гарри Джон" не остановился, его подчеркнутая ранее архи-социальность вылилась в организацию и руководство австралийской группы пользователей Unix систем (Australian Unix systems Users Group - AUUG), он долгое время был редактором журнала "The Australian Computer Journal". На тропу войны выходили не только Bell Labs' R&D и Unix Support Group, в пределах UNSW имела место борьба централизации с распределением вычислительных ресурсов, которая косвенным образом повлияла на автономию отдела computer science. "Гарри Джон", выступая за принятие Unix в качестве средства для преподавания, а позднее и как объекта преподавания, инструментально привел к возрастанию значения и независимости своего отдела. Позднее, существование центра в UNSW помогло формированию схожих групп в университетах Мельбурна и Сиднея. Отдавая дань достижениям Лайонза в науке о компьютерах в AUUG создана "награда Джона Лайонза", присуждаемая студентам Австралийского университета за заслуги в области открытых систем. В UNSW, которому были отданы почти 25 лет, основана кафедра операционных систем имени Джона Лайонза, ее призвание - позволить ученым продолжать традиции располагающего к себе и вдохновляющего преподавания предмета операционных систем, там же Ему посвятили сад: