Страницы: -
1 -
2 -
3 -
4 -
5 -
6 -
7 -
8 -
9 -
10 -
11 -
12 -
13 -
14 -
15 -
16 -
17 -
18 -
19 -
20 -
21 -
22 -
23 -
24 -
енести X Window под Linux.
Система X Window работает с помощью Х-сервера, который берет на себя
всю графику. Сервер общается с клиентами, чья задача говорить: "Мне нужно
окно такой-то величины". Обмен информацией происходит на уровне сокетов,
или, точнее, Unix Domain Sockets. Это способ обмена информацией внутри Unix,
но он же используется и для передачи информации по Интернету. Орест написал
первый уровень сокетов для Linux, просто чтобы перенести под нее X Window.
Интерфейс Ореста был сметан на живую нитку и не интегрирован с остальным
кодом. Это тот случай, когда я согласился на грубо сработанную заплатку,
потому что она была нам нужна.
Я не сразу привык к тому, что у нас есть графический интерфейс
пользователя. Думаю, около года я им вообще редко пользовался. А сейчас уке
не могу без него: во время работы у меня всегда открыт миллион окон.
Орест не только дал возможность работать с окнами, но и вообще открыл
дорогу в будущее. Domain Sockets использовались для организации локальной
сети, которая позволяла работать системе X Window. Мы могли воспользоваться
теми же самыми Domain Sockets, чтобы обеспечить Linux большой рывок во
внешние сети -- получить возможность связывать компьютеры. Без включения в
сеть Linux была полезна только тем, кто сидел дома и выходил в большой мир
по модему или вообще делал все локально. Поэтому мы с большим воодушевлением
принялись разрабатывать сети для Linux поверх этих самых Domain Sockets,
хотя они вовсе не были для этого предназначены.
Я был настолько уверен, что все получится, что даже сделал скачок в
нумерации версий. В марте 1992 года я планировал выпустить версию 0.13. А
вместо этого, получив графический интерфейс пользователя, уверился, что мы
на 95% достигли цели -- выпуска полноценной, надежной операционной системы,
пригодной к тому же для работы в сети. И поэтому выпустил версию 0.95.
Господи, как же это было преждевременно! Чтобы не сказать, глупо.
Работа в сети -- поганое дело, и в итоге на ее организацию ушло почти
два года -- только тогда ее можно было выпустить в свет. Переходя в сеть,
получаешь целый букет новых проблем. Во-первых, защита. Ты не знаешь, кто
работает в сети и что он затеял. Нужно быть очень осторожным, чтобы никто не
мог повесить твой компьютер, посылая тебе кучи хлама. Ты уже не можешь
контролировать, кто вступает в контакт с твоей машиной. Причем у разных
людей могут быть совершенно разные настройки. Используя стандартный сетевой
протокол TCP/IP, трудно правильно установить все тайм-ауты. Казалось,
процесс будет бесконечным. К концу 1993 года у нас уже была почти
работоспособная сетевая система, хотя у некоторых возникали серьезные
проблемы с ее использованием. Мы не умели работать с сетями, в которых адрес
не укладывался в 8-битные границы.
Из-за своего чрезмерного оптимизма при выпуске версии 0.95 я оказался в
ловушке. В течение тех двух лет, что ушли на разработку и выпуск версии 1.0,
с номерами творилось что-то невообразимое. Между 95 и 100 не так много
чисел, но мы продолжали постоянно выпускать новые версии -- то ошибку
поправишь, то функцию добавишь. Добравшись до 0.99, мы были вынуждены начать
добавлять номера, чтобы указать на уровень заплат, а потом перешли на
алфавит. В какой-то момент мы выпустили версию 0.99, уровень заплаток 15А.
Потом появилась версия 0.99, уровень заплаток 15В и так далее. Так мы
добрались до уровня заплаток 15Z. А вместо уровня 16 была выпущена версия
1.0 -- в этот момент система наконец стала работоспособной. В марте 1994-го
Linux 1.0 была с большой помпой представлена в аудитории факультета
информатики Университета Хельсинки.
Этому предшествовал довольно беспорядочный период, но уже ничто не
могло нанести урона популярности Linux. У нас была своя собственная
телеконференция в Интернете -- comp.os.linux, выросшая из пепла нашей с
Эндрю Таненбаумом перепалки. И она привлекала орды участников. В те времена
Internet Cabal (группа администраторов некоторых узлов Интернета) ежемесячно
подводила неофициальную статистику: сколько человек участвует в каждой
конференции. Данные были не очень точные, но они лучше всего говорили о
популярности твоего сайта -- в данном случае, сколько людей интересовалось
Linux. Неизменным лидером среди телеконференций была alt. sex. (Я-то ей
особенно не интересовался. Хотя и сходил туда пару раз, чтобы посмотреть,
из-за чего подняли такой шум. Но вообще я был типичным фригидным ботаником,
которому гораздо интересней играть в процессор с плавающей точкой, чем
следить за новостями с сексуального фронта: о свеженайденных позициях при
половом акте, отчетах о крутых любовных играх или о чем там еще говорят на
alt. sex.)
С помощью ежемесячной статистики Cabal легко было следить за
популярностью comp.os.linux. Можете не сомневаться -- так я и делал.
(Некоторые считают меня чуть ли не народным героем, но я никогда не был тем
бескорыстным, самоотверженным компьютерным фанатом, каким меня пытается
представить падкая на мифы пресса.) К осени 1992 года в нашем форуме
участвовали десятки тысяч людей. Все эти люди следили за событиями вокруг
Linux, но не все из них пользовались самой операционной системой. Каждый
месяц в момент подведения итогов выпускался список из сорока самых
популярных телеконференций. Если твой форум не входил в эти сорок, то о его
популярности можно было узнать из полного отчета, который распространялся в
специальной служебной конференции. Мне обычно приходилось обращаться к
полному отчету.
Однако форум Linux неуклонно двигался вверх. В какой-то момент он вошел
в первые сорок, и я был счастлив. Это было круто. Помню, я тогда написал
довольно злорадное сообщение в comp.os.linux, в котором перечислял форумы,
посвященные разным ОС, включая Minix, и говорил: "Смотрите, мы популярнее
Windows!" (Учтите, что в то время любители Windows еще не освоили Интернет.)
Где-то в 1993-м мы вошли в первую пятерку. В ту ночь я лег спать
преисполненный самодовольства, в экстазе от того, что Linux по популярности
почти догнала секс.
В окружающем меня мирке ничего похожего не происходило. Я практически
не жил реальной жизнью. К тому времени, как я уже писал, Петер Энвин
организовал в Интернете сбор средств для оплаты моего компьютера. В итоге
было собрано три тысячи долларов, и в конце 1993 года я закончил выплаты. А
на Рождество провел модернизацию своего компьютера до 486 DX2-66, который
использовал потом много лет. В этом и была моя жизнь: я ел, спал, иногда
ходил в университет, программировал, читал прорву мейлов. Я был в курсе, что
некоторые мои друзья чаще занимаются сексом, но это меня не трогало.
Честно говоря, большинство моих друзей тоже не преуспевали в этой
сфере.
XII.
Выступление в Эде почти убедило меня, что я способен вынести что угодно
-- даже такой ужас, как выступление перед множеством совершенно незнакомых,
уставившихся на меня людей. Начинала приходить уверенность и в других
областях. Я был вынужден принимать быстрые решения по поводу исправления и
модернизации Linux, и каждое такое решение укрепляло меня в роли лидера
растущего коллектива. С технической точки зрения решения не вызывали проблем
-- труднее было дипломатично сообщить одному человеку, что я предпочел
решение другого. Иногда достаточно было просто написать: "Поправки такого-то
работают прекрасно. Давайте на них и остановимся".
Никогда не понимал, зачем соглашаться на решение, которое я не считаю
самым лучшим с технической точки зрения. Это помогало мне сохранять
беспристрастность, когда несколько программистов предлагали различные
заплатки. Кроме того, хотя тогда я об этом не задумывался, это внушало людям
доверие. А доверие дорогого стоит. Когда тебе верят, то прислушиваются к
твоим советам.
Безусловно, сперва нужно заложить фундамент доверия. Думаю, все
началось не столько, когда я написал ядро Linux, а скорее когда я выложил
свою программу в свободном доступе в Интернете с тем, чтобы каждый желающий
мог внести в нее изменения или добавить функции, а я бы принимал
окончательное решение в отношении устройства операционной системы.
Точно так же, как я не планировал, что Linux начнет свое существование
за пределами моего собственного компьютера, так и не ожидал, что стану
лидером. Это произошло само собой, по умолчанию. В какой-то момент группа из
пяти разработчиков стала выполнять основную часть работы по ключевым
направлениям. Было естественно, чтобы они стали своего рода фильтрами и
отвечали за разработку в соответствующих областях.
Я довольно быстро понял -- проще всего руководить, позволяя людям
делать то, что им хочется, а не заставляя их делать то, что хочется тебе.
Кроме того, хороший руководитель понимает когда не прав, и умеет отступать.
А еще он позволяет другим принимать самостоятельные решения.
Другими словами: успех Linux в значительной степени обусловлен моими
собственными недостатками: я ленив и люблю пожинать чужие лавры. Если б не
это, модель разработки Linux -- как они это называют -- до сих пор не вышла
бы за рамки ежедневного обмена сообщениями между пятью-шестью хакерами. Не
было бы и речи о сегодняшнем размахе, когда разработкой Linux занимается
сложнейшая сеть из сотен тысяч участников четырех тысяч одновременно
разрабатываемых проектов, опирающихся на листы рассылки, встречи
разработчиков и корпоративную поддержку- А сверху как верховный арбитр всех
споров по поводу ядра операционной системы расположился руководитель,
который совсем не стремится руководить.
Что ни делается -- все к лучшему. Мне удалось избавиться от тех частей,
которые меня не особенно увлекали. Это прежде всего уровень пользователя --
внешние части системы, с которыми непосредственно имеет дело конечный
пользователь, в отличие от кода, который скрывается в глубине системы.
Вначале кто-то вызывается вести то или иное направление. Потом процесс
поддержки подсистем становится органичным. Все знают, кто активно участвует
в работе и кому можно доверять, в итоге на него все и переключается. Никаких
голосований. Никаких приказов. Никаких подсчетов.
Например, если двое создают однотипные драйверы, я иногда принимаю
варианты обоих и смотрю, каким чаше пользуются. Обычно один становится более
популярным. Или же авторы начинают совершенствовать свои программы и в итоге
их пути расходятся -- они начинают использоваться в
разных сферах.
Многих удивляет сам факт, что модель с открытыми исходниками работает.
По-моему, тут полезно попытаться понять психологию хакеров из мира
общедоступных программ. (Вообще-то, обычно я избегаю слова "хакер". В личном
разговоре с технарями я еще могу назвать себя хакером. Но в последнее время
смысл этого слова изменился: так стали называть мальчишек, которые от нечего
делать заняты электронным взломом корпоративных ВЦ вместо того, чтобы
помогать работе местных библиотек или уж, на худой конец, бегать за
девочками.)
Хакеры (программисты), которые работают над Linux и другими проектами с
открытыми исходниками, часто отказывают себе во сне, занятиях спортом,
посещениях школьных чемпионатов, в которых участвуют их дети, а иногда и в
сексе, потому что им нравится программировать. А еще им нравится участвовать
в крупнейшем в мире коллективном проекте, посвященном построению самой
лучшей и самой красивой технологии, -- проекте, который доступен каждому.
Вот и все. И это прикольно.
Ну ладно, я, кажется, перешел на язык самовосхвалений, которым пишутся
пресс-релизы. Фанаты открытых исходников -- не матери Терезы из сферы
высоких технологий. Они получают свою долю славы -- их имена включаются в
благодарственные списки или в файл с описанием истории проекта, который
сопровождает любой проект. Наиболее активные участники привлекают внимание
работодателей, которые изучают программы, чтобы выявить и нанять лучших
программистов. В значительной степени хакерами движет и стремление заслужить
уважение других участников своими солидными вкладами. Это очень мощный
стимул. Каждый хочет произвести впечатление на окружающих, укрепить свою
репутацию, повысить социальный статус. Разработка программ с открытыми
исходниками дает программистам такую возможность.
Разумеется, я провел большую часть 1993 года точно так же, как и
большую часть 1992-го, 1991-го и так далее: уткнувшись в компьютер. Но
близились перемены.
Идя по стопам своего дедушки, я стал ассистентом в Университете
Хельсинки, ответственным за шведскоязычный курс "Введение в информатику" в
осеннем семестре. Тут-то я и встретил Туве. Она оказала на мою жизнь еще
большее влияние, чем "Проектирование и реализация операционных систем" Эндрю
Таненбаума. Но я не буду обременять вас излишними деталями.
Туве была одной из студенток моей группы (всего там было 15 человек).
Она уже получила специальность дошкольного педагога. А потом решила
познакомиться с компьютерами, но сначала немного отставала от остальных. В
конце концов она всех догнала.
Курс был совершенно элементарный. Шла осень 1993-го, Интернет еще не
был популярен, поэтому однажды я задал на дом послать мне сообщение по
мейлу. Сегодня это звучит по-идиотски, но я сказал: "Домашнее задание:
пошлите мне e-mail".
Другие студенты прислали просто тестовые сообщения или какие-то
замечания о занятиях. Туве пригласила меня на свидание.
Я женился на первой же женщине, которая обратилась ко мне по мейлу.
Наше первое свидание так и не кончилось. Туве была дошкольным педагогом
и шестикратным чемпионом Финляндии по карате, она выросла в нормальной
семье, хотя так я называю любую семью, которая не похожа на нашу чокнутую
семейку. У нее было много друзей. Я сразу понял, что именно эта женщина мне
нужна. (Подробности пропущу.) Через несколько месяцев мы с моим котом Ранди
переехали в ее крошечную квартирку.
В первые две недели я не потрудился даже перевезти свой компьютер. Не
считая службы в армии, это была самая долгая разлука с компьютером с тех
пор, как одиннадцатилетним мальчиком я сидел у дедушки на коленях. Не буду
подробно на этом останавливаться, но это по-прежнему рекорд моей штатской
жизни без процессора. Каким-то образом я выжил (детали снова опускаю). В
редкие встречи с мамой в тот период я слышал от нее что-то о "триумфе
матери-природы". Думаю, отец с сестрой были просто в шоке.
Вскоре Туве принесла в дом кошечку, чтобы Ранди не скучал. У нас
повелось проводить вечера вдвоем или с друзьями, вставать в 5 утра, чтобы
она могла пойти на работу, а я мог оказаться в университете раньше всех и
никто не мешал мне читать мейлы о Linux.
Король
"БАЛА"
I.
Появление версии 1.0 означало для Linux новый этап: нам понадобился
пиар. Лично я с удовольствием представил бы эту версию точно так же, как и
предыдущие. Я бы послал в форум сообщение: "Выпущена версия 1.0.
Пользуйтесь". (Или что-нибудь в этом роде.)
Однако многие отнеслись к этому событию гораздо серьезнее. Версия 1.0
им нужна была для рекламы. Всем этим новорожденным компаниям, продававшим
Linux, версия 1.0 была важна скорее по психологическим, чем по
технологическим причинам. И их можно понять: кому понравится торговать
операционной системой версии 0.96?
Я хотел выпустить версию 1.0, потому что тем самым завершался некий
этап, а кроме того, это значило, что я могу временно перестать исправлять
ошибки и вернуться к разработке. Производители и разработчики Linux хотели
обставить выход новой версии с максимальной помпой.
Нам нужно было выбрать правильную тактику. Сам я не собирался
руководить этой кампанией. Мне вовсе не улыбалось выпускать пресс-релизы и
выступать с заявлениями. Поэтому за дело взялись те, кто был в нем
заинтересован. Примерно так делалась и сама Linux -- схема снова сработала.
Наш первый официальный выпуск стал настоящим событием во многом
благодаря Ларсу. Он и некоторые другие решили, что объявление лучше всего
сделать в университете. В этом был свой резон. Моя комната не тянула по
размерам. А делать объявление в помещении коммерческой фирмы было бы
неправильно. Поэтому Ларе вызвался согласовать вопрос с университетом.
Факультет информатики Университета Хельсинки был небольшой организацией,
поэтому он смог просто пойти и поговорить с деканом.
Университет Хельсинки с радостью согласился выделить для представления
Linux 1.0 главную аудиторию факультета информатики. Да и чего бы им
возражать? Разве в университете часто происходят события, достойные показа
по телевизору?
Я согласился выступить. Это мероприятие не шло ни в какое сравнение с
кошмаром в Эде. Хотя, если вдуматься, кое в чем оно оказалось-таки сложнее.
Например, в аудитории сидел мой папа. А мероприятие показывали по
финскому ТВ. Тогда я впервые увидел себя по телевизору. На собрание пришли и
папа и мама (но я совершенно уверен, что они сидели врозь). И Туве тоже
пришла. Тут-то мой отец и познакомился с ней, поэтому для меня это было
больше, чем просто объявление версии 1,0. Поскольку я до последнего момента
готовился к выступлению -- проверял, что со слайдами все в порядке и прочее,
-- то не присутствовал при их знакомстве. По-видимому, оно произошло, когда
они шли в аудиторию. Кажется, я это заметил краешком глаза.
В том выступлении, как и почти во всех остальных в последующие
несколько лет, я говорил не столько о технологии, сколько об открытых
исходниках. Все прошло классно. Мне удалось изменить отношение к Linux
некоторых сотрудников факультета. До этого факультет просто гордился Linux и
снисходительно поощрял мою деятельность. После объявления они стали
относиться к Linux более серьезно. Ведь они услышали о ней в теленовостях.
Спустя годы стали поговаривать, что университет пытается приписать себе
заслуги в сфере Linux. Это не так. Факультет всегда оказывал нам большую
поддержку- Мне даже дали такую должность, что я мог создавать Linux в
рабочее время. И это было в самом начале, когда еще никто не мог сказать:
"Давайте поможем парню, тут пахнет всемирной известностью". Но в то же время
им было приятно сыграть важную роль в анонсе новой версии. Это укрепило их
репутацию. Я знаю, что на факультете информатики, который всегда был в тени
Технического университета, теперь стало больше шведскоговорящих студентов.
Зависть к успеху считается характерной чертой финнов. Поэтому, когда
Linux приобрела известность, меня многие спрашивали, не отравляют ли мне
жизнь в университете завистники. На самом деле все было по-другому: в
университете мне очень помогали. Уже на раннем этапе они стали избавляться
от X-терминалов и заменять их на PC с Linux.
Выход новой версии поднял Linux в Финляндии на небывалую высоту, и в
других странах она тоже стала приобретать известность. Ей посвящалось
множество публикаций в газетах: просто какой-нибудь журналист натыкался на
Linux и приходил в восторг. С точки зрения бизнеса версия 1.0 не
представляла особой опасности для основных игроков. Linux забирала рынок у
Minix и Co