Эрик Оллман

Эрик Оллман: сантехник электронной почты

Был период продолжительностью около двадцати лет, когда почти каждое электронное письмо, отправленное на Земле, проходило через программу, написанную одним аспирантом из Беркли. Эрик Оллман (Eric Allman) не проектировал электронную почту и никогда не утверждал обратного. Он решил более скучную и сложную проблему, скрытую под ней: заставил несовместимые почтовые системы, созданные людьми, которые никогда не разговаривали друг с другом, пересылать сообщения, не теряя их. Когда Ассоциация вычислительной техники (ACM) избрала его членом (Fellow) в 2025 году, текст номинации состоял всего из четырех слов — за развитие электронной почты.

Детство в Беркли

Эрик Пол Оллман (Eric Paul Allman) родился 2 сентября 1955 года в Эль-Серрито (El Cerrito), штат Калифорния, в нескольких милях от университета, который определил его жизнь. Он рано получил доступ к мейнфрейму своей средней школы, а оттуда — к вычислительному центру Калифорнийского университета в Беркли. Он поступил в Беркли в 1973 году, как раз когда Unix распространялся по американским факультетам компьютерных наук, получил степень бакалавра в 1977 году и магистра в 1980 году.

Он никогда не покидал эту орбиту. Оллман до сих пор живет в Беркли, и его самая долговечная работа была проделана в нескольких кварталах от места, где он вырос.

Проблема, которую никто не хотел решать

К концу 1970-х годов электронная почта существовала, но не как единое целое. Она существовала как несколько несовместимых вещей одновременно. У ARPANET были свои правила; у локальных сетей Unix — другие; разные системы спорили о том, как должен быть написан адрес, что должен содержать заголовок и какой протокол должен передавать сообщение. Пользователь в одной сети, который хотел написать пользователю в другой, на практике ничего не мог сделать.

Первым ответом Оллмана был delivermail. Вторым, появившимся к 1981 году, стал sendmail, и разница между ними составляет весь его вклад. Sendmail не был почтовой системой. Это был агент передачи почты (Mail Transfer Agent) — маршрутизатор и транслятор, который находился между почтовыми системами, принимал сообщение в любой форме, в какой оно приходило, определял, куда ему нужно идти дальше, и переписывал его адреса и заголовки в формат, требуемый следующим узлом. Он поддерживал SMTP, позже ESMTP и Mail-11 для DECnet.

БЕСПЛАТНЫЙ ТЕСТ
А какой у вас?

Двадцать вопросов, восемь минут на часах и процентиль, измеренный по всем, кто его проходил. Без регистрации.

Пройти тест IQ →

Ключевым решением в проектировании было то, что ни один из этих вариантов перевода не был жестко запрограммирован. Поведение Sendmail определялось правилами переписывания (rewriting rules) — небольшим, плотным языком сопоставления с образцом, содержащимся в конфигурационном файле, который описывал, как преобразовать адрес одной формы в адрес другой. Оллман создал механизм, а не политику. Когда электронная почта менялась, как это происходило непрерывно в течение сорока лет, sendmail не требовалось переписывать; нужно было лишь изменить правила.

Именно поэтому sendmail стал частью дистрибутива программного обеспечения Беркли (BSD), а затем де-факто стандартным агентом передачи почты в каждой системе Unix, и именно поэтому его конфигурационный файл легендарен среди системных администраторов. Даже сухое описание программного обеспечения признает несколько сложный синтаксис конфигурации. Сила и боль пришли из одного и того же места.

Syslog

Внутри sendmail было спрятано второе изобретение, которое вырвалось на свободу и завоевало больше территории, чем первое. Оллману нужен был согласованный способ записи действий программы, поэтому он написал средство ведения журнала под названием syslog. Изначально оно было специфичным для sendmail. Сейчас, по выражению Зала славы Интернета, это де-факто стандартный механизм ведения журнала, используемый почти во всех открытых системах и периферийных устройствах — тот самый механизм, который записывает строки, создаваемые вашими серверами, маршрутизаторами и принтерами при возникновении любого события. Он был неформально стандартизирован в течение двух десятилетий, прежде чем был записан как RFC 3164 в 2001 году и позже заменен RFC 5424.

Две небольшие работы Оллмана также сохранились в повседневном использовании. Стиль отступов Оллмана (Allman indent style), иногда называемый стилем BSD, является одним из двух способов, которыми программисты на C расставляют фигурные скобки. А BSD Trek, который до сих пор входит в пакет bsdgames в Linux, — это его порт игры Star Trek с Фортрана на C.

Компания

Оллман работал в фирме по базам данных Britton Lee, позже Sharebase, и в Международном институте компьютерных наук. В 1998 году он и Грег Олсон (Greg Olson) основали Sendmail, Inc. в Эмеривилле, Калифорния, для коммерческой разработки программного обеспечения наряду с версией с открытым исходным кодом; компания в конечном итоге была приобретена Proofpoint. Архитектура, которую он добавил в тот период, milter, позволяла сторонним разработчикам подключать фильтры в путь прохождения почты — тот самый механизм, через который позже в почтовые серверы мира была внедрена фильтрация спама и вирусов. Оллман говорил, что ожидает, что большая часть будущей эволюции электронной почты произойдет в milter, а не в самом агенте передачи.

Он также помог создать ACM Queue, намеренно позиционируемый в промежутке между академическими журналами, которые не читают практики, и отраслевыми журналами, сформированными рекламодателями, и входил в его редакционный совет и Совет ACM после выполнения руководящих ролей в USENIX. Он стал соавтором книги Sendmail издательства O'Reilly вместе с Брайаном Косталесом (Bryan Costales), внес вклад в Архитектуру приложений с открытым исходным кодом (The Architecture of Open Source Applications), а позже работал в Swarm Lab в Беркли над распределенными вычислениями и платформами интернета вещей.

Почему Эрика называют гением

Проявленные качества — это не теоретический блеск, и Оллман никогда не притворялся, что это иначе. Это дизайнерское суждение в условиях неопределенности — способность взглянуть на беспорядок несовместимых систем и правильно определить, какая часть будет постоянно меняться, а какая нет, а затем построить меняющуюся часть как конфигурацию, а стабильную — как код. Правила переписывания Sendmail были ставкой на то, что конвенции адресации электронной почты будут оставаться нестабильными в течение десятилетий. Ставка была верной, и именно поэтому программа, написанная аспирантом в 1981 году, тридцать лет спустя все еще переносила большую часть мировой почты. Это редкий вид инженерного предвидения, и признание отражает это: Зал славы Интернета включил его в число новаторов в 2014 году, ACM сделала его выдающимся инженером в 2009 году и членом в 2025 году, а Беркли назвал его выдающимся выпускником в области компьютерных наук в 2013 году.

Контраргумент справедлив и его стоит заявить прямо. Оллман не изобрел алгоритма, не доказал теоремы и не создал протокола; электронная почта, SMTP и ARPANET были работой других людей. Его гениальность, если это слово применимо, — в мастерстве, практическом интеллекте человека, который строит инфраструктуру, способную выжить при контакте со всеми. И у этого мастерства была реальная цена. Язык конфигурации Sendmail известен своей строгостью, это барьер, на который жаловались поколения администраторов и который помог мотивировать создание конкурирующих агентов передачи почты. Инструмент, которым безопасно могут управлять только эксперты, — это компромиссное дизайнерское решение, каким бы долговечным оно ни было. Собственный совет Оллмана программистам характерен своей скромностью: выбирайте проект, который соответствует вашему характеру, пишите чистый и хорошо задокументированный код, потому что на кону будет ваша репутация.

Наследие

Оллман — гей, и в октябре 2013 года он женился на Маршалле Керке Маккьюсике (Marshall Kirk McKusick), ведущем разработчике BSD Unix, после более чем тридцати лет совместной жизни; они встретились в аспирантуре, и они вдвоем ответственны за поразительную долю программного обеспечения, которое сделало Unix операционной системой Интернета. Его награды включают премию Технологического фестиваля в Теллурайде (Telluride Tech Festival Award of Technology) в 2006 году. Лучшим мерилом его работы, однако, является то, что она невидима. Никто не думает об агенте передачи почты, и никто не читает строку syslog, пока что-то не сломается — что является именно тем состоянием, которого должна достичь инфраструктура.

Сравнить с великими

Max Planck vs Werner HeisenbergAdam Smith vs Thomas AquinasBlaise Pascal vs Steve JobsGottfried Wilhelm Leibniz vs John Von Neumann
Все рейтинги →Все сравнения →

Вундеркинды

Umi GarrettUmi GarrettWent viral playing Liszt on Ellen at eight, then won a Chopin…Maddie ZieglerMaddie ZieglerSia's 'Chandelier' Music Video at Age 11 — Two Billion YouTube…Daniel TammetDaniel TammetRecited pi from memory to 22,514 digits in just over five hoursShirley TempleShirley TempleHollywood's number-one box-office star as a child, later a U.S.…
Вундеркинды →

Сыграй и возвращайся завтра

Ежедневный вызов гения · Brain teaser
A farmer has 17 sheep. All but 9 run away. How many are left?
Нажмите ответ ↓
Какой ты гений? Бесплатный IQ-тест